Changeset 5570:36de076e54f7 in roaraudio


Ignore:
Timestamp:
07/17/12 12:47:32 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Improved roarclientpass in execed mode.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r5569 r5570  
    44        * roard now tries to auto load missing protocols as plugins (Closes: #275) 
    55        * Improved tic-tac-toe plugin. 
     6        * Improved roarclientpass in execed mode. 
    67 
    78v. 1.0beta3 - Sun Jul 15 2012 26:08 CEST 
  • roarclients/roarclientpass.c

    r5534 r5570  
    4444        "  --byteorder BO        - Client uses byteorder BO (default: network)\n" 
    4545        "  --listen              - This is a listen mode connection\n" 
     46        "  --command CMD         - Command to use: passfh or exec (default: passfh)\n" 
    4647        "  --mode MODE           - Set mode of operation: none, listen, connect (default: none)\n" 
    4748        "  --bind BIND           - Set host/node/path for mode listen and connect\n" 
     
    6061int run (int client, int in, int out) { 
    6162 struct roar_vio_calls socks[3]; 
    62  struct roar_vio_select vios[3]; 
     63 struct roar_vio_select vios[4]; 
    6364 int alive = 1; 
    6465 int ret; 
    6566 ssize_t len; 
    6667 char buf[1024]; 
     68 int i; 
    6769 
    6870 roar_vio_open_fh_socket(&(socks[0]), client); 
     
    7072 roar_vio_open_fh_socket(&(socks[2]), out); 
    7173 
    72  ROAR_VIO_SELECT_SETVIO(&(vios[0]), &(socks[0]), ROAR_VIO_SELECT_READ|ROAR_VIO_SELECT_WRITE); 
    73  ROAR_VIO_SELECT_SETVIO(&(vios[1]), &(socks[1]), ROAR_VIO_SELECT_READ); 
    74  ROAR_VIO_SELECT_SETVIO(&(vios[2]), &(socks[2]), ROAR_VIO_SELECT_WRITE); 
    75  
    7674 while (alive) { 
    77   ret = roar_vio_select(vios, 3, NULL, NULL); 
     75  ROAR_VIO_SELECT_SETVIO(&(vios[0]), &(socks[0]), ROAR_VIO_SELECT_READ); 
     76  ROAR_VIO_SELECT_SETVIO(&(vios[1]), &(socks[0]), ROAR_VIO_SELECT_WRITE); 
     77  ROAR_VIO_SELECT_SETVIO(&(vios[2]), &(socks[1]), ROAR_VIO_SELECT_READ); 
     78  ROAR_VIO_SELECT_SETVIO(&(vios[3]), &(socks[2]), ROAR_VIO_SELECT_WRITE); 
     79 
     80  while (1) { 
     81   ret = roar_vio_select(vios, 4, NULL, NULL); 
     82 
     83   if ( ret < 0 ) 
     84    break; 
     85 
     86   if ( ret == 0 ) 
     87    continue; 
     88 
     89   if ( vios[0].eventsa && vios[3].eventsa ) 
     90    break; 
     91   if ( vios[1].eventsa && vios[2].eventsa ) 
     92    break; 
     93 
     94   for (i = 0; i < 4; i++) 
     95    if ( vios[i].eventsa ) 
     96     vios[i].eventsq |= ROAR_VIO_SELECT_NO_RETEST; 
     97  } 
     98 
    7899  if ( ret < 0 ) 
    79100   break; 
    80101 
    81   if ( ret == 0 ) 
    82    continue; 
    83  
    84   if ( (vios[0].eventsa & ROAR_VIO_SELECT_READ) && (vios[2].eventsa & ROAR_VIO_SELECT_WRITE) ) { 
     102 
     103  if ( (vios[0].eventsa & ROAR_VIO_SELECT_READ) && (vios[3].eventsa & ROAR_VIO_SELECT_WRITE) ) { 
    85104   len = roar_vio_read(&(socks[0]), buf, sizeof(buf)); 
    86105 
     
    93112  } 
    94113 
    95   if ( (vios[0].eventsa & ROAR_VIO_SELECT_WRITE) && (vios[1].eventsa & ROAR_VIO_SELECT_READ) ) { 
     114  if ( (vios[1].eventsa & ROAR_VIO_SELECT_WRITE) && (vios[2].eventsa & ROAR_VIO_SELECT_READ) ) { 
    96115   len = roar_vio_read(&(socks[1]), buf, sizeof(buf)); 
    97116 
Note: See TracChangeset for help on using the changeset viewer.