diff options
author | Alexander Færøy <ahf@torproject.org> | 2020-07-14 14:48:21 +0000 |
---|---|---|
committer | Alexander Færøy <ahf@torproject.org> | 2020-07-14 14:48:21 +0000 |
commit | 1d554e4bafcff076c0ebba34b8292dea44c6dd06 (patch) | |
tree | 2fc2e31c25c707ff8a2cde298836533ed06bc64a /src/lib/tls | |
parent | e594195aa2faa153e997f12dbcaebae4281ff925 (diff) | |
parent | 07f3345e11530b14c719f8a776f15b943d2fef91 (diff) | |
download | tor-1d554e4bafcff076c0ebba34b8292dea44c6dd06.tar.gz tor-1d554e4bafcff076c0ebba34b8292dea44c6dd06.zip |
Merge branch 'maint-0.4.4'
Diffstat (limited to 'src/lib/tls')
-rw-r--r-- | src/lib/tls/tortls_nss.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/tls/tortls_nss.c b/src/lib/tls/tortls_nss.c index adbfcad0a4..c873367f6f 100644 --- a/src/lib/tls/tortls_nss.c +++ b/src/lib/tls/tortls_nss.c @@ -431,6 +431,16 @@ tor_tls_new(tor_socket_t sock, int is_server) return NULL; } + /* even if though the socket is already nonblocking, we need to tell NSS + * about the fact, so that it knows what to do when it says EAGAIN. */ + PRSocketOptionData data; + data.option = PR_SockOpt_Nonblocking; + data.value.non_blocking = 1; + if (PR_SetSocketOption(ssl, &data) != PR_SUCCESS) { + PR_Close(ssl); + return NULL; + } + tor_tls_t *tls = tor_malloc_zero(sizeof(tor_tls_t)); tls->magic = TOR_TLS_MAGIC; tls->context = ctx; |