diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/lib/system_smbd.c | 4 | ||||
-rw-r--r-- | source3/nsswitch/wb_common.c | 27 | ||||
-rw-r--r-- | source3/nsswitch/winbind_client.h | 11 | ||||
-rw-r--r-- | source3/passdb/pdb_interface.c | 4 | ||||
-rw-r--r-- | source3/winbindd/idmap_nss.c | 8 |
5 files changed, 16 insertions, 38 deletions
diff --git a/source3/lib/system_smbd.c b/source3/lib/system_smbd.c index 9d3eb95664..1f5dd3172f 100644 --- a/source3/lib/system_smbd.c +++ b/source3/lib/system_smbd.c @@ -125,7 +125,7 @@ static int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grp * always determined by the info3 coming back from auth3 or the * PAC. */ winbind_env = winbind_env_set(); - winbind_off(); + (void)winbind_off(); #ifdef HAVE_GETGROUPLIST retval = getgrouplist(user, gid, groups, grpcnt); @@ -137,7 +137,7 @@ static int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grp /* allow winbindd lookups, but only if they were not already disabled */ if (!winbind_env) { - winbind_on(); + (void)winbind_on(); } return retval; diff --git a/source3/nsswitch/wb_common.c b/source3/nsswitch/wb_common.c index 49a2935bff..b113fc3336 100644 --- a/source3/nsswitch/wb_common.c +++ b/source3/nsswitch/wb_common.c @@ -538,18 +538,6 @@ int winbindd_read_reply(struct winbindd_response *response) return result1 + result2; } -bool winbind_env_set(void) -{ - char *env; - - if ((env=getenv(WINBINDD_DONT_ENV)) != NULL) { - if(strcmp(env, "1") == 0) { - return true; - } - } - return false; -} - /* * send simple types of requests */ @@ -663,21 +651,6 @@ NSS_STATUS winbindd_priv_request_response(int req_type, } /************************************************************************* - A couple of simple functions to disable winbindd lookups and re- - enable them - ************************************************************************/ - -bool winbind_off(void) -{ - return setenv(WINBINDD_DONT_ENV, "1", 1) != -1; -} - -bool winbind_on(void) -{ - return setenv(WINBINDD_DONT_ENV, "0", 1) != -1; -} - -/************************************************************************* ************************************************************************/ const char *nss_err_str(NSS_STATUS ret) diff --git a/source3/nsswitch/winbind_client.h b/source3/nsswitch/winbind_client.h index 2a3956e1fd..757f5869e9 100644 --- a/source3/nsswitch/winbind_client.h +++ b/source3/nsswitch/winbind_client.h @@ -14,9 +14,14 @@ NSS_STATUS winbindd_priv_request_response(int req_type, struct winbindd_response *response); int winbindd_read_reply(struct winbindd_response *response); -bool winbind_env_set(void); -bool winbind_off(void); -bool winbind_on(void); +#define winbind_env_set() \ + (strcmp(getenv(WINBINDD_DONT_ENV)?getenv(WINBINDD_DONT_ENV):"0","1") == 0) + +#define winbind_off() \ + (setenv(WINBINDD_DONT_ENV, "1", 1) == 0) + +#define winbind_on() \ + (setenv(WINBINDD_DONT_ENV, "0", 1) == 0) int winbind_write_sock(void *buffer, int count, int recursing, int need_priv); int winbind_read_sock(void *buffer, int count); diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c index fbba8bcaee..cd34c89bfc 100644 --- a/source3/passdb/pdb_interface.c +++ b/source3/passdb/pdb_interface.c @@ -1349,7 +1349,7 @@ static bool get_memberuids(TALLOC_CTX *mem_ctx, gid_t gid, uid_t **pp_uids, size /* We only look at our own sam, so don't care about imported stuff */ winbind_env = winbind_env_set(); - winbind_off(); + (void)winbind_off(); if ((grp = getgrgid(gid)) == NULL) { /* allow winbindd lookups, but only if they weren't already disabled */ @@ -1385,7 +1385,7 @@ static bool get_memberuids(TALLOC_CTX *mem_ctx, gid_t gid, uid_t **pp_uids, size /* allow winbindd lookups, but only if they weren't already disabled */ if (!winbind_env) { - winbind_on(); + (void)winbind_on(); } return ret; diff --git a/source3/winbindd/idmap_nss.c b/source3/winbindd/idmap_nss.c index 46c24d7fcb..e4acd9ce65 100644 --- a/source3/winbindd/idmap_nss.c +++ b/source3/winbindd/idmap_nss.c @@ -87,10 +87,10 @@ static NTSTATUS idmap_nss_unixids_to_sids(struct idmap_domain *dom, struct id_ma /* by default calls to winbindd are disabled the following call will not recurse so this is safe */ - winbind_on(); + (void)winbind_on(); /* Lookup name from PDC using lsa_lookup_names() */ ret = winbind_lookup_name(dom->name, name, ids[i]->sid, &type); - winbind_off(); + (void)winbind_off(); if (!ret) { /* TODO: how do we know if the name is really not mapped, @@ -153,9 +153,9 @@ static NTSTATUS idmap_nss_sids_to_unixids(struct idmap_domain *dom, struct id_ma /* by default calls to winbindd are disabled the following call will not recurse so this is safe */ - winbind_on(); + (void)winbind_on(); ret = winbind_lookup_sid(ctx, ids[i]->sid, &dom_name, &name, &type); - winbind_off(); + (void)winbind_off(); if (!ret) { /* TODO: how do we know if the name is really not mapped, |