Changeset 512:8fb7528db636 in roaraudio


Ignore:
Timestamp:
08/15/08 03:55:36 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

use an union for all the sockaddr_*s

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/socket.c

    r509 r512  
    227227// int type = ROAR_SOCKET_TYPE_INET; 
    228228 int fh; 
    229  struct sockaddr_in   socket_addr; 
    230  struct sockaddr_un   socket_addr_un; 
     229 union { 
     230  struct sockaddr_in  in; 
     231  struct sockaddr_un  un; 
     232 } socket_addr; 
    231233 struct hostent     * he; 
    232234 //unsigned int host_div = 0; 
     
    295297 } 
    296298 
    297  memset(&socket_addr   , 0, sizeof(socket_addr)); 
    298  memset(&socket_addr_un, 0, sizeof(socket_addr_un)); 
     299 memset(&socket_addr,    0, sizeof(socket_addr)); 
    299300 memset(&he,             0, sizeof(he));               // FIXME: we have a valid pointer in here???? 
    300301 
     
    308309  } 
    309310 
    310   memcpy((struct in_addr *)&socket_addr.sin_addr, he->h_addr, sizeof(struct in_addr)); 
     311  memcpy((struct in_addr *)&socket_addr.in.sin_addr, he->h_addr, sizeof(struct in_addr)); 
    311312 
    312313  /* set the connect information */ 
    313   socket_addr.sin_family = AF_INET; 
    314   socket_addr.sin_port = htons( port ); 
     314  socket_addr.in.sin_family = AF_INET; 
     315  socket_addr.in.sin_port = htons( port ); 
    315316 
    316317  fh = roar_socket_new_tcp(); 
    317318 
    318   if ( mode_func(fh, (struct sockaddr *)&socket_addr, sizeof(struct sockaddr_in)) == -1 ) { 
     319  if ( mode_func(fh, (struct sockaddr *)&socket_addr.in, sizeof(struct sockaddr_in)) == -1 ) { 
    319320   ROAR_DBG("roar_socket_open(*): Can not connect/bind: %s", strerror(errno)); 
    320321   close(fh); 
     
    323324  // hey! we have a socket... 
    324325 } else if ( type == ROAR_SOCKET_TYPE_UNIX ) { 
    325   socket_addr_un.sun_family = AF_UNIX; 
    326   strncpy(socket_addr_un.sun_path, host, sizeof(socket_addr_un.sun_path) - 1); 
     326  socket_addr.un.sun_family = AF_UNIX; 
     327  strncpy(socket_addr.un.sun_path, host, sizeof(socket_addr.un.sun_path) - 1); 
    327328 
    328329  fh = roar_socket_new_unix(); 
    329330 
    330   if ( mode_func(fh, (struct sockaddr *)&socket_addr_un, sizeof(struct sockaddr_un)) == -1 ) { 
     331  if ( mode_func(fh, (struct sockaddr *)&socket_addr.un, sizeof(struct sockaddr_un)) == -1 ) { 
    331332   ROAR_DBG("roar_socket_open(*): Can not connect/bind: %s", strerror(errno)); 
    332333   close(fh); 
Note: See TracChangeset for help on using the changeset viewer.