char * __progname;
int g_idle_alarm_enabled = 0;
int showplayers = 0;
+int initplayer = 0;
void (*g_chain_winch)(int);
#ifndef USE_SQLITE3
tmp = userexist(user, 0);
if (tmp) {
me = cpy_me(tmp);
- if (passwordgood(pass) && !(me->flags & DGLACCT_LOGIN_LOCK)) {
+ if ((passwordgood(pass) || initplayer == 1) && !(me->flags & DGLACCT_LOGIN_LOCK)) {
loggedin = 1;
setproctitle ("%s", me->username);
dgl_exec_cmdqueue(globalconfig.cmdqueue[DGLTIME_LOGIN], 0, me);
__progname = basename(strdup(argv[0]));
- while ((c = getopt(argc, argv, "sqh:pf:aeW:SD")) != -1)
+ while ((c = getopt(argc, argv, "sqh:pf:i:aeW:SD")) != -1)
{
switch (c)
{
config = strdup(optarg);
break;
+ case 'i':
+ if (optarg && *optarg != '\0') {
+ if (p && *p != '\0')
+ *p = '\0';
+
+ p = strdup(optarg);
+ initplayer = 1;
+
+ if (auth && *auth != '\0')
+ *auth = '\0';
+ }
+ break;
+
case 'W':
wall_email_str = strdup(optarg);
break;
dgl_exec_cmdqueue(globalconfig.cmdqueue[DGLTIME_DGLSTART], 0, NULL);
+ if (initplayer) {
+ char *user, *pass;
+
+ user = strdup(p);
+ pass = strdup(p);
+
+ autologin(user, pass);
+
+ if (loggedin) {
+ dgl_exec_cmdqueue(globalconfig.cmdqueue[DGLTIME_REGISTER], 0, me);
+ fprintf(stdout, "Setup of %s succeeded.\n", me->username);
+ graceful_exit(0);
+ }
+ else {
+ fprintf(stdout, "Setup of %s failed.\n", p);
+ graceful_exit(1);
+ }
+ }
+
/* simple login routine, uses ncurses */
if (readfile (0)) {
debug_write("log in fail");