]> skyeroc.xyz Git - dgamelaunch/commitdiff
Config-file variable allow_new_nicks
authorPasi Kallinen <paxed@alt.org>
Mon, 9 Apr 2007 16:42:14 +0000 (16:42 +0000)
committerPasi Kallinen <paxed@alt.org>
Mon, 9 Apr 2007 16:42:14 +0000 (16:42 +0000)
git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@360 db0b04b0-f4d1-0310-9a6d-de3e77497b0e

config.l
config.y
dgamelaunch.c
dgamelaunch.h
dgl-common.c
examples/dgamelaunch.conf

index d41dcb5dff0ccc63bbc42d10a5806908c7226265..c736d1b0a830094a1c9fd95110cd4957bd441a6c 100644 (file)
--- a/config.l
+++ b/config.l
@@ -57,6 +57,7 @@ COMMENT               ^#.*
 "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; }
 
index 58a554eea1e1eee871a8fee35aca2280d149d766..465eb2eaecfd909bb65d41b0dd6d69a695a3455d 100644 (file)
--- a/config.y
+++ b/config.y
@@ -32,6 +32,7 @@ static const char* lookup_token (int t);
 
 %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
@@ -282,6 +283,10 @@ KeyPair: KeyType '=' TYPE_VALUE {
          num_games = ncnf;
       break;
 
+  case TYPE_ALLOW_REGISTRATION:
+      globalconfig.allow_registration = $3;
+      break;
+
     case TYPE_MAX:
       globalconfig.max = $3;
       break;
@@ -305,6 +310,7 @@ KeyType : TYPE_SUSER        { $$ = TYPE_SUSER; }
        | 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; }
@@ -340,6 +346,7 @@ const char* lookup_token (int t)
     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";
index 15aeff210a27a3e88f7ad309bd4f851fb7e59427..7a83ce83ec18c2224f7ff454e93dfcffc29a0509 100644 (file)
@@ -774,7 +774,10 @@ drawmenu ()
     {
       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, "=> ");
@@ -1619,7 +1622,7 @@ gamemenuloop(int game)
                        graceful_exit(0);*/
           /* break; */
         case 'r':
-          if (!loggedin)        /*not visible to loggedin */
+          if (!loggedin && globalconfig.allow_registration)
             newuser ();
           break;
         case 'l':
index af87eb305dd36fa928baf9e7643785496100aebb..035380afac7716505f53490976bf6a36f547a7c5 100644 (file)
@@ -71,6 +71,7 @@ struct dg_globalconfig
     gid_t shed_gid;
     char* passwd;
     char* lockfile;
+    int allow_registration; /* allow registering new nicks */
 };
 
 /* Global variables */
index f07c759e776b14c5f08d7d046ae8ea79459ab521..f9d3839367e6870159bc630f8bf0777461b8b8d3 100644 (file)
@@ -276,6 +276,8 @@ create_config ()
   FILE *config_file = NULL;
   int tmp;
 
+  if (!globalconfig.allow_registration) globalconfig.allow_registration = 1;
+
   if (config)
   {
     if ((config_file = fopen(config, "r")) != NULL)
index 76542b73ee4de350280c1dde6ddf94c110c3e4ae..2925fef06416aec652f476946e38ac0726644e9c 100644 (file)
@@ -10,6 +10,9 @@
 # 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.