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 != 1) {
44 /* version mismatch */
48 info->ldapai_api_version = LDAP_API_VERSION;
49 info->ldapai_protocol_version = LDAP_VERSION_MAX;
50 info->ldapai_extensions = NULL;
51 info->ldapai_vendor_name = strdup(LDAP_VENDOR);
52 info->ldapai_vendor_version = LDAP_VENDOR_VERSION;
63 * (int *) outvalue = ld->ld_sb.sb_sd;
67 * (int *) outvalue = ld->ld_deref;
70 case LDAP_OPT_SIZELIMIT:
71 * (int *) outvalue = ld->ld_sizelimit;
74 case LDAP_OPT_TIMELIMIT:
75 * (int *) outvalue = ld->ld_timelimit;
78 case LDAP_OPT_REFERRALS:
79 * (int *) outvalue = (int) LDAP_BOOL_GET(ld, LDAP_BOOL_REFERRALS);
82 case LDAP_OPT_RESTART:
83 * (int *) outvalue = (int) LDAP_BOOL_GET(ld, LDAP_BOOL_RESTART);
86 case LDAP_OPT_DNS: /* LDAPv2 */
87 * (int *) outvalue = (int) LDAP_BOOL_GET(ld, LDAP_BOOL_DNS);
90 case LDAP_OPT_PROTOCOL_VERSION:
91 * (int *) outvalue = ld->ld_version;
94 case LDAP_OPT_SERVER_CONTROLS:
95 case LDAP_OPT_CLIENT_CONTROLS:
96 /* not yet supported */
99 case LDAP_OPT_HOST_NAME:
100 * (char **) outvalue = ld->ld_host;
103 case LDAP_OPT_ERROR_NUMBER:
104 * (int *) outvalue = ld->ld_errno;
107 case LDAP_OPT_ERROR_STRING:
108 /* not yet supported */
127 if(!openldap_ldap_initialized) {
128 openldap_ldap_initialize();
131 if(invalue == NULL) {
132 /* no place to set from */
137 ld = &openldap_ld_globals;
143 case LDAP_OPT_API_INFO:
149 ld->ld_deref = * (int *) invalue;
152 case LDAP_OPT_SIZELIMIT:
153 ld->ld_sizelimit = * (int *) invalue;
156 case LDAP_OPT_TIMELIMIT:
157 ld->ld_timelimit = * (int *) invalue;
160 case LDAP_OPT_REFERRALS:
161 if((int) invalue == (int) LDAP_OPT_ON) {
162 LDAP_BOOL_SET(ld, LDAP_BOOL_REFERRALS);
164 LDAP_BOOL_CLR(ld, LDAP_BOOL_REFERRALS);
168 case LDAP_OPT_RESTART:
169 if((int) invalue == (int) LDAP_OPT_ON) {
170 LDAP_BOOL_SET(ld, LDAP_BOOL_RESTART);
172 LDAP_BOOL_CLR(ld, LDAP_BOOL_RESTART);
176 case LDAP_OPT_PROTOCOL_VERSION: {
177 int vers = * (int *) invalue;
178 if (vers > LDAP_VERSION_MAX) {
182 ld->ld_version = vers;
185 case LDAP_OPT_SERVER_CONTROLS:
186 case LDAP_OPT_CLIENT_CONTROLS:
187 case LDAP_OPT_HOST_NAME:
188 case LDAP_OPT_ERROR_NUMBER:
189 case LDAP_OPT_ERROR_STRING:
190 /* not yet supported */