"shed_gid" { return TYPE_SGID; }
"maxusers" { return TYPE_MAX; }
"maxnicklen" { return TYPE_MAXNICKLEN; }
+"allow_new_nicks" { return TYPE_ALLOW_REGISTRATION; }
"game_num" { return TYPE_GAMENUM; }
%token TYPE_SUSER TYPE_SGROUP TYPE_SGID TYPE_SUID TYPE_MAX TYPE_MAXNICKLEN
%token TYPE_PATH_CHDIR TYPE_PATH_MKDIR TYPE_GAME_SHORT_NAME
+%token TYPE_ALLOW_REGISTRATION
%token TYPE_PATH_GAME TYPE_NAME_GAME TYPE_PATH_DGLDIR TYPE_PATH_SPOOL
%token TYPE_PATH_BANNER TYPE_PATH_CANNED TYPE_PATH_CHROOT TYPE_GAMENUM
%token TYPE_PATH_PASSWD TYPE_PATH_LOCKFILE TYPE_PATH_SAVEFILEFMT
num_games = ncnf;
break;
+ case TYPE_ALLOW_REGISTRATION:
+ globalconfig.allow_registration = $3;
+ break;
+
case TYPE_MAX:
globalconfig.max = $3;
break;
| TYPE_MAXNICKLEN { $$ = TYPE_MAXNICKLEN; }
| TYPE_GAMENUM { $$ = TYPE_GAMENUM; }
| TYPE_PATH_CHROOT { $$ = TYPE_PATH_CHROOT; }
+ | TYPE_ALLOW_REGISTRATION { $$ = TYPE_ALLOW_REGISTRATION; }
| TYPE_PATH_GAME { $$ = TYPE_PATH_GAME; }
| TYPE_NAME_GAME { $$ = TYPE_NAME_GAME; }
| TYPE_GAME_SHORT_NAME { $$ = TYPE_GAME_SHORT_NAME; }
case TYPE_PATH_MKDIR: return "mkdir";
case TYPE_PATH_GAME: return "game_path";
case TYPE_NAME_GAME: return "game_name";
+ case TYPE_ALLOW_REGISTRATION: return "allow_new_nicks";
case TYPE_GAME_SHORT_NAME: return "short_name";
case TYPE_PATH_DGLDIR: return "dglroot";
case TYPE_PATH_SPOOL: return "spooldir";
{
mvaddstr (banner.len + 2, 1, "Not logged in.");
mvaddstr (banner.len + 4, 1, "l) Login");
- mvaddstr (banner.len + 5, 1, "r) Register new user");
+ if (globalconfig.allow_registration)
+ mvaddstr (banner.len + 5, 1, "r) Register new user");
+ else
+ mvaddstr (banner.len + 5, 1, " Register new user - DISABLED");
mvaddstr (banner.len + 6, 1, "w) Watch games in progress");
mvaddstr (banner.len + 7, 1, "q) Quit");
mvaddstr (banner.len + 11, 1, "=> ");
graceful_exit(0);*/
/* break; */
case 'r':
- if (!loggedin) /*not visible to loggedin */
+ if (!loggedin && globalconfig.allow_registration)
newuser ();
break;
case 'l':
gid_t shed_gid;
char* passwd;
char* lockfile;
+ int allow_registration; /* allow registering new nicks */
};
/* Global variables */
FILE *config_file = NULL;
int tmp;
+ if (!globalconfig.allow_registration) globalconfig.allow_registration = 1;
+
if (config)
{
if ((config_file = fopen(config, "r")) != NULL)
# Max amount of registered users to allow.
maxusers = 64000
+# Allow registration of new nicks? (0 or 1)
+allow_new_nicks = 1
+
# Max length for newly registered nicks. Must be less than 20.
# By default, NetHack only stores the first 10 chars of a name into
# the record/logfile.