Changeset 5554:974f701cf7b5 in roaraudio for libroar/socket.c


Ignore:
Timestamp:
07/07/12 13:55:15 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

support to convert EAI_* error codes (Closes: #255)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/socket.c

    r5528 r5554  
    686686 
    687687  ret = getaddrinfo(host, port_as_string, &hints, &res); 
    688   switch (ret) { 
    689    case 0: /* no error */; break; 
    690 #ifdef EAI_ADDRFAMILY 
    691    case EAI_ADDRFAMILY: roar_err_set(ROAR_ERROR_NOENT);    break; 
    692 #endif 
    693    case EAI_AGAIN:      roar_err_set(ROAR_ERROR_AGAIN);    break; 
    694    case EAI_BADFLAGS:   roar_err_set(ROAR_ERROR_INVAL);    break; 
    695    case EAI_FAIL:       roar_err_set(ROAR_ERROR_RIO);      break; 
    696    case EAI_FAMILY:     roar_err_set(ROAR_ERROR_AFNOTSUP); break; 
    697    case EAI_MEMORY:     roar_err_set(ROAR_ERROR_NOMEM);    break; 
    698 #ifdef EAI_NODATA 
    699    case EAI_NODATA:     roar_err_set(ROAR_ERROR_NODATA);   break; 
    700 #endif 
    701    case EAI_NONAME:     roar_err_set(ROAR_ERROR_NOENT);    break; 
    702    case EAI_SERVICE:    roar_err_set(ROAR_ERROR_PROTONOSUP); break; 
    703    case EAI_SOCKTYPE:   roar_err_set(ROAR_ERROR_INVAL);    break; 
    704    case EAI_SYSTEM:     roar_err_from_errno();             break; 
    705    default: 
    706      roar_err_set(ROAR_ERROR_UNKNOWN); 
    707     break; 
    708   } 
    709   if ( ret != 0 ) 
    710    return -1; 
     688  if ( ret == EAI_SYSTEM ) { 
     689   roar_err_from_errno(); 
     690   return -1; 
     691  } else if ( ret != 0 ) { 
     692   roar_err_convert(&roar_error, ROAR_ERROR_TYPE_ROARAUDIO, ret, ROAR_ERROR_TYPE_EAI); 
     693   return -1; 
     694  } 
    711695 
    712696  if ( af_guessed ) { 
Note: See TracChangeset for help on using the changeset viewer.