Changeset 5544:16ca0566b0e9 in roaraudio for libroar/vio_proto.c


Ignore:
Timestamp:
06/17/12 10:36:37 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Improved error handling (including on win32) (Closes: #235)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/vio_proto.c

    r5460 r5544  
    502502 int  oeflen = 4; 
    503503 int  aligned = 1; 
     504 int  error; 
    504505 
    505506 ROAR_DBG("roar_vio_open_proto_http(calls=%p, dst=%p, host='%s', file='%s') = ?", calls, dst, host, file); 
     
    563564  ROAR_DBG("roar_vio_open_proto_http(*) = -1 // status=%i", status); 
    564565  roar_buffer_free(bufbuf); 
    565   switch (status) { 
    566    // 3xx-Redirects: 
    567    case 301: roar_err_set(ROAR_ERROR_MOVEDPERM); break; 
    568    case 303: roar_err_set(ROAR_ERROR_SEEOTHER); break; 
    569    case 305: roar_err_set(ROAR_ERROR_USEPROXY); break; 
    570    case 307: roar_err_set(ROAR_ERROR_MOVEDTEMP); break; 
    571    // 4xx-Client errors: 
    572    case 400: roar_err_set(ROAR_ERROR_INVAL); break; 
    573    case 403: roar_err_set(ROAR_ERROR_PERM); break; 
    574    case 404: roar_err_set(ROAR_ERROR_NOENT); break; 
    575    case 408: roar_err_set(ROAR_ERROR_TIMEDOUT); break; 
    576    case 410: roar_err_set(ROAR_ERROR_GONE); break; 
    577    case 423: roar_err_set(ROAR_ERROR_BUSY); break; 
    578    case 426: roar_err_set(ROAR_ERROR_SWITCHPROTO); break; 
    579    // 5xx-Server errors: 
    580    case 501: roar_err_set(ROAR_ERROR_NOSYS); break; 
    581    case 504: roar_err_set(ROAR_ERROR_TIMEDOUT); break; 
    582    case 505: roar_err_set(ROAR_ERROR_NSVERSION); break; 
    583    case 507: roar_err_set(ROAR_ERROR_NOSPC); break; 
    584    // default case: 
    585    default: 
    586      roar_err_set(ROAR_ERROR_UNKNOWN); 
    587     break; 
     566  if ( roar_err_convert(&error, ROAR_ERROR_TYPE_ROARAUDIO, status, ROAR_ERROR_TYPE_HTTP) != ROAR_ERROR_NONE ) { 
     567   roar_err_set(ROAR_ERROR_UNKNOWN); 
     568  } else { 
     569   roar_err_set(error); 
    588570  } 
    589571  return -1; 
Note: See TracChangeset for help on using the changeset viewer.