Changeset 1337:133222591226 in roaraudio for libroar/vio_socket.c


Ignore:
Timestamp:
03/23/09 14:26:01 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

support sockets with no dst to use defaults from parent object

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/vio_socket.c

    r1335 r1337  
    152152 int    port; 
    153153 
    154  if ( def == NULL || dstr == NULL ) 
    155   return -1; 
     154 if ( def == NULL ) 
     155  return -1; 
     156 
     157 if ( dstr == NULL && odef == NULL ) 
     158  return -1; 
     159 
     160 if ( dstr == NULL ) 
     161  dstr = ""; 
    156162 
    157163 ROAR_WARN("roar_vio_socket_init_dstr_def(def=%p, dstr='%s', hint=%i, type=%i, odef=%p) = ?", def, dstr, hint, type, odef); 
     
    203209#endif 
    204210 
     211 if ( *dstr == 0 ) { 
     212  if ( roar_vio_socket_conv_def(odef, hint) == -1 ) 
     213   return -1; 
     214 
     215  if ( odef->d.socket.type != type ) 
     216   return -1; 
     217 
     218  memcpy(def, odef, sizeof(struct roar_vio_defaults)); 
     219  return 0; 
     220 } 
     221 
    205222 for (; *dstr == '/'; dstr++); 
    206223 
     
    246263 
    247264int     roar_vio_socket_conv_def          (struct roar_vio_defaults * def, int domain) { 
     265 if ( def == NULL || domain == -1 ) 
     266  return -1; 
     267 
     268#ifdef ROAR_HAVE_UNIX 
     269 if ( domain == AF_UNIX ) { 
     270  if ( def->type == ROAR_VIO_DEF_TYPE_SOCKET ) { 
     271   if ( def->d.socket.domain == AF_UNIX ) 
     272    return 0; 
     273 
     274   return -1; 
     275  } else { 
     276   return -1; 
     277  } 
     278 } 
     279#endif 
     280 
     281 if ( def->type != ROAR_VIO_DEF_TYPE_SOCKET ) 
     282  return -1; 
     283 
     284 if ( def->d.socket.domain == domain ) 
     285  return 0; 
     286 
    248287 return -1; 
    249288} 
     
    260299int     roar_vio_socket_init_unix_def     (struct roar_vio_defaults * def, char * path) { 
    261300#ifdef ROAR_HAVE_UNIX 
     301 if ( def == NULL || path == NULL ) 
     302  return -1; 
     303 
    262304 if ( roar_vio_socket_init_socket_def(def, AF_UNIX, SOCK_STREAM) == -1 ) 
    263305  return -1; 
Note: See TracChangeset for help on using the changeset viewer.