aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen2010-10-10 20:47:45 +0200
committerLars Magne Ingebrigtsen2010-10-10 20:47:45 +0200
commit355cdaf37b7eeef16d23c4bf7fce7b69d56423ec (patch)
tree73f4736007205ee1b9fc9cb3d863d561c5ec4939 /src
parentedfd76ce9129a09cc5c338254127514fd0aea4be (diff)
downloademacs-355cdaf37b7eeef16d23c4bf7fce7b69d56423ec.tar.gz
emacs-355cdaf37b7eeef16d23c4bf7fce7b69d56423ec.zip
Fix gnutls write-before-negotiation case.
* gnutls.c (emacs_gnutls_write): If we're trying to write before gnutls is ready, return EAGAIN as the errno.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/gnutls.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index e2c92031659..1c75c758498 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12010-10-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * gnutls.c (emacs_gnutls_write): If we're trying to write before
4 gnutls is ready, return EAGAIN as the errno.
5
12010-10-10 Dan Nicolaescu <dann@ics.uci.edu> 62010-10-10 Dan Nicolaescu <dann@ics.uci.edu>
2 7
3 * vm-limit.c: 8 * vm-limit.c:
diff --git a/src/gnutls.c b/src/gnutls.c
index d9ccaa5a62c..577cca247ee 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -77,8 +77,15 @@ emacs_gnutls_write (int fildes, struct Lisp_Process *proc, char *buf,
77 register int rtnval, bytes_written; 77 register int rtnval, bytes_written;
78 gnutls_session_t state = proc->gnutls_state; 78 gnutls_session_t state = proc->gnutls_state;
79 79
80 if (proc->gnutls_initstage != GNUTLS_STAGE_READY) 80 if (proc->gnutls_initstage != GNUTLS_STAGE_READY) {
81#ifdef EWOULDBLOCK
82 errno = EWOULDBLOCK;
83#endif
84#ifdef EAGAIN
85 errno = EAGAIN;
86#endif
81 return -1; 87 return -1;
88 }
82 89
83 bytes_written = 0; 90 bytes_written = 0;
84 91