summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2003-06-30 16:18:29 +0000
committerGerald Carter <jerry@samba.org>2003-06-30 16:18:29 +0000
commit1d8cd8faf620cb068d740d8fad7968525d45e83a (patch)
tree1562f06c0d84110c61b91b5db08997f5a3a5dfcb /source3
parentaca3fa914928bdb1b7ea091ffe169a4e74b213d0 (diff)
downloadsamba-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.c4
-rw-r--r--source3/nsswitch/wb_common.c10
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) {