]> git.sur5r.net Git - openldap/commitdiff
slapi_ldap_init() / slapi_ldap_unbind()
authorLuke Howard <lukeh@openldap.org>
Mon, 24 May 2004 05:28:43 +0000 (05:28 +0000)
committerLuke Howard <lukeh@openldap.org>
Mon, 24 May 2004 05:28:43 +0000 (05:28 +0000)
servers/slapd/slapi/proto-slapi.h
servers/slapd/slapi/slapi_utils.c

index eca8f2152afec1ecb124c908cb427975ee2d15dc..d524ebf519b0fe0de5ca7e17631f595aa153acfe 100644 (file)
@@ -149,6 +149,9 @@ extern void slapi_destroy_condvar( Slapi_CondVar *cvar );
 extern int slapi_wait_condvar( Slapi_CondVar *cvar, struct timeval *timeout );
 extern int slapi_notify_condvar( Slapi_CondVar *cvar, int notify_all );
 
+extern LDAP *slapi_ldap_init( char *ldaphost, int ldapport, int secure, int shared );
+extern void slapi_ldap_unbind( LDAP *ld );
+
 extern char *slapi_ch_malloc( unsigned long size );
 extern void slapi_ch_free( void **ptr );
 extern void slapi_ch_free_string( char **s );
index f2ca2846ea644e62771ba89c720b3cc8c16f8611..b87f6419476a341c3953edb3e0c22bcc6bbe5ef5 100644 (file)
@@ -4194,3 +4194,43 @@ void slapi_entry_set_uniqueid( Slapi_Entry *e, char *uniqueid )
 #endif /* LDAP_SLAPI */
 }
 
+LDAP *slapi_ldap_init( char *ldaphost, int ldapport, int secure, int shared )
+{
+#ifdef LDAP_SLAPI
+       LDAP *ld;
+       char *url;
+       size_t size;
+       int rc;
+
+       size = sizeof("ldap:///");
+       if ( secure )
+               size++;
+       size += strlen( ldaphost );
+       if ( ldapport != 0 )
+               size += 32;
+
+       url = slapi_ch_malloc( size );
+
+       if ( ldapport != 0 ) {
+               sprintf( url, "ldap%s://%s:%d/", ( secure ? "s" : "" ), ldaphost, ldapport );
+       } else {
+               sprintf( url, "ldap%s://%s/", ( secure ? "s" : "" ), ldaphost );
+       }
+
+       rc = ldap_initialize( &ld, url );
+
+       slapi_ch_free_string( &url );
+
+       return ( rc == LDAP_SUCCESS ) ? ld : NULL;
+#else
+       return NULL;
+#endif /* LDAP_SLAPI */
+}
+
+void slapi_ldap_unbind( LDAP *ld )
+{
+#ifdef LDAP_SLAPI
+       ldap_unbind( ld );
+#endif /* LDAP_SLAPI */
+}
+