From f36877eba4eec555fc0f112f37fcd2fdcd8dc60d Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Tue, 17 Nov 2009 18:25:21 +0000 Subject: [PATCH] ITS#6283 --- CHANGES | 1 + libraries/libldap/init.c | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/CHANGES b/CHANGES index 740a28e286..d0477aeade 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ OpenLDAP 2.4 Change Log OpenLDAP 2.4.20 Engineering + Fixed client tools with LDAP options (ITS#6283) Fixed liblber embedded NUL values in BerValues (ITS#6353) Fixed liblber inverted LBER_USE_DER test (ITS#6348) Fixed liblber to return failure on certain failures (ITS#6344) diff --git a/libraries/libldap/init.c b/libraries/libldap/init.c index d21f44bb79..a4a51ab7ff 100644 --- a/libraries/libldap/init.c +++ b/libraries/libldap/init.c @@ -427,11 +427,34 @@ static void openldap_ldap_init_w_env( ldap_int_sasl_config( gopts, attrs[i].offset, value ); #endif break; + case ATTR_GSSAPI: +#ifdef HAVE_GSSAPI + ldap_int_gssapi_config( gopts, attrs[i].offset, value ); +#endif + break; case ATTR_TLS: #ifdef HAVE_TLS ldap_int_tls_config( NULL, attrs[i].offset, value ); #endif break; + case ATTR_OPT_TV: { + struct timeval tv; + char *next; + tv.tv_usec = 0; + tv.tv_sec = strtol( value, &next, 10 ); + if ( next != value && next[ 0 ] == '\0' && tv.tv_sec > 0 ) { + (void)ldap_set_option( NULL, attrs[i].offset, (const void *)&tv ); + } + } break; + case ATTR_OPT_INT: { + long l; + char *next; + l = strtol( value, &next, 10 ); + if ( next != value && next[ 0 ] == '\0' && l > 0 && (long)((int)l) == l ) { + int v = (int)l; + (void)ldap_set_option( NULL, attrs[i].offset, (const void *)&v ); + } + } break; } } } -- 2.39.5