diff options
Diffstat (limited to 'usr/src/lib/libldap4/common/option.c')
-rw-r--r-- | usr/src/lib/libldap4/common/option.c | 243 |
1 files changed, 0 insertions, 243 deletions
diff --git a/usr/src/lib/libldap4/common/option.c b/usr/src/lib/libldap4/common/option.c deleted file mode 100644 index b80d6a609c..0000000000 --- a/usr/src/lib/libldap4/common/option.c +++ /dev/null @@ -1,243 +0,0 @@ -/* - * Copyright (c) 1995-2001 by Sun Microsystems, Inc. - * All rights reserved. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include <stdio.h> -#include <string.h> -#include "lber.h" -#include "ldap.h" -#include "ldap-private.h" -#include "ldap-int.h" - -extern LDAPControl ** ldap_controls_dup(LDAPControl **ctrls); - -/* - * ldap_get_option() - */ -int -ldap_get_option(LDAP *ld, int option, void *outvalue) -{ - if (ld == NULL) - return (-1); -#ifdef _REENTRANT - LOCK_LDAP(ld); -#endif - switch (option) { - case LDAP_OPT_API_INFO: - ((LDAPAPIInfo *)outvalue)->ldapai_api_version = - LDAP_API_VERSION; - if (((LDAPAPIInfo *)outvalue)->ldapai_info_version != - LDAP_API_INFO_VERSION) { - ((LDAPAPIInfo *)outvalue)->ldapai_info_version = - LDAP_API_INFO_VERSION; -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (-1); - } - ((LDAPAPIInfo *)outvalue)->ldapai_protocol_version = - LDAP_VERSION_MAX; - /* No extensions are currently supported */ - ((LDAPAPIInfo *)outvalue)->ldapai_extensions = NULL; - ((LDAPAPIInfo *)outvalue)->ldapai_vendor_name = - strdup(LDAP_VENDOR_NAME); - ((LDAPAPIInfo *)outvalue)->ldapai_vendor_version = - LDAP_VENDOR_VERSION; - break; - case LDAP_OPT_DESC: /* depricated option */ - *(int *)outvalue = ld->ld_sb.sb_sd; - break; - case LDAP_OPT_DEREF: - *(int *)outvalue = ld->ld_deref; - break; - case LDAP_OPT_SIZELIMIT: - *(int *)outvalue = ld->ld_sizelimit; - break; - case LDAP_OPT_TIMELIMIT: - *(int *)outvalue = ld->ld_timelimit; - break; - case LDAP_OPT_REBIND_FN: /* depricated option */ - outvalue = (void *)ld->ld_rebindproc; - break; - case LDAP_OPT_REBIND_ARG: /* depricated option */ - outvalue = ld->ld_rebind_extra_arg; - break; - case LDAP_OPT_REFERRALS: - *(int *)outvalue = ld->ld_follow_referral; - break; - case LDAP_OPT_RESTART: - *(int *)outvalue = ld->ld_restart; - break; - case LDAP_OPT_PROTOCOL_VERSION: - *(int *)outvalue = ld->ld_version; - break; - case LDAP_OPT_SERVER_CONTROLS: - outvalue = ld->ld_srvctrls; - break; - case LDAP_OPT_CLIENT_CONTROLS: - outvalue = ld->ld_cltctrls; - break; - case LDAP_OPT_API_FEATURE_INFO: - if ((((LDAPAPIFeatureInfo *)outvalue)->ldapaif_info_version != - LDAP_FEATURE_INFO_VERSION) || - (((LDAPAPIFeatureInfo *)outvalue)->ldapaif_name == - NULL)) { - ((LDAPAPIFeatureInfo *)outvalue)->ldapaif_info_version = - LDAP_FEATURE_INFO_VERSION; -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (-1); - } - /* - * This option must be completed when optional api's (or - * (extensions) are supported by this library. Right now - * there are none, and therefore this section can not be - * completed. - */ - break; - case LDAP_OPT_HOST_NAME: - *(char **)outvalue = ld->ld_host; - break; - case LDAP_OPT_ERROR_NUMBER: - *(int *)outvalue = ld->ld_errno; - break; - case LDAP_OPT_ERROR_STRING: - *(char **)outvalue = ld->ld_error; - break; - case LDAP_OPT_MATCHED_DN: -/* case LDAP_OPT_ERROR_MATCHED: depricated option */ - *(char **)outvalue = ld->ld_matched; - break; - case LDAP_X_OPT_CONNECT_TIMEOUT: - *((int *)outvalue) = ld->ld_connect_timeout; - break; - default: -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (-1); - } - -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (0); -} - -int -ldap_set_option(LDAP *ld, int option, void *invalue) -{ - if (ld == NULL) - return (-1); -#ifdef _REENTRANT - LOCK_LDAP(ld); -#endif - switch (option) { - case LDAP_OPT_DESC: - break; - case LDAP_OPT_DEREF: - if (*(int *)invalue != LDAP_DEREF_NEVER && - *(int *)invalue != LDAP_DEREF_SEARCHING && - *(int *)invalue != LDAP_DEREF_FINDING && - *(int *)invalue != LDAP_DEREF_ALWAYS) { -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (-1); - } - ld->ld_deref = *(int *)invalue; - break; - case LDAP_OPT_SIZELIMIT: - ld->ld_sizelimit = *(int *)invalue; - break; - case LDAP_OPT_TIMELIMIT: - ld->ld_timelimit = *(int *)invalue; - break; - case LDAP_OPT_REBIND_FN: - /* cast needs to be updated when ldap.h gets updated */ - ld->ld_rebindproc = (LDAP_REBIND_FUNCTION *)invalue; - break; - case LDAP_OPT_REBIND_ARG: - ld->ld_rebind_extra_arg = invalue; - break; - case LDAP_OPT_REFERRALS: - if (invalue != LDAP_OPT_ON && invalue != LDAP_OPT_OFF) { -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (-1); - } - ld->ld_follow_referral = invalue ? 1 : 0; - break; - case LDAP_OPT_RESTART: - if (invalue != LDAP_OPT_ON && invalue != LDAP_OPT_OFF) { -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (-1); - } - ld->ld_restart = invalue ? 1 : 0; - break; - case LDAP_OPT_PROTOCOL_VERSION: - if (*(int *)invalue < LDAP_VERSION1 || - *(int *)invalue > LDAP_VERSION3) { -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (-1); - } - ld->ld_version = *(int *)invalue; - break; - case LDAP_OPT_SERVER_CONTROLS: - if (ld->ld_srvctrls != NULL) { - ldap_controls_free(ld->ld_srvctrls); - } - ld->ld_srvctrls = NULL; - if (invalue != NULL) - ld->ld_srvctrls = ldap_controls_dup(invalue); - break; - case LDAP_OPT_CLIENT_CONTROLS: - if (ld->ld_cltctrls != NULL) { - ldap_controls_free(ld->ld_cltctrls); - } - ld->ld_cltctrls = NULL; - if (invalue != NULL) - ld->ld_cltctrls = ldap_controls_dup(invalue); - break; - case LDAP_OPT_HOST_NAME: - if (ld->ld_host != NULL) { - free(ld->ld_host); - } - ld->ld_host = NULL; - if ((char *)invalue != NULL) - ld->ld_host = strdup((char *)invalue); - break; - case LDAP_OPT_ERROR_NUMBER: - break; - case LDAP_OPT_ERROR_STRING: - break; - case LDAP_OPT_MATCHED_DN: - if (ld->ld_matched) - free(ld->ld_matched); - ld->ld_matched = NULL; - if ((char *)invalue != NULL) - ld->ld_matched = strdup((char *)invalue); - break; - case LDAP_X_OPT_CONNECT_TIMEOUT: - ld->ld_connect_timeout = *((int *)invalue); - break; - default: -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (-1); - } -#ifdef _REENTRANT - UNLOCK_LDAP(ld); -#endif - return (0); -} |