changed how to compare a map against data of other types.
fixed some problems in handling nonblocking connect and send with watt-32
This commit is contained in:
@ -237,8 +237,19 @@ static qse_mux_errnum_t skerr_to_errnum (int e)
|
||||
case EPIPE:
|
||||
return QSE_MUX_EPIPE;
|
||||
|
||||
#if defined(EAGAIN) || defined(EWOULDBLOCK)
|
||||
#if defined(EAGAIN) && defined(EWOULDBLOCK)
|
||||
case EAGAIN:
|
||||
#if (EWOULDBLOCK != EAGAIN)
|
||||
case EWOULDBLOCK:
|
||||
#endif
|
||||
#elif defined(EAGAIN)
|
||||
case EAGAIN:
|
||||
#else
|
||||
case EWOULDBLOCK;
|
||||
#endif
|
||||
return QSE_MUX_EAGAIN;
|
||||
#endif
|
||||
|
||||
default:
|
||||
return QSE_MUX_ESYSERR;
|
||||
|
@ -176,8 +176,20 @@ static qse_nwio_errnum_t skerr_to_errnum (int e)
|
||||
case EPIPE:
|
||||
return QSE_NWIO_EPIPE;
|
||||
|
||||
#if defined(EAGAIN) || defined(EWOULDBLOCK)
|
||||
|
||||
#if defined(EAGAIN) && defined(EWOULDBLOCK)
|
||||
case EAGAIN:
|
||||
#if (EWOULDBLOCK != EAGAIN)
|
||||
case EWOULDBLOCK:
|
||||
#endif
|
||||
#elif defined(EAGAIN)
|
||||
case EAGAIN:
|
||||
#else
|
||||
case EWOULDBLOCK;
|
||||
#endif
|
||||
return QSE_NWIO_EAGAIN;
|
||||
#endif
|
||||
|
||||
#if defined(ECONNREFUSED) || defined(ENETUNREACH) || defined(EHOSTUNREACH) || defined(EHOSTDOWN)
|
||||
#if defined(ECONNREFUSED)
|
||||
|
@ -90,6 +90,7 @@
|
||||
} \
|
||||
}
|
||||
|
||||
/*
|
||||
#elif defined(__DOS__)
|
||||
|
||||
#define IMPLEMENT_SYSERR_TO_ERRNUM(obj1,obj2) \
|
||||
@ -105,6 +106,7 @@
|
||||
default: return __SYSERRNUM__ (obj2, ESYSERR); \
|
||||
} \
|
||||
}
|
||||
*/
|
||||
|
||||
#elif defined(vms) || defined(__vms)
|
||||
|
||||
@ -143,7 +145,7 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#else
|
||||
#elif defined(EAGAIN)
|
||||
|
||||
#define IMPLEMENT_SYSERR_TO_ERRNUM(obj1,obj2) \
|
||||
static __SYSERRTYPE__(obj1) syserr_to_errnum (int e) \
|
||||
@ -164,6 +166,47 @@
|
||||
} \
|
||||
}
|
||||
|
||||
#elif defined(EWOULDBLOCK)
|
||||
|
||||
#define IMPLEMENT_SYSERR_TO_ERRNUM(obj1,obj2) \
|
||||
static __SYSERRTYPE__(obj1) syserr_to_errnum (int e) \
|
||||
{ \
|
||||
switch (e) \
|
||||
{ \
|
||||
case ENOMEM: return __SYSERRNUM__ (obj2, ENOMEM); \
|
||||
case EINVAL: return __SYSERRNUM__ (obj2, EINVAL); \
|
||||
case EBUSY: \
|
||||
case EACCES: return __SYSERRNUM__ (obj2, EACCES); \
|
||||
case ENOTDIR: \
|
||||
case ENOENT: return __SYSERRNUM__ (obj2, ENOENT); \
|
||||
case EEXIST: return __SYSERRNUM__ (obj2, EEXIST); \
|
||||
case EINTR: return __SYSERRNUM__ (obj2, EINTR); \
|
||||
case EPIPE: return __SYSERRNUM__ (obj2, EPIPE); \
|
||||
case EWOULDBLOCK: return __SYSERRNUM__ (obj2, EAGAIN); \
|
||||
default: return __SYSERRNUM__ (obj2, ESYSERR); \
|
||||
} \
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define IMPLEMENT_SYSERR_TO_ERRNUM(obj1,obj2) \
|
||||
static __SYSERRTYPE__(obj1) syserr_to_errnum (int e) \
|
||||
{ \
|
||||
switch (e) \
|
||||
{ \
|
||||
case ENOMEM: return __SYSERRNUM__ (obj2, ENOMEM); \
|
||||
case EINVAL: return __SYSERRNUM__ (obj2, EINVAL); \
|
||||
case EBUSY: \
|
||||
case EACCES: return __SYSERRNUM__ (obj2, EACCES); \
|
||||
case ENOTDIR: \
|
||||
case ENOENT: return __SYSERRNUM__ (obj2, ENOENT); \
|
||||
case EEXIST: return __SYSERRNUM__ (obj2, EEXIST); \
|
||||
case EINTR: return __SYSERRNUM__ (obj2, EINTR); \
|
||||
case EPIPE: return __SYSERRNUM__ (obj2, EPIPE); \
|
||||
default: return __SYSERRNUM__ (obj2, ESYSERR); \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user