]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/open.c
Fix up NT port after thread changes
[openldap] / libraries / libldap / open.c
index f97b6c8b9b00a19050c7025f8357b041ad2ebecf..938739d7ebabb6b839ad737e960697c3db364287 100644 (file)
@@ -78,10 +78,17 @@ int
 ldap_create( LDAP **ldp )
 {
        LDAP                    *ld;
+       struct ldapoptions      *gopts;
 
        *ldp = NULL;
-       if( ldap_int_global_options.ldo_valid != LDAP_INITIALIZED ) {
-               ldap_int_initialize(NULL);
+       /* Get pointer to global option structure */
+       if ( (gopts = LDAP_INT_GLOBAL_OPT()) == NULL) {
+               return LDAP_NO_MEMORY;
+       }
+
+       /* Initialize the global options, if not already done. */
+       if( gopts->ldo_valid != LDAP_INITIALIZED ) {
+               ldap_int_initialize(gopts, NULL);
        }
 
        Debug( LDAP_DEBUG_TRACE, "ldap_init\n", 0, 0, 0 );
@@ -127,8 +134,7 @@ ldap_create( LDAP **ldp )
        }
    
        /* copy the global options */
-       memcpy(&ld->ld_options, &ldap_int_global_options,
-               sizeof(ld->ld_options));
+       memcpy(&ld->ld_options, gopts, sizeof(ld->ld_options));
 
        ld->ld_valid = LDAP_VALID_SESSION;
 
@@ -137,8 +143,7 @@ ldap_create( LDAP **ldp )
        ld->ld_options.ldo_sctrls = NULL;
        ld->ld_options.ldo_cctrls = NULL;
 
-       ld->ld_options.ldo_defludp =
-                       ldap_url_duplist(ldap_int_global_options.ldo_defludp);
+       ld->ld_options.ldo_defludp = ldap_url_duplist(gopts->ldo_defludp);
 
        if ( ld->ld_options.ldo_defludp == NULL ) {
                LDAP_FREE( (char*)ld );
@@ -298,8 +303,9 @@ open_ldap_connection( LDAP *ld, Sockbuf *sb, LDAPURLDesc *srv,
                        ber_sockbuf_add_io( sb, &ber_sockbuf_io_udp,
                                LBER_SBIOD_LEVEL_PROVIDER, NULL );
                        break;
-#ifdef LDAP_PF_LOCAL
-               case LDAP_PROTO_LOCAL:
+               case LDAP_PROTO_IPC:
+#ifdef LDAP_PF_UNIX
+                       /* only IPC mechanism supported is PF_UNIX */
                        rc = ldap_connect_to_path( ld, sb, srv->lud_host,
                                async );
                        if ( rc == -1 )
@@ -307,7 +313,7 @@ open_ldap_connection( LDAP *ld, Sockbuf *sb, LDAPURLDesc *srv,
                        ber_sockbuf_add_io( sb, &ber_sockbuf_io_fd,
                                LBER_SBIOD_LEVEL_PROVIDER, NULL );
                        break;
-#endif /* LDAP_PF_LOCAL */
+#endif /* LDAP_PF_UNIX */
                default:
                        return -1;
                        break;