Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 2007 Pekka Riikonen
+ Copyright (C) 2007 - 2008 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
-#include "silc.h"
+#include "silcruntime.h"
/************************ Static utility functions **************************/
silc_schedule_get_fd_events(sock->schedule,
sock->sock) |
SILC_TASK_READ, FALSE);
+ silc_set_errno(SILC_ERR_WOULD_BLOCK);
return -1;
}
len = recv(fd, buf, buf_len, 0);
if (len == SOCKET_ERROR) {
len = WSAGetLastError();
+ silc_set_errno_posix(ret);
if (len == WSAEWOULDBLOCK || len == WSAEINTR) {
SILC_LOG_DEBUG(("Could not read immediately, will do it later"));
silc_schedule_set_listen_fd(sock->schedule, sock->sock,
}
SILC_LOG_DEBUG(("Cannot read from socket: %d", sock->sock));
silc_schedule_unset_listen_fd(sock->schedule, sock->sock);
- sock->sock_error = len;
return -2;
}
ret = send(fd, data, data_len, 0);
if (ret == SOCKET_ERROR) {
ret = WSAGetLastError();
+ silc_set_errno_posix(ret);
if (ret == WSAEWOULDBLOCK) {
SILC_LOG_DEBUG(("Could not write immediately, will do it later"));
silc_schedule_set_listen_fd(sock->schedule, sock->sock,
}
SILC_LOG_DEBUG(("Cannot write to socket"));
silc_schedule_unset_listen_fd(sock->schedule, sock->sock);
- sock->sock_error = ret;
return -2;
}