changed the way to fix ERROR_BROKEN_PIPE.
improved socket error translation
This commit is contained in:
@ -51,8 +51,9 @@
|
||||
/* internal status codes */
|
||||
enum
|
||||
{
|
||||
STATUS_APPEND = (1 << 0),
|
||||
STATUS_NOCLOSE = (1 << 1)
|
||||
STATUS_APPEND = (1 << 0),
|
||||
STATUS_NOCLOSE = (1 << 1),
|
||||
STATUS_WIN32_STDIN = (1 << 2)
|
||||
};
|
||||
|
||||
#include "syserr.h"
|
||||
@ -230,6 +231,9 @@ int qse_fio_init (
|
||||
handle != INVALID_HANDLE_VALUE,
|
||||
"Do not specify an invalid handle value"
|
||||
);
|
||||
|
||||
if (handle == GetStdHandle (STD_INPUT_HANDLE))
|
||||
fio->status |= STATUS_WIN32_STDIN;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1073,7 +1077,7 @@ int qse_fio_truncate (qse_fio_t* fio, qse_fio_off_t size)
|
||||
sz.ulLo = (ULONG)(size&0xFFFFFFFFlu);
|
||||
sz.ulHi = (ULONG)(size>>32);
|
||||
|
||||
ret = DosSetFileSizeL (fio->handle, sz);
|
||||
ret = dos_set_file_size_l (fio->handle, sz);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1128,7 +1132,13 @@ qse_ssize_t qse_fio_read (qse_fio_t* fio, void* buf, qse_size_t size)
|
||||
size = QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(DWORD);
|
||||
if (ReadFile (fio->handle, buf, (DWORD)size, &count, QSE_NULL) == FALSE)
|
||||
{
|
||||
fio->errnum = syserr_to_errnum (GetLastError());
|
||||
DWORD e = GetLastError();
|
||||
/* special case when ReadFile returns failure with ERROR_BROKEN_PIPE.
|
||||
* this happens when an anonymous pipe is a standard input for redirection.
|
||||
* assuming that ERROR_BROKEN_PIPE doesn't occur with normal
|
||||
* input streams, i treat the condition as a normal EOF indicator. */
|
||||
if ((fio->status & STATUS_WIN32_STDIN) && e == ERROR_BROKEN_PIPE) return 0;
|
||||
fio->errnum = syserr_to_errnum (e);
|
||||
return -1;
|
||||
}
|
||||
return (qse_ssize_t)count;
|
||||
|
@ -109,43 +109,31 @@ struct qse_mux_t
|
||||
int qse_mux_init (qse_mux_t* mux, qse_mmgr_t* mmgr, qse_mux_evtfun_t evtfun, qse_size_t capahint);
|
||||
void qse_mux_fini (qse_mux_t* mux);
|
||||
|
||||
#if defined(_WIN32)
|
||||
/* TODO: change the error code handling. this is wrong... use WSA error codes .... */
|
||||
static qse_mux_errnum_t syserr_to_errnum (DWORD e)
|
||||
{
|
||||
|
||||
#if defined(_WIN32)
|
||||
static qse_mux_errnum_t skerr_to_errnum (DWORD e)
|
||||
{
|
||||
switch (e)
|
||||
{
|
||||
case ERROR_NOT_ENOUGH_MEMORY:
|
||||
case ERROR_OUTOFMEMORY:
|
||||
case WSA_NOT_ENOUGH_MEMORY:
|
||||
return QSE_MUX_ENOMEM;
|
||||
|
||||
case ERROR_INVALID_PARAMETER:
|
||||
case ERROR_INVALID_HANDLE:
|
||||
case ERROR_INVALID_NAME:
|
||||
case WSA_INVALID_PARAMETER:
|
||||
case WSA_INVALID_HANDLE:
|
||||
return QSE_MUX_EINVAL;
|
||||
|
||||
case ERROR_ACCESS_DENIED:
|
||||
case ERROR_SHARING_VIOLATION:
|
||||
case WSAEACCES:
|
||||
return QSE_MUX_EACCES;
|
||||
|
||||
case ERROR_FILE_NOT_FOUND:
|
||||
case ERROR_PATH_NOT_FOUND:
|
||||
return QSE_MUX_ENOENT;
|
||||
|
||||
case ERROR_ALREADY_EXISTS:
|
||||
case ERROR_FILE_EXISTS:
|
||||
return QSE_MUX_EEXIST;
|
||||
|
||||
case ERROR_BROKEN_PIPE:
|
||||
return QSE_MUX_EPIPE;
|
||||
case WSAEINTR:
|
||||
return QSE_MUX_EINTR;
|
||||
|
||||
default:
|
||||
return QSE_MUX_ESYSERR;
|
||||
}
|
||||
}
|
||||
#elif defined(__OS2__)
|
||||
static qse_mux_errnum_t syserr_to_errnum (int e)
|
||||
static qse_mux_errnum_t skerr_to_errnum (int e)
|
||||
{
|
||||
switch (e)
|
||||
{
|
||||
@ -165,7 +153,7 @@ static qse_mux_errnum_t syserr_to_errnum (int e)
|
||||
return QSE_MUX_ENOENT;
|
||||
#endif
|
||||
|
||||
#if defined(SOCEEXIST)
|
||||
#if defined(SOCEXIST)
|
||||
case SOCEEXIST:
|
||||
return QSE_MUX_EEXIST;
|
||||
#endif
|
||||
@ -173,37 +161,22 @@ static qse_mux_errnum_t syserr_to_errnum (int e)
|
||||
case SOCEINTR:
|
||||
return QSE_MUX_EINTR;
|
||||
|
||||
case SOCEPIPE:
|
||||
return QSE_MUX_EPIPE;
|
||||
|
||||
default:
|
||||
return QSE_MUX_ESYSERR;
|
||||
}
|
||||
}
|
||||
|
||||
#elif defined(__DOS__)
|
||||
static qse_mux_errnum_t syserr_to_errnum (int e)
|
||||
static qse_mux_errnum_t skerr_to_errnum (int e)
|
||||
{
|
||||
switch (e)
|
||||
{
|
||||
case ENOMEM:
|
||||
return QSE_MUX_ENOMEM;
|
||||
|
||||
case EINVAL:
|
||||
return QSE_MUX_EINVAL;
|
||||
|
||||
case EACCES:
|
||||
return QSE_MUX_EACCES;
|
||||
|
||||
case ENOENT:
|
||||
return QSE_MUX_ENOENT;
|
||||
|
||||
case EEXIST:
|
||||
return QSE_MUX_EEXIST;
|
||||
|
||||
default:
|
||||
return QSE_MUX_ESYSERR;
|
||||
}
|
||||
/* TODO: */
|
||||
return QSE_MUX_ESYSERR;
|
||||
}
|
||||
|
||||
#else
|
||||
static qse_mux_errnum_t syserr_to_errnum (int e)
|
||||
static qse_mux_errnum_t skerr_to_errnum (int e)
|
||||
{
|
||||
switch (e)
|
||||
{
|
||||
@ -213,12 +186,12 @@ static qse_mux_errnum_t syserr_to_errnum (int e)
|
||||
case EINVAL:
|
||||
return QSE_MUX_EINVAL;
|
||||
|
||||
case ENOENT:
|
||||
return QSE_MUX_ENOENT;
|
||||
|
||||
case EACCES:
|
||||
return QSE_MUX_EACCES;
|
||||
|
||||
case ENOENT:
|
||||
return QSE_MUX_ENOENT;
|
||||
|
||||
case EEXIST:
|
||||
return QSE_MUX_EEXIST;
|
||||
|
||||
@ -286,7 +259,7 @@ int qse_mux_init (qse_mux_t* mux, qse_mmgr_t* mmgr, qse_mux_evtfun_t evtfun, qse
|
||||
#endif
|
||||
if (mux->fd <= -1)
|
||||
{
|
||||
mux->errnum = syserr_to_errnum (errno);
|
||||
mux->errnum = skerr_to_errnum (errno);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -507,7 +480,7 @@ int qse_mux_insert (qse_mux_t* mux, const qse_mux_evt_t* evt)
|
||||
|
||||
if (epoll_ctl (mux->fd, EPOLL_CTL_ADD, evt->hnd, &ev) == -1)
|
||||
{
|
||||
mux->errnum = syserr_to_errnum (errno);
|
||||
mux->errnum = skerr_to_errnum (errno);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -626,7 +599,7 @@ done:
|
||||
|
||||
if (epoll_ctl (mux->fd, EPOLL_CTL_DEL, evt->hnd, QSE_NULL) <= -1)
|
||||
{
|
||||
mux->errnum = syserr_to_errnum(errno);
|
||||
mux->errnum = skerr_to_errnum(errno);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -680,11 +653,11 @@ int qse_mux_poll (qse_mux_t* mux, const qse_ntime_t* tmout)
|
||||
if (n <= -1)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
mux->errnum = syserr_to_errnum(WSAGetLastError());
|
||||
mux->errnum = skerr_to_errnum(WSAGetLastError());
|
||||
#elif defined(__OS2__)
|
||||
mux->errnum = syserr_to_errnum(sock_errno());
|
||||
mux->errnum = skerr_to_errnum(sock_errno());
|
||||
#else
|
||||
mux->errnum = syserr_to_errnum(errno);
|
||||
mux->errnum = skerr_to_errnum(errno);
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
@ -722,7 +695,7 @@ int qse_mux_poll (qse_mux_t* mux, const qse_ntime_t* tmout)
|
||||
);
|
||||
if (nfds <= -1)
|
||||
{
|
||||
mux->errnum = syserr_to_errnum(errno);
|
||||
mux->errnum = skerr_to_errnum(errno);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -779,7 +752,7 @@ int qse_mux_poll (qse_mux_t* mux, const qse_ntime_t* tmout)
|
||||
n = os2_select (mux->fdarr, rcount, wcount, 0, tv);
|
||||
if (n <= -1)
|
||||
{
|
||||
mux->errnum = syserr_to_errnum(sock_errno());
|
||||
mux->errnum = skerr_to_errnum(sock_errno());
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ static qse_ssize_t socket_input (
|
||||
#define TMOUT_ENABLED(tmout) (tmout.sec >= 0 && tmout.nsec >= 0)
|
||||
|
||||
#if defined(_WIN32)
|
||||
static qse_nwio_errnum_t syserr_to_errnum (DWORD e)
|
||||
static qse_nwio_errnum_t skerr_to_errnum (DWORD e)
|
||||
{
|
||||
switch (e)
|
||||
{
|
||||
@ -92,7 +92,7 @@ static qse_nwio_errnum_t syserr_to_errnum (DWORD e)
|
||||
}
|
||||
}
|
||||
#elif defined(__OS2__)
|
||||
static qse_nwio_errnum_t syserr_to_errnum (int e)
|
||||
static qse_nwio_errnum_t skerr_to_errnum (int e)
|
||||
{
|
||||
switch (e)
|
||||
{
|
||||
@ -135,13 +135,13 @@ static qse_nwio_errnum_t syserr_to_errnum (int e)
|
||||
}
|
||||
|
||||
#elif defined(__DOS__)
|
||||
static qse_nwio_errnum_t syserr_to_errnum (int e)
|
||||
static qse_nwio_errnum_t skerr_to_errnum (int e)
|
||||
{
|
||||
/* TODO: */
|
||||
return QSE_NWIO_ESYSERR;
|
||||
}
|
||||
#else
|
||||
static qse_nwio_errnum_t syserr_to_errnum (int e)
|
||||
static qse_nwio_errnum_t skerr_to_errnum (int e)
|
||||
{
|
||||
switch (e)
|
||||
{
|
||||
@ -166,6 +166,9 @@ static qse_nwio_errnum_t syserr_to_errnum (int e)
|
||||
case EPIPE:
|
||||
return QSE_NWIO_EPIPE;
|
||||
|
||||
case EAGAIN:
|
||||
return QSE_NWIO_EAGAIN;
|
||||
|
||||
#if defined(ECONNREFUSED) || defined(ENETUNREACH) || defined(EHOSTUNREACH) || defined(EHOSTDOWN)
|
||||
#if defined(ECONNREFUSED)
|
||||
case ECONNREFUSED:
|
||||
@ -235,11 +238,11 @@ static int wait_for_data (qse_nwio_t* nwio, const qse_ntime_t* tmout, int what)
|
||||
#endif
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
#elif defined(__OS2__)
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
#else
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
@ -260,7 +263,7 @@ static int wait_for_data (qse_nwio_t* nwio, const qse_ntime_t* tmout, int what)
|
||||
xret = os2_select (&nwio->handle, count[0], count[1], 0, tmout_msecs);
|
||||
if (xret <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
return -1;
|
||||
}
|
||||
else if (xret == 0)
|
||||
@ -325,11 +328,11 @@ static int preset_tmout (qse_nwio_t* nwio)
|
||||
if (setsockopt (nwio->handle, SOL_SOCKET, SO_RCVTIMEO, (void*)&tv, QSE_SIZEOF(tv)) <= -1)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
#elif defined(__OS2__)
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
#else
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
#endif
|
||||
return -1; /* tried to set but failed */
|
||||
}
|
||||
@ -348,11 +351,11 @@ static int preset_tmout (qse_nwio_t* nwio)
|
||||
if (setsockopt (nwio->handle, SOL_SOCKET, SO_SNDTIMEO, (void*)&tv, QSE_SIZEOF(tv)) <= -1)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
#elif defined(__OS2__)
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
#else
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
#endif
|
||||
return -1; /* tried to set but failed */
|
||||
}
|
||||
@ -416,7 +419,7 @@ int qse_nwio_init (
|
||||
nwio->handle = socket (family, type, 0);
|
||||
if (nwio->handle == INVALID_SOCKET)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -438,7 +441,7 @@ int qse_nwio_init (
|
||||
|
||||
if (bind (nwio->handle, (struct sockaddr*)&addr, addrlen) == SOCKET_ERROR)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -446,7 +449,7 @@ int qse_nwio_init (
|
||||
{
|
||||
if (listen (nwio->handle, 10) == SOCKET_ERROR)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -456,7 +459,7 @@ int qse_nwio_init (
|
||||
handle = accept (nwio->handle, (struct sockaddr*)&addr, &addrlen);
|
||||
if (handle == INVALID_SOCKET)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -478,7 +481,7 @@ int qse_nwio_init (
|
||||
|
||||
if (ioctlsocket(nwio->handle, FIONBIO, &cmd) == SOCKET_ERROR)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
@ -492,7 +495,7 @@ int qse_nwio_init (
|
||||
if ((xret == SOCKET_ERROR && WSAGetLastError() != WSAEWOULDBLOCK) ||
|
||||
ioctlsocket (nwio->handle, FIONBIO, &cmd) == SOCKET_ERROR)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -505,12 +508,12 @@ int qse_nwio_init (
|
||||
xlen = QSE_SIZEOF(xerr);
|
||||
if (getsockopt (nwio->handle, SOL_SOCKET, SO_ERROR, (char*)&xerr, &xlen) == SOCKET_ERROR)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
goto oops;
|
||||
}
|
||||
else if (xerr != 0)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (xerr);
|
||||
nwio->errnum = skerr_to_errnum (xerr);
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
@ -519,7 +522,7 @@ int qse_nwio_init (
|
||||
{
|
||||
if (xret == SOCKET_ERROR)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
@ -529,7 +532,7 @@ int qse_nwio_init (
|
||||
nwio->handle = socket (family, type, 0);
|
||||
if (nwio->handle <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -551,7 +554,7 @@ int qse_nwio_init (
|
||||
|
||||
if (bind (nwio->handle, (struct sockaddr*)&addr, addrlen) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -559,7 +562,7 @@ int qse_nwio_init (
|
||||
{
|
||||
if (listen (nwio->handle, 10) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -569,7 +572,7 @@ int qse_nwio_init (
|
||||
handle = accept (nwio->handle, (struct sockaddr*)&addr, &addrlen);
|
||||
if (handle <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -591,7 +594,7 @@ int qse_nwio_init (
|
||||
|
||||
if (ioctl (nwio->handle, FIONBIO, (void*)&noblk, QSE_SIZEOF(noblk)) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
@ -605,7 +608,7 @@ int qse_nwio_init (
|
||||
if ((xret <= -1 && sock_errno() != SOCEINPROGRESS) ||
|
||||
ioctl (nwio->handle, FIONBIO, (void*)&noblk, QSE_SIZEOF(noblk)) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -617,12 +620,12 @@ int qse_nwio_init (
|
||||
xlen = QSE_SIZEOF(xerr);
|
||||
if (getsockopt (nwio->handle, SOL_SOCKET, SO_ERROR, (char*)&xerr, &xlen) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
goto oops;
|
||||
}
|
||||
else if (xerr != 0)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (xerr);
|
||||
nwio->errnum = skerr_to_errnum (xerr);
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
@ -631,7 +634,7 @@ int qse_nwio_init (
|
||||
{
|
||||
if (xret <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
@ -649,7 +652,7 @@ int qse_nwio_init (
|
||||
#endif
|
||||
if (nwio->handle <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -680,7 +683,7 @@ int qse_nwio_init (
|
||||
|
||||
if (bind (nwio->handle, (struct sockaddr*)&addr, addrlen) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -688,7 +691,7 @@ int qse_nwio_init (
|
||||
{
|
||||
if (listen (nwio->handle, 10) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -698,7 +701,7 @@ int qse_nwio_init (
|
||||
handle = accept (nwio->handle, (struct sockaddr*)&addr, &addrlen);
|
||||
if (handle <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -722,7 +725,7 @@ int qse_nwio_init (
|
||||
if (orgfl <= -1 ||
|
||||
fcntl (nwio->handle, F_SETFL, orgfl | O_NONBLOCK) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -731,7 +734,7 @@ int qse_nwio_init (
|
||||
if ((xret <= -1 && errno != EINPROGRESS) ||
|
||||
fcntl (nwio->handle, F_SETFL, orgfl) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
goto oops;
|
||||
}
|
||||
|
||||
@ -746,12 +749,12 @@ int qse_nwio_init (
|
||||
xlen = QSE_SIZEOF(xret);
|
||||
if (getsockopt (nwio->handle, SOL_SOCKET, SO_ERROR, (char*)&xret, &xlen) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
goto oops;
|
||||
}
|
||||
else if (xret != 0)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (xret);
|
||||
nwio->errnum = skerr_to_errnum (xret);
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
@ -761,7 +764,7 @@ int qse_nwio_init (
|
||||
xret = connect (nwio->handle, (struct sockaddr*)&addr, addrlen);
|
||||
if (xret <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
@ -940,7 +943,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size)
|
||||
(struct sockaddr*)&addr, &addrlen);
|
||||
if (count == SOCKET_ERROR)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
}
|
||||
else if (count >= 1)
|
||||
{
|
||||
@ -948,7 +951,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size)
|
||||
* first sender */
|
||||
if (connect (nwio->handle, (struct sockaddr*)&addr, addrlen) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
return -1;
|
||||
}
|
||||
nwio->status &= ~STATUS_UDP_CONNECT;
|
||||
@ -961,7 +964,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size)
|
||||
wait_for_data (nwio, &nwio->tmout.r, 0) <= -1) return -1;
|
||||
|
||||
count = recv (nwio->handle, buf, size, 0);
|
||||
if (count == SOCKET_ERROR) nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
if (count == SOCKET_ERROR) nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
}
|
||||
|
||||
return count;
|
||||
@ -985,7 +988,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size)
|
||||
(struct sockaddr*)&addr, &addrlen);
|
||||
if (n <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
}
|
||||
else if (n >= 1)
|
||||
{
|
||||
@ -993,7 +996,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size)
|
||||
* first sender */
|
||||
if (connect (nwio->handle, (struct sockaddr*)&addr, addrlen) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
return -1;
|
||||
}
|
||||
nwio->status &= ~STATUS_UDP_CONNECT;
|
||||
@ -1006,7 +1009,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size)
|
||||
wait_for_data (nwio, &nwio->tmout.r, 0) <= -1) return -1;
|
||||
|
||||
n = recv (nwio->handle, buf, size, 0);
|
||||
if (n <= -1) nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
if (n <= -1) nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
}
|
||||
|
||||
return n;
|
||||
@ -1054,7 +1057,7 @@ reread:
|
||||
}
|
||||
else
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
}
|
||||
}
|
||||
else if (n >= 1)
|
||||
@ -1063,7 +1066,7 @@ reread:
|
||||
* first sender */
|
||||
if (connect (nwio->handle, (struct sockaddr*)&addr, addrlen) <= -1)
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
return -1;
|
||||
}
|
||||
nwio->status &= ~STATUS_UDP_CONNECT;
|
||||
@ -1086,7 +1089,7 @@ reread:
|
||||
}
|
||||
else
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1134,7 +1137,7 @@ static qse_ssize_t nwio_write (qse_nwio_t* nwio, const void* data, qse_size_t si
|
||||
wait_for_data (nwio, &nwio->tmout.w, 1) <= -1) return -1;
|
||||
|
||||
count = send (nwio->handle, data, size, 0);
|
||||
if (count == SOCKET_ERROR) nwio->errnum = syserr_to_errnum (WSAGetLastError());
|
||||
if (count == SOCKET_ERROR) nwio->errnum = skerr_to_errnum (WSAGetLastError());
|
||||
return count;
|
||||
|
||||
#elif defined(__OS2__)
|
||||
@ -1147,7 +1150,7 @@ static qse_ssize_t nwio_write (qse_nwio_t* nwio, const void* data, qse_size_t si
|
||||
wait_for_data (nwio, &nwio->tmout.w, 1) <= -1) return -1;
|
||||
|
||||
n = send (nwio->handle, data, size, 0);
|
||||
if (n <= -1) nwio->errnum = syserr_to_errnum (sock_errno());
|
||||
if (n <= -1) nwio->errnum = skerr_to_errnum (sock_errno());
|
||||
return n;
|
||||
|
||||
#elif defined(__DOS__)
|
||||
@ -1176,7 +1179,7 @@ rewrite:
|
||||
}
|
||||
else
|
||||
{
|
||||
nwio->errnum = syserr_to_errnum (errno);
|
||||
nwio->errnum = skerr_to_errnum (errno);
|
||||
}
|
||||
}
|
||||
return n;
|
||||
|
@ -161,13 +161,13 @@ int qse_vsprintf (qse_char_t* buf, qse_size_t size, const qse_char_t* fmt, va_li
|
||||
if (nf == NULL) return -1;
|
||||
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
#if defined(_MSC_VER) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
n = _vsnprintf (buf, size, nf, ap);
|
||||
#else
|
||||
n = vsnprintf (buf, size, nf, ap);
|
||||
#endif
|
||||
#else
|
||||
#if defined(_MSC_VER) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
n = _vsnwprintf (buf, size, nf, ap);
|
||||
#else
|
||||
n = vswprintf (buf, size, nf, ap);
|
||||
|
Reference in New Issue
Block a user