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;
}