From ba9a201d74397692f4fc88debadfa2b47b9ae2a3 Mon Sep 17 00:00:00 2001 From: Adam Tkac Date: May 22 2007 14:49:04 +0000 Subject: - minor correction in ldap-api patch for backward compatibility --- diff --git a/bind-9.4.1-ldap-new-api.patch b/bind-9.4.1-ldap-new-api.patch index 66412af..9db186a 100644 --- a/bind-9.4.1-ldap-new-api.patch +++ b/bind-9.4.1-ldap-new-api.patch @@ -1,5 +1,5 @@ --- bind-9.4.1/contrib/sdb/ldap/ldapdb.c.new-api 2004-08-27 02:10:25.000000000 +0200 -+++ bind-9.4.1/contrib/sdb/ldap/ldapdb.c 2007-05-21 15:22:10.000000000 +0200 ++++ bind-9.4.1/contrib/sdb/ldap/ldapdb.c 2007-05-22 16:50:16.000000000 +0200 @@ -58,9 +58,13 @@ static dns_sdbimplementation_t *ldapdb = NULL; @@ -26,25 +26,32 @@ threaddata->data = conndata->next; free(conndata); } -@@ -172,14 +180,14 @@ ldapdb_getconn(struct ldapdb_data *data) +@@ -172,14 +180,23 @@ ldapdb_getconn(struct ldapdb_data *data) /* threaddata points at the connection list for current thread */ /* look for existing connection to our server */ conndata = ldapdb_find((struct ldapdb_entry *)threaddata->data, - data->hostport, strlen(data->hostport)); -+ data->lud->lud_host, strlen(data->lud->lud_host)); ++#if LDAP_API_VERSION < 3001 ++ data->hostport, strlen(data->hostport)); ++#else ++ data->lud->lud_host, strlen(data->lud->lud_host)); ++#endif if (conndata == NULL) { /* no connection data structure for this server, create one */ conndata = malloc(sizeof(*conndata)); if (conndata == NULL) return (NULL); -- conndata->index = data->hostport; -- conndata->size = strlen(data->hostport); ++#if LDAP_API_VERSION < 3001 + conndata->index = data->hostport; + conndata->size = strlen(data->hostport); ++#else + conndata->index = data->lud->lud_host; + conndata->size = strlen(data->lud->lud_host); ++#endif conndata->data = NULL; ldapdb_insert((struct ldapdb_entry **)&threaddata->data, conndata); -@@ -196,9 +204,15 @@ ldapdb_bind(struct ldapdb_data *data, LD +@@ -196,9 +213,15 @@ ldapdb_bind(struct ldapdb_data *data, LD #endif if (*ldp != NULL) @@ -60,7 +67,7 @@ return; #ifndef LDAPDB_RFC1823API -@@ -211,8 +225,17 @@ ldapdb_bind(struct ldapdb_data *data, LD +@@ -211,8 +234,17 @@ ldapdb_bind(struct ldapdb_data *data, LD } #endif @@ -78,7 +85,7 @@ *ldp = NULL; } } -@@ -224,14 +247,19 @@ ldapdb_search(const char *zone, const ch +@@ -224,14 +256,19 @@ ldapdb_search(const char *zone, const ch isc_result_t result = ISC_R_NOTFOUND; LDAP **ldp; LDAPMessage *res, *e; @@ -100,7 +107,7 @@ ldp = ldapdb_getconn(data); if (ldp == NULL) -@@ -256,12 +284,21 @@ ldapdb_search(const char *zone, const ch +@@ -256,12 +293,21 @@ ldapdb_search(const char *zone, const ch sprintf(data->filtername, "%s))", name); fltr = data->filterone; } @@ -123,7 +130,7 @@ } if (*ldp == NULL || msgid == -1) { -@@ -293,15 +330,27 @@ ldapdb_search(const char *zone, const ch +@@ -293,15 +339,27 @@ ldapdb_search(const char *zone, const ch } if (name == NULL) { @@ -152,7 +159,7 @@ } for (a = ldap_first_attribute(ld, e, &ptr); a != NULL; a = ldap_next_attribute(ld, e, ptr)) { -@@ -319,34 +368,60 @@ ldapdb_search(const char *zone, const ch +@@ -319,34 +377,60 @@ ldapdb_search(const char *zone, const ch strncpy(type, a, s - a); type[s - a] = '\0'; @@ -214,7 +221,7 @@ } #ifndef LDAPDB_RFC1823API ldap_memfree(a); -@@ -357,7 +432,11 @@ ldapdb_search(const char *zone, const ch +@@ -357,7 +441,11 @@ ldapdb_search(const char *zone, const ch ber_free(ptr, 0); #endif if (name == NULL) @@ -226,7 +233,7 @@ /* free this result */ ldap_msgfree(res); -@@ -460,10 +539,15 @@ parseextensions(char *extensions, struct +@@ -460,10 +548,15 @@ parseextensions(char *extensions, struct static void free_data(struct ldapdb_data *data) { @@ -242,7 +249,7 @@ if (data->filterall != NULL) isc_mem_put(ns_g_mctx, data->filterall, data->filteralllen); if (data->filterone != NULL) -@@ -478,7 +562,7 @@ ldapdb_create(const char *zone, int argc +@@ -478,7 +571,7 @@ ldapdb_create(const char *zone, int argc { struct ldapdb_data *data; char *s, *filter = NULL, *extensions = NULL; @@ -251,7 +258,7 @@ UNUSED(driverdata); -@@ -486,7 +570,10 @@ ldapdb_create(const char *zone, int argc +@@ -486,7 +579,10 @@ ldapdb_create(const char *zone, int argc /* want to do this only once for all instances */ if ((argc < 2) @@ -262,7 +269,7 @@ || ((defaultttl = atoi(argv[1])) < 1)) return (ISC_R_FAILURE); data = isc_mem_get(ns_g_mctx, sizeof(struct ldapdb_data)); -@@ -494,14 +581,15 @@ ldapdb_create(const char *zone, int argc +@@ -494,14 +590,15 @@ ldapdb_create(const char *zone, int argc return (ISC_R_NOMEMORY); memset(data, 0, sizeof(struct ldapdb_data)); @@ -280,7 +287,7 @@ s = strchr(data->hostport, '/'); if (s != NULL) { *s++ = '\0'; -@@ -544,11 +632,26 @@ ldapdb_create(const char *zone, int argc +@@ -544,11 +641,26 @@ ldapdb_create(const char *zone, int argc } } @@ -307,7 +314,7 @@ if (err < 0) { /* err should be -1 or -2 */ free_data(data); -@@ -562,6 +665,14 @@ ldapdb_create(const char *zone, int argc +@@ -562,6 +674,14 @@ ldapdb_create(const char *zone, int argc return (ISC_R_FAILURE); } } @@ -322,7 +329,7 @@ if ((data->base != NULL && unhex(data->base) == NULL) || (filter != NULL && unhex(filter) == NULL) || -@@ -572,6 +683,7 @@ ldapdb_create(const char *zone, int argc +@@ -572,6 +692,7 @@ ldapdb_create(const char *zone, int argc "LDAP sdb zone '%s': URL: bad hex values", zone); return (ISC_R_FAILURE); } @@ -330,7 +337,7 @@ /* compute filterall and filterone once and for all */ if (filter == NULL) { -@@ -602,6 +714,7 @@ ldapdb_create(const char *zone, int argc +@@ -602,6 +723,7 @@ ldapdb_create(const char *zone, int argc } data->filtername = data->filterone + strlen(data->filterone); @@ -338,7 +345,7 @@ /* support URLs with literal IPv6 addresses */ data->hostname = isc_mem_strdup(ns_g_mctx, data->hostport + (*data->hostport == '[' ? 1 : 0)); if (data->hostname == NULL) { -@@ -620,8 +733,10 @@ ldapdb_create(const char *zone, int argc +@@ -620,8 +742,10 @@ ldapdb_create(const char *zone, int argc data->portno = atoi(s); } else data->portno = LDAP_PORT;