summaryrefslogtreecommitdiff
path: root/evbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'evbuffer.c')
-rw-r--r--evbuffer.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/evbuffer.c b/evbuffer.c
index e9f7e43a..684b325d 100644
--- a/evbuffer.c
+++ b/evbuffer.c
@@ -154,12 +154,20 @@ bufferevent_writecb(int fd, short event, void *arg)
if (EVBUFFER_LENGTH(bufev->output)) {
res = evbuffer_write(bufev->output, fd);
if (res == -1) {
+#ifndef WIN32
+/*todo. evbuffer uses WriteFile when WIN32 is set. WIN32 system calls do not
+ *set errno. thus this error checking is not portable*/
if (errno == EAGAIN ||
errno == EINTR ||
errno == EINPROGRESS)
goto reschedule;
/* error case */
what |= EVBUFFER_ERROR;
+
+#else
+ goto reschedule;
+#endif
+
} else if (res == 0) {
/* eof case */
what |= EVBUFFER_EOF;