fix for platforms that don't have unsetenv().
authorGerald Carter <jerry@samba.org>
Mon, 30 Jun 2003 16:18:29 +0000 (16:18 +0000)
committerGerald Carter <jerry@samba.org>
Mon, 30 Jun 2003 16:18:29 +0000 (16:18 +0000)
we now have to check the value for _NO_WINBINDD.
"1" enables, and != "1" disables (use "0" by convention).
(This used to be commit 11eccaef1dc61d80a7db8d0fb4bc5a47d71a4390)

source3/lib/system_smbd.c
source3/nsswitch/wb_common.c

index ca7803166083f0d9fd3a98c16baf2f6e9be222b1..3498307acb5fde2fb2fccbf5f2ac24e1c4d2c5ff 100644 (file)
@@ -114,7 +114,7 @@ int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grpcnt)
        
        /* see if we should disable winbindd lookups for local users */
        if ( (p = strchr(user, *lp_winbind_separator())) == NULL ) {
-               if ( setenv(WINBINDD_DONT_ENV, "1", True) == -1 )
+               if ( setenv(WINBINDD_DONT_ENV, "1", 1) == -1 )
                        DEBUG(0,("sys_getgroup_list: Insufficient environment space for %s\n",
                                WINBINDD_DONT_ENV));
                else
@@ -131,7 +131,7 @@ int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grpcnt)
 #endif
 
        /* allow winbindd lookups */
-       unsetenv( WINBINDD_DONT_ENV );
+       setenv( WINBINDD_DONT_ENV, "0", 1);
        
        return retval;
 }
index ac1ccb217ed71aac3d767a7241b40476e8a72b5d..adcfdaa9d8ad67221dbd6c9dd110a2ae6eb23819 100644 (file)
@@ -395,11 +395,15 @@ int read_reply(struct winbindd_response *response)
 NSS_STATUS winbindd_send_request(int req_type, struct winbindd_request *request)
 {
        struct winbindd_request lrequest;
-
+       char *env;
+       int  value;
+       
        /* Check for our tricky environment variable */
 
-       if (getenv(WINBINDD_DONT_ENV)) {
-               return NSS_STATUS_NOTFOUND;
+       if ( (env = getenv(WINBINDD_DONT_ENV)) != NULL ) {
+               value = atoi(env);
+               if ( value == 1 )
+                       return NSS_STATUS_NOTFOUND;
        }
 
        if (!request) {