Mercurial > dovecot > original-hg > dovecot-1.2
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,