19 if(!openldap_ldap_initialized) {
20 openldap_ldap_initialize();
23 if(outvalue == NULL) {
24 /* no place to get to */
29 ld = &openldap_ld_globals;
35 case LDAP_OPT_API_INFO: {
36 struct ldapapiinfo *info = (struct ldapapiinfo *) outvalue;
39 /* outvalue must point to an apiinfo structure */
43 if(info->ldapai_info_version != LDAP_API_INFO_VERSION) {
44 /* api info version mismatch */
45 info->ldapai_info_version = LDAP_API_INFO_VERSION;
49 info->ldapai_api_version = LDAP_API_VERSION;
50 info->ldapai_api_version = LDAP_API_VERSION;
51 info->ldapai_protocol_version = LDAP_VERSION_MAX;
52 info->ldapai_extensions = NULL;
53 info->ldapai_vendor_name = strdup(LDAP_VENDOR_NAME);
54 info->ldapai_vendor_version = LDAP_VENDOR_VERSION;
65 * (int *) outvalue = ld->ld_sb.sb_sd;
69 * (int *) outvalue = ld->ld_deref;
72 case LDAP_OPT_SIZELIMIT:
73 * (int *) outvalue = ld->ld_sizelimit;
76 case LDAP_OPT_TIMELIMIT:
77 * (int *) outvalue = ld->ld_timelimit;
80 case LDAP_OPT_REFERRALS:
81 * (int *) outvalue = (int) LDAP_BOOL_GET(ld, LDAP_BOOL_REFERRALS);
84 case LDAP_OPT_RESTART:
85 * (int *) outvalue = (int) LDAP_BOOL_GET(ld, LDAP_BOOL_RESTART);
88 case LDAP_OPT_DNS: /* LDAPv2 */
89 * (int *) outvalue = (int) LDAP_BOOL_GET(ld, LDAP_BOOL_DNS);
92 case LDAP_OPT_PROTOCOL_VERSION:
93 * (int *) outvalue = ld->ld_version;
96 case LDAP_OPT_SERVER_CONTROLS:
97 case LDAP_OPT_CLIENT_CONTROLS:
98 /* not yet supported */
101 case LDAP_OPT_HOST_NAME:
102 * (char **) outvalue = ld->ld_host;
105 case LDAP_OPT_ERROR_NUMBER:
106 * (int *) outvalue = ld->ld_errno;
109 case LDAP_OPT_ERROR_STRING:
110 /* not yet supported */
129 if(!openldap_ldap_initialized) {
130 openldap_ldap_initialize();
133 if(invalue == NULL) {
134 /* no place to set from */
139 ld = &openldap_ld_globals;
145 case LDAP_OPT_API_INFO:
151 ld->ld_deref = * (int *) invalue;
154 case LDAP_OPT_SIZELIMIT:
155 ld->ld_sizelimit = * (int *) invalue;
158 case LDAP_OPT_TIMELIMIT:
159 ld->ld_timelimit = * (int *) invalue;
162 case LDAP_OPT_REFERRALS:
163 if((int) invalue == (int) LDAP_OPT_ON) {
164 LDAP_BOOL_SET(ld, LDAP_BOOL_REFERRALS);
166 LDAP_BOOL_CLR(ld, LDAP_BOOL_REFERRALS);
170 case LDAP_OPT_RESTART:
171 if((int) invalue == (int) LDAP_OPT_ON) {
172 LDAP_BOOL_SET(ld, LDAP_BOOL_RESTART);
174 LDAP_BOOL_CLR(ld, LDAP_BOOL_RESTART);
178 case LDAP_OPT_PROTOCOL_VERSION: {
179 int vers = * (int *) invalue;
180 if (vers < LDAP_VERSION_MIN || vers > LDAP_VERSION_MAX) {
184 ld->ld_version = vers;
187 case LDAP_OPT_SERVER_CONTROLS:
188 case LDAP_OPT_CLIENT_CONTROLS:
189 case LDAP_OPT_HOST_NAME:
190 case LDAP_OPT_ERROR_NUMBER:
191 case LDAP_OPT_ERROR_STRING:
192 /* not yet supported */