Changeset 3797:2c0e3737c7d7 in roaraudio


Ignore:
Timestamp:
05/07/10 17:49:42 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for accept() and shutdown() to winsock

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/vio_winsock.c

    r3795 r3797  
    7777    return 0; 
    7878   break; 
     79  case ROAR_VIO_CTL_ACCEPT: 
     80    tmp = accept(roar_vio_get_fh(vio), NULL, 0); 
     81    if ( tmp == -1 ) 
     82     return -1; 
     83 
     84    // most proably a socket. 
     85    if ( roar_vio_open_fh_socket(data, tmp) == -1 ) { 
     86     closesocket(tmp); 
     87     return -1; 
     88    } 
     89 
     90    return 0; 
     91   break; 
     92  case ROAR_VIO_CTL_SHUTDOWN: 
     93    tmp = *(int*)data; 
     94 
     95    if ( tmp & ROAR_VIO_SHUTDOWN_READ ) { 
     96     s_r = 1; 
     97     tmp -= ROAR_VIO_SHUTDOWN_READ; 
     98    } 
     99 
     100    if ( tmp & ROAR_VIO_SHUTDOWN_WRITE ) { 
     101     s_w = 1; 
     102     tmp -= ROAR_VIO_SHUTDOWN_WRITE; 
     103    } 
     104 
     105    if ( tmp != 0 ) /* we currently only support R and W shutdowns */ 
     106     return -1; 
     107 
     108    if ( s_r && s_w ) { 
     109     tmp = SHUT_RDWR; 
     110    } else if ( s_r ) { 
     111     tmp = SHUT_RD; 
     112    } else if ( s_w ) { 
     113     tmp = SHUT_WR; 
     114    } else { 
     115     return 0; // nothing to do. 
     116    } 
     117 
     118    return shutdown(roar_vio_get_fh(vio), tmp); 
     119   break; 
    79120 } 
    80121 
Note: See TracChangeset for help on using the changeset viewer.