Changeset 4968:2c5119fa5798 in roaraudio


Ignore:
Timestamp:
05/16/11 10:40:25 (11 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

some updates to error handling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/vio.c

    r4963 r4968  
    289289 
    290290int     roar_vio_shutdown(struct roar_vio_calls * vio,   int how) { 
     291 if (vio == NULL) { 
     292  roar_err_set(ROAR_ERROR_FAULT); 
     293  return -1; 
     294 } 
     295 
     296 if ( ( (how | ROAR_VIO_SHUTDOWN_READ|ROAR_VIO_SHUTDOWN_WRITE|ROAR_VIO_SHUTDOWN_LISTEN) - 
     297        (ROAR_VIO_SHUTDOWN_READ|ROAR_VIO_SHUTDOWN_WRITE|ROAR_VIO_SHUTDOWN_LISTEN) ) != 0 ) { 
     298  roar_err_set(ROAR_ERROR_INVAL); 
     299  return -1; 
     300 } 
     301 
    291302 return roar_vio_ctl(vio, ROAR_VIO_CTL_SHUTDOWN, &how); 
    292303} 
     
    330341 
    331342int     roar_vio_open_fh       (struct roar_vio_calls * calls, int fh) { 
    332  if ( calls == NULL ) 
    333   return -1; 
     343 if ( calls == NULL ) { 
     344  roar_err_set(ROAR_ERROR_FAULT); 
     345  return -1; 
     346 } 
    334347 
    335348 roar_libroar_nowarn(); 
     
    344357 
    345358int     roar_vio_open_fh_socket(struct roar_vio_calls * calls, int fh) { 
    346  if ( calls == NULL ) 
    347   return -1; 
     359 if ( calls == NULL ) { 
     360  roar_err_set(ROAR_ERROR_FAULT); 
     361  return -1; 
     362 } 
    348363 
    349364 if ( roar_vio_open_fh(calls, fh) == -1 ) 
     
    367382 int fh; 
    368383 
    369  if ( calls == NULL ) 
    370   return -1; 
     384 if ( calls == NULL ) { 
     385  roar_err_set(ROAR_ERROR_FAULT); 
     386  return -1; 
     387 } 
    371388 
    372389 if ( (fh = roar_socket_connect(host, port)) == -1 ) 
     
    379396 int fh; 
    380397 
    381  if ( calls == NULL ) 
    382   return -1; 
     398 if ( calls == NULL ) { 
     399  roar_err_set(ROAR_ERROR_FAULT); 
     400  return -1; 
     401 } 
    383402 
    384403 if ( (fh = roar_socket_listen(type, host, port)) == -1 ) 
     
    392411 int fh; 
    393412 
    394  if ( calls == NULL ) 
    395   return -1; 
     413 if ( calls == NULL ) { 
     414  roar_err_set(ROAR_ERROR_FAULT); 
     415  return -1; 
     416 } 
    396417 
    397418 roar_libroar_nowarn(); 
     
    414435 ROAR_DBG("roar_vio_simple_new_stream_obj(*) = ?"); 
    415436 
    416  if ( calls == NULL ) 
    417   return -1; 
     437 if ( calls == NULL ) { 
     438  roar_err_set(ROAR_ERROR_FAULT); 
     439  return -1; 
     440 } 
    418441 
    419442 if ( s == NULL ) 
     
    440463 return read(roar_vio_get_fh(vio), buf, count); 
    441464#else 
     465 roar_err_set(ROAR_ERROR_NOSYS); 
    442466 return -1; 
    443467#endif 
     
    448472 return write(roar_vio_get_fh(vio), buf, count); 
    449473#else 
     474 roar_err_set(ROAR_ERROR_NOSYS); 
    450475 return -1; 
    451476#endif 
     
    456481 return lseek(roar_vio_get_fh(vio), offset, whence); 
    457482#else 
     483 roar_err_set(ROAR_ERROR_NOSYS); 
    458484 return -1; 
    459485#endif 
     
    512538#endif 
    513539 
    514  if ( vio == NULL || cmd == -1 ) 
    515   return -1; 
     540 if ( vio == NULL ) { 
     541  roar_err_set(ROAR_ERROR_FAULT); 
     542  return -1; 
     543 } 
     544 
     545 if ( cmd == -1 ) { 
     546  roar_err_set(ROAR_ERROR_INVAL); 
     547  return -1; 
     548 } 
    516549 
    517550 ROAR_DBG("roar_vio_basic_ctl(vio=%p, cmd=0x%.8x, data=%p) = ?", vio, cmd, data); 
     
    519552 switch (cmd) { 
    520553  case ROAR_VIO_CTL_GET_NAME: 
    521     if ( data == NULL ) 
     554    if ( data == NULL ) { 
     555     roar_err_set(ROAR_ERROR_FAULT); 
    522556     return -1; 
     557    } 
    523558 
    524559    *(char**)data = "basic"; 
     
    569604    } 
    570605 
    571     if ( tmp != 0 ) /* we currently only support R and W shutdowns */ 
     606    if ( tmp != 0 ) { /* we currently only support R and W shutdowns */ 
     607     roar_err_set(ROAR_ERROR_NOTSUP); 
    572608     return -1; 
     609    } 
    573610 
    574611    if ( s_r && s_w ) { 
     
    587624  case ROAR_VIO_CTL_GET_SOCKNAME: 
    588625  case ROAR_VIO_CTL_GET_PEERNAME: 
    589     if ( data == NULL ) 
     626    if ( data == NULL ) { 
     627     roar_err_set(ROAR_ERROR_FAULT); 
    590628     return -1; 
     629    } 
    591630 
    592631    rsockname = data; 
     
    598637     tmp = getsockname(roar_vio_get_fh(vio), &(sockaddr.sa), &socklen); 
    599638#else 
     639     roar_err_set(ROAR_ERROR_NOSYS); 
    600640     return -1; 
    601641#endif 
     
    604644     tmp = getpeername(roar_vio_get_fh(vio), &(sockaddr.sa), &socklen); 
    605645#else 
     646     roar_err_set(ROAR_ERROR_NOSYS); 
    606647     return -1; 
    607648#endif 
    608649    } else { 
     650     // memory corruption: 
     651     roar_err_set(ROAR_ERROR_CHERNOBYL); 
    609652     return -1; 
    610653    } 
     
    633676       rsockname->type = ROAR_SOCKET_TYPE_DECNET; 
    634677 
    635        if ( sockaddr.dn.sdn_add.a_len != 2 ) 
     678       if ( sockaddr.dn.sdn_add.a_len != 2 ) { 
     679        roar_err_set(ROAR_ERROR_NOTSUP); 
    636680        return -1; 
     681       } 
    637682 
    638683       rsockname->addr = roar_mm_malloc(28); 
     
    666711#endif 
    667712     default: 
     713       roar_err_set(ROAR_ERROR_NOTSUP); 
    668714       return -1; 
    669715    } 
     
    702748 return 0; 
    703749#else 
     750 roar_err_set(ROAR_ERROR_NOSYS); 
    704751 return -1; 
    705752#endif 
     
    708755// null 
    709756ssize_t roar_vio_null_rw    (struct roar_vio_calls * vio, void *buf, size_t count) { 
    710  if ( vio == NULL || buf == NULL ) 
    711   return -1; 
     757 if ( vio == NULL || buf == NULL ) { 
     758  roar_err_set(ROAR_ERROR_FAULT); 
     759  return -1; 
     760 } 
    712761 
    713762 return 0; 
     
    720769// pass 
    721770int     roar_vio_open_pass    (struct roar_vio_calls * calls, struct roar_vio_calls * dst) { 
    722  if ( calls == NULL ) 
    723   return -1; 
     771 if ( calls == NULL || dst == NULL ) { 
     772  roar_err_set(ROAR_ERROR_FAULT); 
     773  return -1; 
     774 } 
    724775 
    725776 memset((void*)calls, 0, sizeof(struct roar_vio_calls)); 
     
    759810 
    760811int     roar_vio_pass_ctl     (struct roar_vio_calls * vio, int cmd, void * data) { 
    761  if (vio == NULL || cmd == -1) 
    762   return -1; 
     812 if (vio == NULL) { 
     813  roar_err_set(ROAR_ERROR_FAULT); 
     814  return -1; 
     815 } 
     816 
     817 if (cmd == -1) { 
     818  roar_err_set(ROAR_ERROR_INVAL); 
     819  return -1; 
     820 } 
    763821 
    764822 ROAR_DBG("roar_vio_pass_ctl(vio=%p, cmd=0x%.8x, data=%p) = ?", vio, cmd, data); 
     
    766824 switch (cmd) { 
    767825  case ROAR_VIO_CTL_GET_NAME: 
    768     if ( data == NULL ) 
     826    if ( data == NULL ) { 
     827     roar_err_set(ROAR_ERROR_FAULT); 
    769828     return -1; 
     829    } 
    770830 
    771831    // dirty trick to get real name... 
     
    810870 ssize_t r   = -1; 
    811871 
    812  if ( vio == NULL ) 
    813   return -1; 
    814  
    815  if ( vio->inst == NULL ) 
    816   return -1; 
     872 if ( vio == NULL ) { 
     873  roar_err_set(ROAR_ERROR_FAULT); 
     874  return -1; 
     875 } 
     876 
     877 if ( vio->inst == NULL ) { 
     878  roar_err_set(ROAR_ERROR_FAULT); 
     879  return -1; 
     880 } 
    817881 
    818882 roar_err_clear_all(); 
     
    836900 ssize_t r   = -1; 
    837901 
    838  if ( vio == NULL ) 
    839   return -1; 
    840  
    841  if ( vio->inst == NULL ) 
    842   return -1; 
     902 if ( vio == NULL ) { 
     903  roar_err_set(ROAR_ERROR_FAULT); 
     904  return -1; 
     905 } 
     906 
     907 if ( vio->inst == NULL ) { 
     908  roar_err_set(ROAR_ERROR_FAULT); 
     909  return -1; 
     910 } 
    843911 
    844912 roar_err_clear_all(); 
Note: See TracChangeset for help on using the changeset viewer.