Move generic usernames to sysconf
This commit is contained in:
@@ -364,11 +364,6 @@
|
||||
*/
|
||||
#endif /* CHDIR */
|
||||
|
||||
/* If GENERIC_USERNAMES is defined, and the player's username is found
|
||||
* in the list, prompt for character name instead of using username.
|
||||
* A public server should probably disable this. */
|
||||
#define GENERIC_USERNAMES "play player game games nethack nethacker"
|
||||
|
||||
/*
|
||||
* Section 3: Definitions that may vary with system type.
|
||||
* For example, both schar and uchar should be short ints on
|
||||
|
||||
@@ -13,6 +13,7 @@ struct sysopt {
|
||||
or "one or two" or "one, two, or three", &c */
|
||||
char *explorers; /* like wizards, but for access to explore mode */
|
||||
char *shellers; /* like wizards, for ! command (-DSHELL); also ^Z */
|
||||
char *genericusers; /* usernames that prompt for user name */
|
||||
char *debugfiles; /* files to show debugplines in. '*' is all. */
|
||||
int env_dbgfl; /* 1: debugfiles comes from getenv("DEBUGFILES")
|
||||
* so sysconf's DEBUGFILES shouldn't override it;
|
||||
|
||||
@@ -2263,6 +2263,9 @@ int src;
|
||||
free((genericptr_t) sysopt.debugfiles);
|
||||
sysopt.debugfiles = dupstr(bufp);
|
||||
}
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "GENERICUSERS", 12)) {
|
||||
if (sysopt.genericusers) free(sysopt.genericusers);
|
||||
sysopt.genericusers = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "SUPPORT", 7)) {
|
||||
if (sysopt.support)
|
||||
free((genericptr_t) sysopt.support);
|
||||
|
||||
21
src/role.c
21
src/role.c
@@ -1700,18 +1700,17 @@ plnamesuffix()
|
||||
char *sptr, *eptr;
|
||||
int i;
|
||||
|
||||
#ifdef GENERIC_USERNAMES
|
||||
{
|
||||
/* some generic user names will be ignored in favor of prompting */
|
||||
const char *uptr = GENERIC_USERNAMES;
|
||||
|
||||
i = (int) strlen(plname);
|
||||
if ((sptr = strstri(uptr, plname)) != 0
|
||||
&& (sptr == uptr || sptr[-1] == ' ')
|
||||
&& (sptr[i] == ' ' || sptr[i] == '\0'))
|
||||
*plname = '\0'; /* call askname() */
|
||||
/* some generic user names will be ignored in favor of prompting */
|
||||
if (sysopt.genericusers) {
|
||||
if (*sysopt.genericusers == '*') *plname = '\0';
|
||||
else {
|
||||
i = (int)strlen(plname);
|
||||
if ((sptr = strstri(sysopt.genericusers, plname)) != 0
|
||||
&& (sptr == sysopt.genericusers || sptr[-1] == ' ')
|
||||
&& (sptr[i] == ' ' || sptr[i] == '\0'))
|
||||
*plname = '\0'; /* call askname() */
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
do {
|
||||
if (!*plname)
|
||||
|
||||
@@ -35,6 +35,7 @@ sys_early_init()
|
||||
sysopt.env_dbgfl = 0; /* haven't checked getenv("DEBUGFILES") yet */
|
||||
sysopt.shellers = (char *) 0;
|
||||
sysopt.explorers = (char *) 0;
|
||||
sysopt.genericusers = (char *) 0;
|
||||
sysopt.maxplayers = 0; /* XXX eventually replace MAX_NR_OF_PLAYERS */
|
||||
|
||||
/* record file */
|
||||
@@ -94,6 +95,9 @@ sysopt_release()
|
||||
if (sysopt.debugfiles)
|
||||
free((genericptr_t) sysopt.debugfiles),
|
||||
sysopt.debugfiles = (char *) 0;
|
||||
if (sysopt.genericusers)
|
||||
free((genericptr_t) sysopt.genericusers),
|
||||
sysopt.genericusers = (char *) 0;
|
||||
#ifdef PANICTRACE
|
||||
if (sysopt.gdbpath)
|
||||
free((genericptr_t) sysopt.gdbpath), sysopt.gdbpath = (char *) 0;
|
||||
|
||||
@@ -30,6 +30,11 @@ EXPLORERS=*
|
||||
# Uses the same syntax as the WIZARDS and EXPLORERS options above.
|
||||
#SHELLERS=
|
||||
|
||||
# If the user name is found in this list, prompt for username instead.
|
||||
# Uses the same syntax as the WIZARDS option above.
|
||||
# A public server should probably disable this.
|
||||
GENERICUSERS=play player game games nethack nethacker
|
||||
|
||||
# Use the player name for matching WIZARDS, EXPLORERS and SHELLERS,
|
||||
# instead of the user's login name.
|
||||
#CHECK_PLNAME=1
|
||||
|
||||
Reference in New Issue
Block a user