Diff for /embedaddon/mpd/src/console.c between versions 1.1.1.1 and 1.1.1.3

version 1.1.1.1, 2012/02/21 23:32:47 version 1.1.1.3, 2016/11/01 09:56:12
Line 87 Line 87
  */   */
   
   static const struct confinfo  gConfList[] = {    static const struct confinfo  gConfList[] = {
       { 0,        CONSOLE_AUTH,           "auth"          },
       { 0,        0,                      NULL            },
     };
   
     static const struct confinfo  sConfList[] = {
     { 0,        CONSOLE_LOGGING,        "logging"       },      { 0,        CONSOLE_LOGGING,        "logging"       },
     { 0,        0,                      NULL            },      { 0,        0,                      NULL            },
   };    };
Line 107  ConsoleInit(Console c) Line 112  ConsoleInit(Console c)
   memset(&gConsole, 0, sizeof(gConsole));    memset(&gConsole, 0, sizeof(gConsole));
   ParseAddr(DEFAULT_CONSOLE_IP, &c->addr, ALLOW_IPV4|ALLOW_IPV6);    ParseAddr(DEFAULT_CONSOLE_IP, &c->addr, ALLOW_IPV4|ALLOW_IPV6);
   c->port = DEFAULT_CONSOLE_PORT;    c->port = DEFAULT_CONSOLE_PORT;
     Enable(&c->options, CONSOLE_AUTH);
   
   SLIST_INIT(&c->sessions);    SLIST_INIT(&c->sessions);
       
Line 194  ConsoleStat(Context ctx, int ac, char *av[], void *arg Line 200  ConsoleStat(Context ctx, int ac, char *av[], void *arg
   }    }
   RWLOCK_UNLOCK(c->lock);    RWLOCK_UNLOCK(c->lock);
   
     Printf("Global options:\r\n");
     OptStat(ctx, &c->options, gConfList);
   if (cs) {    if (cs) {
     Printf("This session options:\r\n");      Printf("This session options:\r\n");
    OptStat(ctx, &cs->options, gConfList);    OptStat(ctx, &cs->options, sConfList);
   }    }
   return 0;    return 0;
 }  }
Line 233  ConsoleConnect(int type, void *cookie) Line 241  ConsoleConnect(int type, void *cookie)
   cs->write = ConsoleSessionWrite;    cs->write = ConsoleSessionWrite;
   cs->writev = ConsoleSessionWriteV;    cs->writev = ConsoleSessionWriteV;
   cs->prompt = ConsoleSessionShowPrompt;    cs->prompt = ConsoleSessionShowPrompt;
  cs->state = STATE_USERNAME;  if (!Enabled(&c->options, CONSOLE_AUTH)) {
         cs->state = STATE_AUTHENTIC;
         strcpy(cs->user.username, "root");
         cs->context.priv = 2;
   } else {
         cs->state = STATE_USERNAME;
   }
   cs->context.cs = cs;    cs->context.cs = cs;
   RWLOCK_WRLOCK(c->lock);    RWLOCK_WRLOCK(c->lock);
   SLIST_INSERT_HEAD(&c->sessions, cs, next);    SLIST_INSERT_HEAD(&c->sessions, cs, next);
Line 376  ConsoleSessionReadEvent(int type, void *cookie) Line 390  ConsoleSessionReadEvent(int type, void *cookie)
           goto out;            goto out;
         Perror("CONSOLE: Error while reading");          Perror("CONSOLE: Error while reading");
       } else {        } else {
        if (cs->fd == 0)        if (cs->fd == 0 && isatty(cs->fd))
           goto out;            goto out;
         Log(LG_ERR, ("CONSOLE: Connection closed by peer"));          Log(LG_ERR, ("CONSOLE: Connection closed by peer"));
       }        }
Line 793  ConsoleSetCommand(Context ctx, int ac, char *av[], voi Line 807  ConsoleSetCommand(Context ctx, int ac, char *av[], voi
       break;        break;
   
     case SET_ENABLE:      case SET_ENABLE:
      if (cs)      if (cs) {
        EnableCommand(ac, av, &cs->options, gConfList);        if (strcmp(av[0], "auth") != 0)
             EnableCommand(ac, av, &cs->options, sConfList);
       } else
         EnableCommand(ac, av, &c->options, gConfList);
       break;        break;
   
     case SET_DISABLE:      case SET_DISABLE:
      if (cs)      if (cs) {
        DisableCommand(ac, av, &cs->options, gConfList);        if (strcmp(av[0], "auth") != 0)
             DisableCommand(ac, av, &cs->options, sConfList);
       } else
         DisableCommand(ac, av, &c->options, gConfList);
       break;        break;
   
     case SET_SELF:      case SET_SELF:
Line 888  UserStat(Context ctx, int ac, char *av[], void *arg) Line 908  UserStat(Context ctx, int ac, char *av[], void *arg)
     RWLOCK_RDLOCK(gUsersLock);      RWLOCK_RDLOCK(gUsersLock);
     ghash_walk_init(gUsers, &walk);      ghash_walk_init(gUsers, &walk);
     while ((u = ghash_walk_next(gUsers, &walk)) !=  NULL) {      while ((u = ghash_walk_next(gUsers, &walk)) !=  NULL) {
        Printf("\tUsername: %-15s Priv:%s\r\n", u->username,        Printf("\tUsername: %-15s Priv: %s\r\n", u->username,
             ((u->priv == 2)?"admin":((u->priv == 1)?"operator":"user")));              ((u->priv == 2)?"admin":((u->priv == 1)?"operator":"user")));
     }      }
     RWLOCK_UNLOCK(gUsersLock);      RWLOCK_UNLOCK(gUsersLock);

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>