Changeset 5408:c6d31c2e4a51 in roaraudio for libroar


Ignore:
Timestamp:
02/13/12 22:17:17 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

re-ported to f* s* bla win32 !*!*Dd*S!, I hate this.

Location:
libroar
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • libroar/vio.c

    r5391 r5408  
    9393 ssize_t ret; 
    9494 
    95  ROAR_DBG("roar_vio_write(vio=%p, buf=%p, count=%u) = ?", vio, buf, (unsigned int)count); 
     95 // This function MUST NOT call ROAR_{DBG,WARN,ERR,INFO}() because that would result 
     96 // in an infinit loop. 
    9697 
    9798 if ( vio == NULL ) { 
     
    148149 int ret; 
    149150 
    150  ROAR_DBG("roar_vio_sync(vio=%p) = ?", vio); 
     151 // This function MUST NOT call ROAR_{DBG,WARN,ERR,INFO}() because that would result 
     152 // in an infinit loop. 
    151153 
    152154 if ( vio == NULL ) { 
     
    170172 int ret; 
    171173 
    172  ROAR_DBG("roar_vio_ctl(vio=%p, cmd=%i, data=%p) = ?", vio, cmd, data); 
     174 ROAR_DBG("roar_vio_ctl(vio=%p, cmd=%i(0x%.8x), data=%p) = ?", vio, cmd, cmd, data); 
    173175 
    174176 if ( vio == NULL ) { 
     
    514516 
    515517    if ( cmd == ROAR_VIO_CTL_GET_SOCKNAME ) { 
     518     ROAR_DBG("roar_vio_basic_ctl(vio=%p, cmd=ROAR_VIO_CTL_GET_SOCKNAME, data=%p) = ?", vio, data); 
    516519#ifdef ROAR_HAVE_GETSOCKNAME 
    517520     tmp = getsockname(roar_vio_get_fh(vio), &(sockaddr.sa), &socklen); 
     
    521524#endif 
    522525    } else if ( cmd == ROAR_VIO_CTL_GET_PEERNAME ) { 
     526     ROAR_DBG("roar_vio_basic_ctl(vio=%p, cmd=ROAR_VIO_CTL_GET_PEERNAME, data=%p) = ?", vio, data); 
    523527#ifdef ROAR_HAVE_GETPEERNAME 
    524528     tmp = getpeername(roar_vio_get_fh(vio), &(sockaddr.sa), &socklen); 
     
    534538    } 
    535539 
     540    ROAR_DBG("roar_vio_basic_ctl(vio=%p, cmd=0x%.8x, data=%p): tmp=%i", vio, cmd, data, tmp); 
    536541    if ( tmp == -1 ) 
    537542     return -1; 
  • libroar/vio_dstr.c

    r5388 r5408  
    336336#endif 
    337337 
     338 ROAR_DBG("_open_file(calls=%p, filename='%s', flags=0x%x, mode=%i) = ?", calls, filename, flags, (int)mode); 
    338339 roar_err_clear_all(); 
    339340 if ( (fh = open(filename, flags, mode)) == -1 ) { 
  • libroar/vio_stream.c

    r5381 r5408  
    183183 int socks[2]; // for socketpair() 
    184184#endif 
     185 struct roar_sockname sockname; 
    185186 
    186187 // make valgrind happy 
     
    190191#endif 
    191192 
     193 ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = ?", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer); 
     194 
    192195 if ( config != NULL ) { 
    193196  if ( config->workaround.workarounds & ROAR_LIBROAR_CONFIG_WAS_USE_EXECED ) { 
     
    196199 } 
    197200 
    198 #ifdef ROAR_HAVE_BSDSOCKETS 
     201 ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = ?", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer); 
     202 
    199203 roar_libroar_nowarn(); 
    200  if ( getsockname(roar_get_connection_fh(con), (struct sockaddr *)&socket_addr, &len) == -1 ) { 
     204 if ( roar_vio_ctl(roar_get_connection_vio2(con), ROAR_VIO_CTL_GET_SOCKNAME, &sockname) == -1 ) { 
    201205  roar_libroar_warn(); 
    202   return -1; 
     206#ifdef ROAR_OS_OPENBSD 
     207  sockname.type = ROAR_SOCKET_TYPE_UNIX; 
     208#else 
     209  ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = -1", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer); 
     210 
     211  return -1; 
     212#endif 
    203213 } 
    204214 roar_libroar_warn(); 
    205 #else 
    206  return -1; 
    207 #endif 
    208  
    209  if ( len == 0 ) { 
    210 #ifdef ROAR_OS_OPENBSD 
    211   ROAR_WARN("roar_simple_new_stream_obj(*): Unknown address family: guess AF_UNIX because OS is OpenBSD"); 
    212   ((struct sockaddr*)&socket_addr)->sa_family = AF_UNIX; 
    213 #else 
    214   return -1; 
    215 #endif 
    216  } 
    217  
    218  switch (((struct sockaddr*)&socket_addr)->sa_family) { 
    219 #ifdef ROAR_HAVE_UNIX 
    220   case AF_UNIX:   type = ROAR_SOCKET_TYPE_UNIX; break; 
    221 #endif 
    222 #ifdef ROAR_HAVE_IPV4 
    223   case AF_INET:   type = ROAR_SOCKET_TYPE_INET; break; 
    224 #endif 
    225 #ifdef ROAR_HAVE_LIBDNET 
    226   case AF_DECnet: type = ROAR_SOCKET_TYPE_DECNET; break; 
    227 #endif 
    228   default: 
    229     return -1; 
    230    break; 
    231  } 
    232  
    233  if ( type == ROAR_SOCKET_TYPE_DECNET ) { 
     215 
     216 ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = ?", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer); 
     217 
     218 if ( sockname.type == ROAR_SOCKET_TYPE_DECNET ) { 
    234219  if ( roar_socket_get_local_nodename() ) { 
    235220   snprintf(file, 24, "%s::roar$TMP%04x%02x", roar_socket_get_local_nodename(), getpid(), count++); 
     
    243228 } 
    244229 
    245  if ( type != ROAR_SOCKET_TYPE_UNIX ) { 
    246   if ( (listen = roar_socket_listen(type, file, port)) == -1 ) { 
     230 if ( sockname.type != ROAR_SOCKET_TYPE_UNIX ) { 
     231  if ( (listen = roar_socket_listen(sockname.type, file, port)) == -1 ) { 
    247232   return -1; 
    248233  } 
    249234 } 
    250235 
    251  if ( type == ROAR_SOCKET_TYPE_INET ) { 
     236 if ( sockname.type == ROAR_SOCKET_TYPE_INET ) { 
    252237#ifdef ROAR_HAVE_IPV4 
    253238  setsockopt(listen, SOL_SOCKET, SO_REUSEADDR, (void*)&opt, sizeof(int)); 
     
    262247  return -1; 
    263248#endif 
    264  } else if ( type == ROAR_SOCKET_TYPE_DECNET ) { 
     249 } else if ( sockname.type == ROAR_SOCKET_TYPE_DECNET ) { 
    265250#ifdef ROAR_HAVE_LIBDNET 
    266251  setsockopt(listen, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)); 
     
    278263 } 
    279264 
    280  if ( type != ROAR_SOCKET_TYPE_UNIX ) { 
     265 if ( sockname.type != ROAR_SOCKET_TYPE_UNIX ) { 
    281266#ifdef ROAR_HAVE_SELECT 
    282   if ( roar_stream_connect_to_ask(con, s, type, file, port) != -1 ) { 
     267  if ( roar_stream_connect_to_ask(con, s, sockname.type, file, port) != -1 ) { 
    283268 
    284269   FD_ZERO(&fds); 
     
    354339  return -1; 
    355340#endif 
    356  } else { // this is type == ROAR_SOCKET_TYPE_UNIX 
     341 } else { // this is sockname.type == ROAR_SOCKET_TYPE_UNIX 
    357342#ifdef ROAR_HAVE_UNIX 
    358343  if ( socketpair(AF_UNIX, SOCK_STREAM, 0, socks) == -1 ) { 
     
    388373 s->fh = fh; 
    389374 
     375 ROAR_DBG("_roar_simple_new_stream_obj(con=%p, s=%p, rate=%i, channels=%i, bits=%i, codec=%i, dir=%i, mixer=%i) = %i", con, s, (int)rate, (int)channels, (int)bits, (int)codec, dir, mixer, fh); 
    390376 return fh; 
    391377} 
  • libroar/vio_winsock.c

    r5407 r5408  
    128128    return shutdown(_get_fh(vio), tmp); 
    129129   break; 
     130  case ROAR_VIO_CTL_GET_SOCKNAME: 
     131  case ROAR_VIO_CTL_GET_PEERNAME: 
     132    return roar_vio_basic_ctl(vio, cmd, data); 
     133   break; 
    130134 } 
    131135 
Note: See TracChangeset for help on using the changeset viewer.