Lines Matching refs:lmap
65 sm_ldap_clear(lmap) in sm_ldap_clear() argument
66 SM_LDAP_STRUCT *lmap; in sm_ldap_clear()
68 if (lmap == NULL)
71 lmap->ldap_host = NULL;
72 lmap->ldap_port = LDAP_PORT;
73 lmap->ldap_uri = NULL;
74 lmap->ldap_version = SM_LDAP_VERSION_DEFAULT;
75 lmap->ldap_deref = LDAP_DEREF_NEVER;
76 lmap->ldap_timelimit = LDAP_NO_LIMIT;
77 lmap->ldap_sizelimit = LDAP_NO_LIMIT;
79 lmap->ldap_options = LDAP_OPT_REFERRALS;
81 lmap->ldap_options = 0;
83 lmap->ldap_attrsep = '\0';
85 lmap->ldap_networktmo = 0;
87 lmap->ldap_binddn = NULL;
88 lmap->ldap_secret = NULL;
89 lmap->ldap_method = LDAP_AUTH_SIMPLE;
90 lmap->ldap_base = NULL;
91 lmap->ldap_scope = LDAP_SCOPE_SUBTREE;
92 lmap->ldap_attrsonly = LDAPMAP_FALSE;
93 lmap->ldap_timeout.tv_sec = 0;
94 lmap->ldap_timeout.tv_usec = 0;
95 lmap->ldap_ld = NULL;
96 lmap->ldap_filter = NULL;
97 lmap->ldap_attr[0] = NULL;
98 lmap->ldap_attr_type[0] = SM_LDAP_ATTR_NONE;
99 lmap->ldap_attr_needobjclass[0] = NULL;
100 lmap->ldap_res = NULL;
101 lmap->ldap_next = NULL;
102 lmap->ldap_pid = 0;
103 lmap->ldap_multi_args = false;
120 # define SET_LDAP_TMO(ld, lmap) \ argument
123 if (lmap->ldap_networktmo > 0) \
129 lmap->ldap_networktmo); \
130 tmo.tv_sec = lmap->ldap_networktmo; \
136 # define SET_LDAP_TMO(ld, lmap) argument
154 static void sm_ldap_setoptsg __P((SM_LDAP_STRUCT *lmap));
156 sm_ldap_setoptsg(lmap) in sm_ldap_setoptsg() argument
157 SM_LDAP_STRUCT *lmap; in sm_ldap_setoptsg()
161 SET_LDAP_TMO(NULL, lmap);
165 lmap->ldap_debug != 0)
172 sm_dprintf("ldap_debug0=%d\n", lmap->ldap_debug);
174 &(lmap->ldap_debug));
178 &(lmap->ldap_debug));
201 sm_ldap_setopts(ld, lmap) in sm_ldap_setopts() argument
203 SM_LDAP_STRUCT *lmap;
206 if (lmap->ldap_version != 0)
209 &lmap->ldap_version);
211 ldap_set_option(ld, LDAP_OPT_DEREF, &lmap->ldap_deref);
212 if (bitset(LDAP_OPT_REFERRALS, lmap->ldap_options))
216 ldap_set_option(ld, LDAP_OPT_SIZELIMIT, &lmap->ldap_sizelimit);
217 ldap_set_option(ld, LDAP_OPT_TIMELIMIT, &lmap->ldap_timelimit);
218 SET_LDAP_TMO(ld, lmap);
221 && lmap->ldap_debug > 0)
227 lmap->ldap_debug, dbg_init);
229 &(lmap->ldap_debug));
257 ld->ld_deref = lmap->ldap_deref;
258 ld->ld_options = lmap->ldap_options;
259 ld->ld_sizelimit = lmap->ldap_sizelimit;
260 ld->ld_timelimit = lmap->ldap_timelimit;
324 sm_ldap_start(name, lmap) in sm_ldap_start() argument
326 SM_LDAP_STRUCT *lmap;
342 if (lmap->ldap_host != NULL)
343 id = lmap->ldap_host;
344 else if (lmap->ldap_uri != NULL)
345 id = lmap->ldap_uri;
352 if (lmap->ldap_uri != NULL)
356 lmap->ldap_port);
359 if (lmap->ldap_uri != NULL)
363 sm_dprintf("ldap_initialize(%s)\n", lmap->ldap_uri);
365 save_errno = ldap_initialize(&ld, lmap->ldap_uri);
367 sm_dprintf("ldap_initialize(%s)=%d, ld=%p\n", lmap->ldap_uri, save_errno, ld);
368 sm_ldap_setoptsg(lmap);
374 err = ldap_url_parse(lmap->ldap_uri, &ludp);
380 lmap->ldap_host = sm_strdup_x(ludp->lud_host);
381 if (lmap->ldap_host == NULL)
388 lmap->ldap_port = ludp->lud_port;
397 sm_dprintf("ldap_init(%s, %d)\n", lmap->ldap_host, lmap->ldap_port);
398 ld = ldap_init(lmap->ldap_host, lmap->ldap_port);
409 sm_dprintf("ldap_open(%s, %d)\n", lmap->ldap_host, lmap->ldap_port);
411 SM_LDAP_SETTIMEOUT(lmap->ldap_timeout.tv_sec, "ldap_open");
412 ld = ldap_open(lmap->ldap_host, lmap->ldap_port);
424 sm_dprintf("FAIL: ldap_open(%s, %d)=%d\n", lmap->ldap_host, lmap->ldap_port, save_errno);
428 sm_ldap_setopts(ld, lmap);
435 SM_LDAP_SETTIMEOUT(lmap->ldap_timeout.tv_sec, "ldap_bind");
439 if (lmap->ldap_method == LDAP_AUTH_KRBV4 &&
440 lmap->ldap_secret != NULL)
448 (void) putenv(lmap->ldap_secret);
453 tmo.tv_sec = lmap->ldap_networktmo;
455 tmo.tv_sec = lmap->ldap_timeout.tv_sec;
460 sm_dprintf("ldap_bind(%s)\n", lmap->ldap_uri);
462 msgid = ldap_bind(ld, lmap->ldap_binddn, lmap->ldap_secret,
463 lmap->ldap_method);
469 lmap->ldap_uri, msgid, save_errno,
488 tmo.tv_sec == 0 ? NULL : &(tmo), &(lmap->ldap_res));
494 lmap->ldap_uri, r, errno,
515 r = ldap_parse_result(ld, lmap->ldap_res, &err, NULL, &errmsg, NULL,
520 lmap->ldap_uri, r, err, errmsg);
533 sm_dprintf("ldap_cleartimeout(%s)\n", lmap->ldap_uri);
552 lmap->ldap_pid = getpid();
553 lmap->ldap_ld = ld;
580 sm_ldap_search_m(lmap, argv) in sm_ldap_search_m() argument
581 SM_LDAP_STRUCT *lmap; in sm_ldap_search_m()
588 SM_REQUIRE(lmap != NULL);
594 p = lmap->ldap_filter;
599 if (lmap->ldap_multi_args)
632 (lmap->ldap_multi_args && q[1] >= '0' && q[1] <= '9'))
674 lmap->ldap_res = NULL;
675 msgid = ldap_search(lmap->ldap_ld, lmap->ldap_base,
676 lmap->ldap_scope, filter,
677 (lmap->ldap_attr[0] == NULL ? NULL :
678 lmap->ldap_attr),
679 lmap->ldap_attrsonly);
700 sm_ldap_search(lmap, key) in sm_ldap_search() argument
701 SM_LDAP_STRUCT *lmap; in sm_ldap_search()
708 return sm_ldap_search_m(lmap, argv);
728 sm_ldap_has_objectclass(lmap, entry, ocvalue) in sm_ldap_has_objectclass() argument
729 SM_LDAP_STRUCT *lmap; in sm_ldap_has_objectclass()
739 vals = ldap_get_values(lmap->ldap_ld, entry, "objectClass");
789 if (lmap->ldap_res != NULL) \
791 ldap_msgfree(lmap->ldap_res); \
792 lmap->ldap_res = NULL; \
794 (void) ldap_abandon(lmap->ldap_ld, msgid); \
911 sm_ldap_results(lmap, msgid, flags, delim, rpool, result, in sm_ldap_results() argument
913 SM_LDAP_STRUCT *lmap; in sm_ldap_results()
937 while ((ret = ldap_result(lmap->ldap_ld, msgid, 0,
938 (lmap->ldap_timeout.tv_sec == 0 ? NULL :
939 &(lmap->ldap_timeout)),
940 &(lmap->ldap_res))) == LDAP_RES_SEARCH_ENTRY)
951 for (entry = ldap_first_entry(lmap->ldap_ld, lmap->ldap_res);
953 entry = ldap_next_entry(lmap->ldap_ld, lmap->ldap_res))
982 dn = ldap_get_dn(lmap->ldap_ld, entry);
985 save_errno = sm_ldap_geterrno(lmap->ldap_ld);
1018 lmap->ldap_ld->ld_errno = LDAP_SUCCESS;
1021 for (attr = ldap_first_attribute(lmap->ldap_ld, entry,
1024 attr = ldap_next_attribute(lmap->ldap_ld, entry,
1032 for (i = 0; lmap->ldap_attr[i] != NULL; i++)
1034 if (SM_STRCASEEQ(lmap->ldap_attr[i],
1037 type = lmap->ldap_attr_type[i];
1038 needobjclass = lmap->ldap_attr_needobjclass[i];
1070 !sm_ldap_has_objectclass(lmap, entry,
1077 if (lmap->ldap_attrsonly == LDAPMAP_FALSE)
1079 vals = ldap_get_values(lmap->ldap_ld,
1084 save_errno = sm_ldap_geterrno(lmap->ldap_ld);
1109 lmap->ldap_ld->ld_errno = LDAP_SUCCESS;
1119 if (lmap->ldap_attrsonly == LDAPMAP_FALSE)
1146 if (lmap->ldap_attrsonly == LDAPMAP_TRUE)
1162 if (lmap->ldap_attrsep != '\0')
1166 if (lmap->ldap_attrsep != '\0')
1170 lmap->ldap_attrsep,
1181 if (lmap->ldap_attrsonly == LDAPMAP_TRUE)
1252 if (lmap->ldap_attrsep != '\0')
1297 if (lmap->ldap_attrsep != '\0')
1302 *p++ = lmap->ldap_attrsep;
1321 save_errno = sm_ldap_geterrno(lmap->ldap_ld);
1361 save_errno = sm_ldap_geterrno(lmap->ldap_ld);
1371 ldap_msgfree(lmap->ldap_res);
1372 lmap->ldap_res = NULL;
1386 if (lmap->ldap_res == NULL)
1392 save_errno = ldap_parse_result(lmap->ldap_ld,
1393 lmap->ldap_res, &rc, NULL, NULL,
1400 save_errno = sm_ldap_geterrno(lmap->ldap_ld);
1428 if (lmap->ldap_res != NULL)
1430 ldap_msgfree(lmap->ldap_res);
1431 lmap->ldap_res = NULL;
1466 sid = ldap_search(lmap->ldap_ld,
1468 lmap->ldap_scope,
1470 (lmap->ldap_attr[0] == NULL ?
1471 NULL : lmap->ldap_attr),
1472 lmap->ldap_attrsonly);
1477 sid = ldap_search(lmap->ldap_ld,
1478 lmap->ldap_base,
1479 lmap->ldap_scope,
1481 (lmap->ldap_attr[0] == NULL ?
1482 NULL : lmap->ldap_attr),
1483 lmap->ldap_attrsonly);
1544 sid = ldap_search(lmap->ldap_ld,
1549 lmap->ldap_attrsonly);
1564 save_errno = sm_ldap_geterrno(lmap->ldap_ld);
1587 status = sm_ldap_results(lmap, sid, newflags, delim,
1628 sm_ldap_close(lmap) in sm_ldap_close() argument
1629 SM_LDAP_STRUCT *lmap; in sm_ldap_close()
1631 if (lmap->ldap_ld == NULL)
1634 if (lmap->ldap_pid == getpid())
1635 ldap_unbind(lmap->ldap_ld);
1636 lmap->ldap_ld = NULL;
1637 lmap->ldap_pid = 0;