Fixed some bug in gsocket
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3307
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
virtual size_t LastRead() { return wxStreamBase::m_lastcount; }
// Ungetch
virtual size_t LastRead() { return wxStreamBase::m_lastcount; }
// Ungetch
- size_t Ungetch(void *buffer, size_t size);
+ size_t Ungetch(const void *buffer, size_t size);
bool Ungetch(char c);
// Operators
bool Ungetch(char c);
// Operators
-size_t wxInputStream::Ungetch(void *buf, size_t bufsize)
+size_t wxInputStream::Ungetch(const void *buf, size_t bufsize)
/* We always have a stream here */
sck->m_stream = TRUE;
/* We always have a stream here */
sck->m_stream = TRUE;
/* Create the socket */
sck->m_fd = socket(sck->m_local->m_realfamily, SOCK_STREAM, 0);
/* Create the socket */
sck->m_fd = socket(sck->m_local->m_realfamily, SOCK_STREAM, 0);
DISABLE_TIMEOUT(socket);
UNMASK_SIGNAL();
DISABLE_TIMEOUT(socket);
UNMASK_SIGNAL();
- if (ret == -1 && errno != EAGAIN) {
+ if (ret == -1 && errno != EWOULDBLOCK) {
socket->m_error = GSOCK_IOERR;
return -1;
}
socket->m_error = GSOCK_IOERR;
return -1;
}
+ if (errno == EWOULDBLOCK) {
socket->m_error = GSOCK_TRYAGAIN;
return -1;
}
socket->m_error = GSOCK_TRYAGAIN;
return -1;
}
ret = recvfrom(socket->m_fd, buffer, size, 0, &from, &fromlen);
DISABLE_TIMEOUT(socket);
UNMASK_SIGNAL();
ret = recvfrom(socket->m_fd, buffer, size, 0, &from, &fromlen);
DISABLE_TIMEOUT(socket);
UNMASK_SIGNAL();
- if (ret == -1 && errno != EAGAIN) {
+ if (ret == -1 && errno != EWOULDBLOCK) {
socket->m_error = GSOCK_IOERR;
return -1;
}
socket->m_error = GSOCK_IOERR;
return -1;
}
+ if (errno == EWOULDBLOCK) {
socket->m_error = GSOCK_TRYAGAIN;
return -1;
}
socket->m_error = GSOCK_TRYAGAIN;
return -1;
}
ret = send(socket->m_fd, buffer, size, 0);
DISABLE_TIMEOUT(socket);
UNMASK_SIGNAL();
ret = send(socket->m_fd, buffer, size, 0);
DISABLE_TIMEOUT(socket);
UNMASK_SIGNAL();
- if (ret == -1 && errno != EAGAIN) {
+ if (ret == -1 && errno != EWOULDBLOCK) {
socket->m_error = GSOCK_IOERR;
return -1;
}
socket->m_error = GSOCK_IOERR;
return -1;
}
+ if (errno == EWOULDBLOCK) {
socket->m_error = GSOCK_TRYAGAIN;
return -1;
}
socket->m_error = GSOCK_TRYAGAIN;
return -1;
}
/* Frees memory allocated from _GAddress_translate_to */
free(addr);
/* Frees memory allocated from _GAddress_translate_to */
free(addr);
- if (ret == -1 && errno != EAGAIN) {
+ if (ret == -1 && errno != EWOULDBLOCK) {
socket->m_error = GSOCK_IOERR;
return -1;
}
socket->m_error = GSOCK_IOERR;
return -1;
}
+ if (errno == EWOULDBLOCK) {
socket->m_error = GSOCK_TRYAGAIN;
return -1;
}
socket->m_error = GSOCK_TRYAGAIN;
return -1;
}