int force_old = 0;
int _use_yp = 0;
int suser_override = 0;
+int yp_in_pw_file = 0;
char *yp_domain = NULL;
char *yp_server = NULL;
bf[0] = _PW_KEYYPENABLED;
key.data = (u_char *)bf;
key.size = 1;
- if ((!(dbp->get)(dbp,&key,&data,0) && _yp_check(NULL)) ||
- (yp_domain && yp_server)) {
+ yp_in_pw_file = !(dbp->get)(dbp,&key,&data,0);
+ if (_yp_check(NULL) || (yp_domain && yp_server)) {
server = get_yp_master(0);
/* Is the user in the NIS passwd map */
return(USER_LOCAL_ONLY);
else if (!user_exists)
return(USER_UNKNOWN);
+
return(-1);
}
* Center for Telecommunications Research
* Columbia University, New York City
*
- * $Id: pw_yp.h,v 1.8 1996/02/17 18:14:23 wpaul Exp $
+ * $Id: pw_yp.h,v 1.3 1996/02/23 16:08:59 wpaul Exp $
*/
#ifdef YP
extern void yp_submit __P(( struct passwd * ));
extern int use_yp __P(( char * , uid_t , int ));
extern char *get_yp_master __P(( int ));
+extern int yp_in_pw_file;
/*
* Yucky.
} else \
errx(1, "unknown NIS user: uid %u", X); \
} else if (_use_yp == USER_YP_AND_LOCAL) { \
- if (!force_local) { \
+ if (!force_local && (force_yp || yp_in_pw_file)) { \
_use_yp = 1; \
pw = (struct passwd *)&yp_password; \
} else { \
} else \
errx(1, "unknown NIS user: %s.", X); \
} else if (_use_yp == USER_YP_AND_LOCAL) { \
- if (!force_local) { \
+ if (!force_local && (force_yp || yp_in_pw_file)) { \
_use_yp = 1; \
pw = (struct passwd *)&yp_password; \
} else { \