+/*
+ * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
+ *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
+ */
+
/*
* ext_ldap_group_acl: lookup group membership in LDAP
*
*
* If you want to make a TLS enabled connection you will also need the
* OpenSSL libraries linked into openldap. See http://www.openssl.org/
- *
- * License: squid_ldap_group is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
*/
#include "squid.h"
#include "helpers/defines.h"
#define LDAP_DEPRECATED 1
-#if HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#if HAVE_STRING_H
-#include <string.h>
-#endif
-#if HAVE_CTYPE_H
-#include <ctype.h>
-#endif
+#include <cctype>
+#include <cstring>
-#if _SQUID_MSWIN_ /* Native Windows port and MinGW */
+#if _SQUID_WINDOWS_ && !_SQUID_CYGWIN_
#define snprintf _snprintf
#include <windows.h>
#endif
-#if defined(LDAP_OPT_NETWORK_TIMEOUT)
-#include <sys/time.h>
-#endif
-
#define PROGRAM_NAME "ext_ldap_group_acl"
-#define PROGRAM_VERSION "2.17"
+#define PROGRAM_VERSION "2.18"
/* Globals */
value = argv[1] + 2;
} else if (argc > 2) {
value = argv[2];
- argv++;
- argc--;
+ ++argv;
+ --argc;
} else
value = "";
break;
}
- argv++;
- argc--;
+ ++argv;
+ --argc;
switch (option) {
case 'H':
#if !HAS_URI_SUPPORT
fprintf(stderr, "FATAL: Your LDAP library does not have URI support\n");
exit(1);
#endif
- /* Fall thru to -h */
+ /* Fall thru to -h */
case 'h':
if (ldapServer) {
int len = strlen(ldapServer) + 1 + strlen(value) + 1;
} else {
ldapServer = xstrdup(value);
}
- argc--;
- argv++;
+ --argc;
+ ++argv;
}
if (!ldapServer)
/* On Windows ldap_start_tls_s is available starting from Windows XP,
* so we need to bind at run-time with the function entry point
*/
-#if _SQUID_MSWIN_
+#if _SQUID_WINDOWS_
if (use_tls) {
HMODULE WLDAP32Handle;
fprintf(stderr, "FATAL: Unable to initialise SSL with cert path %s\n", sslpath);
exit(1);
} else {
- sslinit++;
+ ++sslinit;
}
if ((ld = ldapssl_init(ldapServer, port, 1)) == NULL) {
fprintf(stderr, "FATAL: Unable to connect to SSL LDAP server: %s port:%d\n",
n += 3;
size -= 3;
if (size > 0) {
- *escaped++ = '\\';
- snprintf(escaped, 3, "%02x", (unsigned char) *src++);
+ *escaped = '\\';
+ ++escaped;
+ snprintf(escaped, 3, "%02x", (unsigned char) *src);
+ ++src;
escaped += 2;
}
break;
default:
- *escaped++ = *src++;
- n++;
- size--;
+ *escaped = *src;
+ ++escaped;
+ ++src;
+ ++n;
+ --size;
}
}
*escaped = '\0';
while (*templ && size > 0) {
switch (*templ) {
case '%':
- templ++;
+ ++templ;
switch (*templ) {
case 'u':
case 'v':
- templ++;
+ ++templ;
n = ldap_escape_value(filter, size, user);
size -= n;
filter += n;
break;
case 'g':
case 'a':
- templ++;
+ ++templ;
n = ldap_escape_value(filter, size, group);
size -= n;
filter += n;
}
break;
case '\\':
- templ++;
+ ++templ;
if (*templ) {
- *filter++ = *templ++;
- size--;
+ *filter = *templ;
+ ++filter;
+ ++templ;
+ --size;
}
break;
default:
- *filter++ = *templ++;
- size--;
+ *filter = *templ;
+ ++filter;
+ ++templ;
+ --size;
break;
}
}
}
}
-
int
readSecret(const char *filename)
{
return 0;
}
+