diff src/auth/db-ldap.c @ 1330:7cde19dbe754 HEAD

Moved auth_username_chars from db-pgsql to generic for all. Some other auth code cleanups.
author Timo Sirainen <tss@iki.fi>
date Wed, 02 Apr 2003 05:09:41 +0300
parents e8894f2c776f
children 6850142c4e25
line wrap: on
line diff
--- a/src/auth/db-ldap.c	Wed Apr 02 05:05:38 2003 +0300
+++ b/src/auth/db-ldap.c	Wed Apr 02 05:09:41 2003 +0300
@@ -266,27 +266,31 @@
 	}
 }
 
+#define IS_LDAP_ESCAPED_CHAR(c) \
+	((c) == '*' || (c) == '(' || (c) == ')' || (c) == '\\')
+
 const char *ldap_escape(const char *str)
 {
-	string_t *s;
 	const char *p;
+	string_t *ret;
 
 	for (p = str; *p != '\0'; p++) {
-		if (strchr("*()\\", *p) != NULL)
+		if (IS_LDAP_ESCAPED_CHAR(*p))
 			break;
 	}
 
 	if (*p == '\0')
 		return str;
 
-	s = t_str_new(64);
-	str_append_n(s, str, (size_t) (p-str));
+	ret = t_str_new((size_t) (p - str) + 64);
+	str_append_n(ret, str, (size_t) (p - str));
+
 	for (; *p != '\0'; p++) {
-		if (strchr("*()\\", *p) != NULL)
-			str_append_c(s, '\\');
-		str_append_c(s, *p);
+		if (IS_LDAP_ESCAPED_CHAR(*p))
+			str_append_c(ret, '\\');
+		str_append_c(ret, *p);
 	}
-	return str_c(s);
+	return str_c(ret);
 }
 
 static const char *parse_setting(const char *key, const char *value,