/* 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
#endif
/* allow winbindd lookups */
- unsetenv( WINBINDD_DONT_ENV );
+ setenv( WINBINDD_DONT_ENV, "0", 1);
return retval;
}
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) {