Changeset 376:9547ed19bc09 in roaraudio


Ignore:
Timestamp:
08/05/08 15:51:37 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

maybe this call works...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/socket.c

    r375 r376  
    7171 
    7272int roar_socket_dup_udp_local_end (int fh) { 
    73  return -1; 
     73 int                  n              = -1; 
     74 int                  flags          = -1; 
     75 struct sockaddr_in   socket_addr; 
     76 socklen_t            len            = sizeof(struct sockaddr_in); 
     77 
     78 if ( (flags = fcntl(fh, F_GETFL, 0)) == -1 ) { 
     79  ROAR_WARN("roar_socket_dup_udp_local_end(fh=%i): Can not read flags: %s", fh, strerror(errno)); 
     80 } 
     81 
     82 if ( getsockname(fh, (struct sockaddr *)&socket_addr, &len) == -1 ) { 
     83  return -1; 
     84 } 
     85 
     86 if ( socket_addr.sin_family != AF_INET ) { 
     87  return -1; 
     88 } 
     89 
     90 n = roar_socket_new_udp(); 
     91 
     92 if ( n == -1 ) 
     93  return -1; 
     94 
     95//  if ( mode_func(fh, (struct sockaddr *)&socket_addr, sizeof(struct sockaddr_in)) == -1 ) { 
     96 if ( bind(n, (struct sockaddr *)&socket_addr, len) == -1 ) { 
     97  close(n); 
     98  return -1; 
     99 } 
     100 
     101 if ( flags != -1 ) { 
     102  if ( fcntl(fh, F_SETFL, flags) == -1 ) { 
     103   ROAR_WARN("roar_socket_dup_udp_local_end(fh=%i): Can not set flags: %s", fh, strerror(errno)); 
     104   return -1; 
     105  } 
     106 } 
     107 
     108 
     109 return n; 
    74110} 
    75111 
Note: See TracChangeset for help on using the changeset viewer.