Lines Matching refs:data

83 	void *data;
119 /* data == NULL means cleanup */
121 ldapdb_getconn(struct ldapdb_data *data)
127 if (data == NULL) {
134 while (threaddata->data != NULL) {
135 conndata = threaddata->data;
136 if (conndata->data != NULL)
137 ldap_unbind((LDAP *)conndata->data);
138 threaddata->data = conndata->next;
148 /* look for connection data for current thread */
152 /* no data for this thread, create empty connection list */
163 threaddata->data = NULL;
173 conndata = ldapdb_find((struct ldapdb_entry *)threaddata->data,
174 data->hostport, strlen(data->hostport));
176 /* no connection data structure for this server, create one */
180 conndata->index = data->hostport;
181 conndata->size = strlen(data->hostport);
182 conndata->data = NULL;
183 ldapdb_insert((struct ldapdb_entry **)&threaddata->data,
187 return (LDAP **)&conndata->data;
191 ldapdb_bind(struct ldapdb_data *data, LDAP **ldp)
199 *ldp = ldap_open(data->hostname, data->portno);
208 if (data->tls) {
213 if (ldap_simple_bind_s(*ldp, data->bindname, data->bindpw) != LDAP_SUCCESS) {
229 struct ldapdb_data *data = dbdata;
245 ldp = ldapdb_getconn(data);
249 ldapdb_bind(data, ldp);
258 fltr = data->filterall;
265 sprintf(data->filtername, "%s))", name);
266 fltr = data->filterone;
269 msgid = ldap_search(*ldp, data->base, LDAP_SCOPE_SUBTREE, fltr, NULL, 0);
271 ldapdb_bind(data, ldp);
273 msgid = ldap_search(*ldp, data->base, LDAP_SCOPE_SUBTREE, fltr, NULL, 0);
285 int ttl = data->defaultttl;
433 parseextensions(char *extensions, struct ldapdb_data *data)
466 data->bindname = value;
468 data->bindpw = value;
471 data->tls = value == NULL || !strcasecmp(value, "true");
483 free_data(struct ldapdb_data *data)
485 if (data->hostport != NULL)
486 isc_mem_free(ns_g_mctx, data->hostport);
487 if (data->hostname != NULL)
488 isc_mem_free(ns_g_mctx, data->hostname);
489 if (data->filterall != NULL)
490 isc_mem_put(ns_g_mctx, data->filterall, data->filteralllen);
491 if (data->filterone != NULL)
492 isc_mem_put(ns_g_mctx, data->filterone, data->filteronelen);
493 isc_mem_put(ns_g_mctx, data, sizeof(struct ldapdb_data));
501 struct ldapdb_data *data;
514 data = isc_mem_get(ns_g_mctx, sizeof(struct ldapdb_data));
515 if (data == NULL)
518 memset(data, 0, sizeof(struct ldapdb_data));
519 data->hostport = isc_mem_strdup(ns_g_mctx, argv[0] + strlen("ldap://"));
520 if (data->hostport == NULL) {
521 free_data(data);
525 data->defaultttl = defaultttl;
527 s = strchr(data->hostport, '/');
530 data->base = s;
564 if (*data->base == '\0') {
565 data->base = NULL;
573 err = parseextensions(extensions, data);
576 free_data(data);
588 if ((data->base != NULL && unhex(data->base) == NULL) ||
590 (data->bindname != NULL && unhex(data->bindname) == NULL) ||
591 (data->bindpw != NULL && unhex(data->bindpw) == NULL)) {
592 free_data(data);
600 data->filteralllen = strlen(zone) + strlen("(zoneName=)") + 1;
601 data->filteronelen = strlen(zone) + strlen("(&(zoneName=)(relativeDomainName=))") + MAXNAMELEN + 1;
603 data->filteralllen = strlen(filter) + strlen(zone) + strlen("(&(zoneName=))") + 1;
604 data->filteronelen = strlen(filter) + strlen(zone) + strlen("(&(zoneName=)(relativeDomainName=))") + MAXNAMELEN + 1;
607 data->filterall = isc_mem_get(ns_g_mctx, data->filteralllen);
608 if (data->filterall == NULL) {
609 free_data(data);
612 data->filterone = isc_mem_get(ns_g_mctx, data->filteronelen);
613 if (data->filterone == NULL) {
614 free_data(data);
619 sprintf(data->filterall, "(zoneName=%s)", zone);
620 sprintf(data->filterone, "(&(zoneName=%s)(relativeDomainName=", zone);
622 sprintf(data->filterall, "(&%s(zoneName=%s))", filter, zone);
623 sprintf(data->filterone, "(&%s(zoneName=%s)(relativeDomainName=", filter, zone);
625 data->filtername = data->filterone + strlen(data->filterone);
628 data->hostname = isc_mem_strdup(ns_g_mctx, data->hostport + (*data->hostport == '[' ? 1 : 0));
629 if (data->hostname == NULL) {
630 free_data(data);
634 if (*data->hostport == '[' &&
635 (s = strchr(data->hostname, ']')) != NULL )
638 s = data->hostname;
642 data->portno = atoi(s);
644 data->portno = LDAP_PORT;
646 *dbdata = data;
652 struct ldapdb_data *data = *dbdata;
657 free_data(data);
686 /* clean up thread data */