r58: dodao provjeru krivog ldap suffixa...
[carnet-tools-cn.git] / functions.sh
index d94cc14..773e522 100644 (file)
@@ -333,8 +333,16 @@ cp_get_ldap_suffix() {
     return 1
   fi
   
-  RET="`awk '/^suffix/{exit}END{gsub(/"/, "", $2); print $2}' /etc/ldap/slapd.conf`"
-
+  RET="`awk  '/^suffix/      { exit }
+              END            { gsub(/"/, "", $2); print $2 }' \
+            < /etc/ldap/slapd.conf`"
+
+  if [ "`echo $RET | sed 's/,/ /g' | wc -w`" -gt 2 ]; then
+    RET=""
+    echo "cp_get_ldap_suffix: Invalid LDAP suffix in /etc/ldap/slapd.conf" >&2
+    return 2
+  fi
+    
   [ -z "$RET" ] && echo "cp_get_ldap_suffix: No LDAP suffix in /etc/ldap/slapd.conf" >&2
   [ -z "$echo_return" ] || echo $RET
   CP_ECHO_RETURN="$echo_return"
@@ -354,9 +362,9 @@ cp_get_ldap_realm() {
     echo "cp_get_ldap_realm: /etc/ldap/slapd.conf: No such file" >&2
     return 1
   fi
-  
-  RET="`awk '/^suffix/{exit}END{gsub(/"/, "", $2); print $2}' \
-        /etc/ldap/slapd.conf | awk -F, '{print $1}' | awk -F= '{print $2}'`"
+  cp_get_ldap_suffix || true
+  RET="`echo $RET | awk -F, '{print $1}' | awk -F= '{print $2}'`"
 
   [ -z "$RET" ] && echo "cp_get_ldap_realm: No LDAP REALM in /etc/ldap/slapd.conf" >&2
   [ -z "$echo_return" ] || echo $RET