Diff for /embedaddon/mpd/src/console.c between versions 1.1.1.4 and 1.1.1.5

version 1.1.1.4, 2019/10/22 13:49:55 version 1.1.1.5, 2021/03/17 00:39:23
Line 58 Line 58
   static int            ConsoleUserHashEqual(struct ghash *g, const void *item1,     static int            ConsoleUserHashEqual(struct ghash *g, const void *item1, 
                                 const void *item2);                                  const void *item2);
   static u_int32_t      ConsoleUserHash(struct ghash *g, const void *item);    static u_int32_t      ConsoleUserHash(struct ghash *g, const void *item);
  static int    ConsoleSetCommand(Context ctx, int ac, char *av[], void *arg);  static int    ConsoleSetCommand(Context ctx, int ac, const char *const av[], const void *arg);
   
   
 /*  /*
Line 76 Line 76
         ConsoleSetCommand, NULL, 0, (void *) SET_ENABLE },          ConsoleSetCommand, NULL, 0, (void *) SET_ENABLE },
     { "disable [opt ...]",      "Disable this console option" ,      { "disable [opt ...]",      "Disable this console option" ,
         ConsoleSetCommand, NULL, 0, (void *) SET_DISABLE },          ConsoleSetCommand, NULL, 0, (void *) SET_DISABLE },
    { NULL },    { NULL, NULL, NULL, NULL, 0, NULL },
   };    };
   
   struct ghash          *gUsers;                /* allowed users */    struct ghash          *gUsers;                /* allowed users */
Line 96 Line 96
     { 0,        0,                      NULL            },      { 0,        0,                      NULL            },
   };    };
   
  struct termios gOrigTermiosAttrs;static struct termios gOrigTermiosAttrs;
  int             gOrigFlags;static int            gOrigFlags;
   
 /*  /*
  * ConsoleInit()   * ConsoleInit()
Line 176  ConsoleClose(Console c) Line 176  ConsoleClose(Console c)
 }  }
   
 void  void
ConsoleCancelCleanup(void *rwlock)ConsoleCancelCleanup(void *rwlock) NO_THREAD_SAFETY_ANALYSIS
 {  {
   pthread_rwlock_t p = (pthread_rwlock_t)rwlock;    pthread_rwlock_t p = (pthread_rwlock_t)rwlock;
   
Line 188  ConsoleCancelCleanup(void *rwlock) Line 188  ConsoleCancelCleanup(void *rwlock)
  */   */
   
 int  int
ConsoleStat(Context ctx, int ac, char *av[], void *arg)ConsoleStat(Context ctx, int ac, const char *const av[], const void *arg)
     NO_THREAD_SAFETY_ANALYSIS
 {  {
   Console               c = &gConsole;    Console               c = &gConsole;
   ConsoleSession        s;    ConsoleSession        s;
   ConsoleSession        cs = ctx->cs;    ConsoleSession        cs = ctx->cs;
   char                  addrstr[INET6_ADDRSTRLEN];    char                  addrstr[INET6_ADDRSTRLEN];
   
     (void)ac;
     (void)av;
     (void)arg;
   
   Printf("Configuration:\r\n");    Printf("Configuration:\r\n");
   Printf("\tState         : %s\r\n", c->fd ? "OPENED" : "CLOSED");    Printf("\tState         : %s\r\n", c->fd ? "OPENED" : "CLOSED");
   Printf("\tIP-Address    : %s\r\n", u_addrtoa(&c->addr,addrstr,sizeof(addrstr)));    Printf("\tIP-Address    : %s\r\n", u_addrtoa(&c->addr,addrstr,sizeof(addrstr)));
Line 234  ConsoleConnect(int type, void *cookie) Line 239  ConsoleConnect(int type, void *cookie)
           "\xFF\xFD\x01";       /* DO echo */            "\xFF\xFD\x01";       /* DO echo */
   char                  addrstr[INET6_ADDRSTRLEN];    char                  addrstr[INET6_ADDRSTRLEN];
   struct sockaddr_storage ss;    struct sockaddr_storage ss;
  
   (void)type;  
   Log(LG_CONSOLE, ("CONSOLE: Connect"));    Log(LG_CONSOLE, ("CONSOLE: Connect"));
   cs = Malloc(MB_CONS, sizeof(*cs));    cs = Malloc(MB_CONS, sizeof(*cs));
   if ((cs->fd = TcpAcceptConnection(c->fd, &ss, FALSE)) < 0)     if ((cs->fd = TcpAcceptConnection(c->fd, &ss, FALSE)) < 0) 
Line 392  ConsoleSessionReadEvent(int type, void *cookie) Line 398  ConsoleSessionReadEvent(int type, void *cookie)
   char                  *av_copy[MAX_CONSOLE_ARGS];    char                  *av_copy[MAX_CONSOLE_ARGS];
   char                  addrstr[INET6_ADDRSTRLEN];    char                  addrstr[INET6_ADDRSTRLEN];
   
     (void)type;
   while(1) {    while(1) {
     if ((n = read(cs->fd, &c, 1)) <= 0) {      if ((n = read(cs->fd, &c, 1)) <= 0) {
       if (n < 0) {        if (n < 0) {
Line 612  success: Line 619  success:
             cs->context.lnk ? cs->context.lnk->name :              cs->context.lnk ? cs->context.lnk->name :
                 (cs->context.bund? cs->context.bund->name : ""),                   (cs->context.bund? cs->context.bund->name : ""), 
             cs->user.username, cs->cmd));              cs->user.username, cs->cmd));
        DoCommand(&cs->context, ac, av, NULL, 0);        DoCommand(&cs->context, ac, (const char *const *)av, NULL, 0);
       } else {        } else {
        HelpCommand(&cs->context, ac, av, NULL);        HelpCommand(&cs->context, ac, (const char *const *)av, NULL);
       }        }
       FreeArgs(ac, av_copy);        FreeArgs(ac, av_copy);
       if (cs->exit)        if (cs->exit)
Line 719  StdConsoleSessionWrite(ConsoleSession cs, const char * Line 726  StdConsoleSessionWrite(ConsoleSession cs, const char *
 static void   static void 
 StdConsoleSessionWriteV(ConsoleSession cs, const char *fmt, va_list vl)  StdConsoleSessionWriteV(ConsoleSession cs, const char *fmt, va_list vl)
 {  {
       (void)cs;
     vprintf(fmt, vl);      vprintf(fmt, vl);
     fflush(stdout);      fflush(stdout);
 }  }
Line 765  ConsoleSessionShowPrompt(ConsoleSession cs) Line 773  ConsoleSessionShowPrompt(ConsoleSession cs)
 static u_int32_t  static u_int32_t
 ConsoleUserHash(struct ghash *g, const void *item)  ConsoleUserHash(struct ghash *g, const void *item)
 {  {
  ConsoleUser u = (ConsoleUser) item;  const struct console_user *u = (const struct console_user *) item;
  u_char *s = (u_char *) u->username;  const u_char *s = (const u_char *) u->username;
   u_int32_t hash = 0x811c9dc5;    u_int32_t hash = 0x811c9dc5;
   
     (void)g;
   while (*s) {    while (*s) {
     hash += (hash<<1) + (hash<<4) + (hash<<7) + (hash<<8) + (hash<<24);      hash += (hash<<1) + (hash<<4) + (hash<<7) + (hash<<8) + (hash<<24);
     /* xor the bottom with the current octet */      /* xor the bottom with the current octet */
Line 785  ConsoleUserHash(struct ghash *g, const void *item) Line 794  ConsoleUserHash(struct ghash *g, const void *item)
 static int  static int
 ConsoleUserHashEqual(struct ghash *g, const void *item1, const void *item2)  ConsoleUserHashEqual(struct ghash *g, const void *item1, const void *item2)
 {  {
  ConsoleUser u1 = (ConsoleUser) item1;  const struct console_user *u1 = (const struct console_user *) item1;
  ConsoleUser u2 = (ConsoleUser) item2;  const struct console_user *u2 = (const struct console_user *) item2;
   
     (void)g;
   if (u1 && u2)    if (u1 && u2)
     return (strcmp(u1->username, u2->username) == 0);      return (strcmp(u1->username, u2->username) == 0);
   else    else
Line 799  ConsoleUserHashEqual(struct ghash *g, const void *item Line 809  ConsoleUserHashEqual(struct ghash *g, const void *item
  */   */
   
 static int  static int
ConsoleSetCommand(Context ctx, int ac, char *av[], void *arg) ConsoleSetCommand(Context ctx, int ac, const char *const av[], const void *arg) 
 {  {
   Console               c = &gConsole;    Console               c = &gConsole;
   ConsoleSession        cs = ctx->cs;    ConsoleSession        cs = ctx->cs;
Line 874  ConsoleShutdown(Console c) Line 884  ConsoleShutdown(Console c)
  */   */
   
 int  int
UserCommand(Context ctx, int ac, char *av[], void *arg) UserCommand(Context ctx, int ac, const char *const av[], const void *arg) 
 {  {
     ConsoleUser         u;      ConsoleUser         u;
   
       (void)arg;
       (void)ctx;
   
     if (ac < 2 || ac > 3)       if (ac < 2 || ac > 3) 
         return(-1);          return(-1);
   
Line 908  UserCommand(Context ctx, int ac, char *av[], void *arg Line 921  UserCommand(Context ctx, int ac, char *av[], void *arg
  */   */
   
 int  int
UserStat(Context ctx, int ac, char *av[], void *arg)UserStat(Context ctx, int ac, const char *const av[], const void *arg)
     NO_THREAD_SAFETY_ANALYSIS
 {  {
     struct ghash_walk   walk;      struct ghash_walk   walk;
     ConsoleUser         u;      ConsoleUser         u;
   
       (void)ac;
       (void)av;
       (void)arg;
   
     Printf("Configured users:\r\n");      Printf("Configured users:\r\n");
     pthread_cleanup_push(ConsoleCancelCleanup, gUsersLock);      pthread_cleanup_push(ConsoleCancelCleanup, gUsersLock);

Removed from v.1.1.1.4  
changed lines
  Added in v.1.1.1.5


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