diff options
author | Gerald Carter <jerry@samba.org> | 2003-06-30 16:18:29 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-06-30 16:18:29 +0000 |
commit | 1d8cd8faf620cb068d740d8fad7968525d45e83a (patch) | |
tree | 1562f06c0d84110c61b91b5db08997f5a3a5dfcb /source3 | |
parent | aca3fa914928bdb1b7ea091ffe169a4e74b213d0 (diff) | |
download | samba-1d8cd8faf620cb068d740d8fad7968525d45e83a.tar.gz samba-1d8cd8faf620cb068d740d8fad7968525d45e83a.tar.bz2 samba-1d8cd8faf620cb068d740d8fad7968525d45e83a.zip |
fix for platforms that don't have unsetenv().
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)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/lib/system_smbd.c | 4 | ||||
-rw-r--r-- | source3/nsswitch/wb_common.c | 10 |
2 files changed, 9 insertions, 5 deletions
diff --git a/source3/lib/system_smbd.c b/source3/lib/system_smbd.c index ca78031660..3498307acb 100644 --- a/source3/lib/system_smbd.c +++ b/source3/lib/system_smbd.c @@ -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; } diff --git a/source3/nsswitch/wb_common.c b/source3/nsswitch/wb_common.c index ac1ccb217e..adcfdaa9d8 100644 --- a/source3/nsswitch/wb_common.c +++ b/source3/nsswitch/wb_common.c @@ -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) { |