diff options
| author | Lars Magne Ingebrigtsen | 2010-10-10 20:47:45 +0200 |
|---|---|---|
| committer | Lars Magne Ingebrigtsen | 2010-10-10 20:47:45 +0200 |
| commit | 355cdaf37b7eeef16d23c4bf7fce7b69d56423ec (patch) | |
| tree | 73f4736007205ee1b9fc9cb3d863d561c5ec4939 /src | |
| parent | edfd76ce9129a09cc5c338254127514fd0aea4be (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | src/gnutls.c | 9 |
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 @@ | |||
| 1 | 2010-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 | |||
| 1 | 2010-10-10 Dan Nicolaescu <dann@ics.uci.edu> | 6 | 2010-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 | ||