r58: dodao provjeru krivog ldap suffixa...
[carnet-tools-cn.git] / functions.sh
index 81336d4..773e522 100644 (file)
@@ -333,10 +333,40 @@ cp_get_ldap_suffix() {
     return 1
   fi
   
-  RET="`awk /^suffix/'{print $2}' /etc/ldap/slapd.conf | head -1 | tr -d '"'`"
-
+  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"
-  [ -z "$RET" ] && return 1
+}
+
+# by ico, Wed, 20 Apr 2005 21:09:54 +0200
+cp_get_ldap_realm() {
+  local echo_return
+  echo_return="$CP_ECHO_RETURN" # since we're making our own calls
+  # in our own way we need to set CP_ECHO_RETURN the way we want it
+  # but preserving initial state so it could be used afterwards
+  CP_ECHO_RETURN=""
+
+  [ "$CP_SCRIPT_DEBUG" ] && set -vx
+
+  if [ ! -f /etc/ldap/slapd.conf ]; then
+    echo "cp_get_ldap_realm: /etc/ldap/slapd.conf: No such file" >&2
+    return 1
+  fi
+  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
+  CP_ECHO_RETURN="$echo_return"
 }