Changeset 446:4339778d91f0 in roaraudio


Ignore:
Timestamp:
08/12/08 01:37:16 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support to use symbolic names for -p

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/roard.c

    r444 r446  
    8585 char * chrootdir = NULL; 
    8686 int    setids    = 0; 
    87  struct group  * grp = NULL; 
    88  struct passwd * pwd = NULL; 
     87 struct group   * grp  = NULL; 
     88 struct passwd  * pwd  = NULL; 
     89 struct servent * serv = NULL; 
    8990 DRIVER_USERDATA_T drvinst; 
    9091 struct roar_client * self = NULL; 
     
    192193 
    193194  } else if ( strcmp(k, "-p") == 0 || strcmp(k, "--port") == 0 ) { 
    194    port = atoi(argv[++i]); 
     195   errno = 0; 
     196   if ( (port = atoi(argv[++i])) < 1 ) { 
     197    if ( (serv = getservbyname(argv[i], "tcp")) == NULL ) { 
     198     ROAR_ERR("Unknown service: %s: %s", argv[i], strerror(errno)); 
     199     return 1; 
     200    } 
     201    // NOTE: we need to use ROAR_NET2HOST16() here even if s_port is of type int! 
     202    ROAR_DBG("main(*): serv = {s_name='%s', s_aliases={...}, s_port=%i, s_proto='%s'}", 
     203            serv->s_name, ROAR_NET2HOST16(serv->s_port), serv->s_proto); 
     204    port = ROAR_NET2HOST16(serv->s_port); 
     205   } 
    195206  } else if ( strcmp(k, "-b") == 0 || strcmp(k, "--bind") == 0 || strcmp(k, "-s") == 0 || strcmp(k, "--sock") == 0 ) { 
    196207   server = argv[++i]; 
Note: See TracChangeset for help on using the changeset viewer.