Changeset 521:f7ca1f94e9e5 in roaraudio


Ignore:
Timestamp:
08/15/08 20:43:46 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added roar_socket_get_local_nodename() and use it as default hostname

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/socket.h

    r513 r521  
    5151int roar_socket_listen_decnet (char * object, int num); 
    5252 
     53char * roar_socket_get_local_nodename(void); 
     54 
    5355int roar_socket_nonblock(int fh, int state); 
    5456 
  • libroar/basic.c

    r516 r521  
    5454  } 
    5555 
    56   if ( is_decnet && *obj == 0 ) { 
    57    strcpy(user_sock, server); 
    58    strcat(user_sock, ROAR_DEFAULT_OBJECT); 
     56  if ( is_decnet ) { 
     57    *user_sock = 0; 
     58   if ( *server == ':' ) { 
     59    if ( roar_socket_get_local_nodename() ) 
     60     strcat(user_sock, roar_socket_get_local_nodename()); 
     61   } 
     62 
     63   strcat(user_sock, server); 
    5964   server = user_sock; 
     65   if ( *obj == 0 ) { 
     66    strcat(user_sock, ROAR_DEFAULT_OBJECT); 
     67   } 
    6068  } 
    6169 
  • libroar/socket.c

    r520 r521  
    221221#else 
    222222 return -1; 
     223#endif 
     224} 
     225 
     226char * roar_socket_get_local_nodename(void) { 
     227#ifdef ROAR_HAVE_LIBDNET 
     228 static char node[16] = {0}; 
     229 struct dn_naddr      *binaddr; 
     230 struct nodeent       *dp; 
     231 
     232 if ( !node[0] ) { 
     233  if ( (binaddr=getnodeadd()) == NULL) 
     234   return NULL; 
     235 
     236  if ( (dp=getnodebyaddr((char*)binaddr->a_addr, binaddr->a_len, PF_DECnet)) == NULL ) 
     237   return NULL; 
     238 
     239  strncpy(node, dp->n_name, 15); 
     240  node[15] = 0; 
     241 } 
     242 
     243 return node; 
     244#else 
     245 return NULL; 
    223246#endif 
    224247} 
Note: See TracChangeset for help on using the changeset viewer.