diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-02-04 18:48:06 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-02-04 18:48:06 +0000 |
commit | 82c1e379cafad6b32ede9562c7a4d50c2d38f9a9 (patch) | |
tree | 204b04cc2d506eb4aa34574c8cf0bf4080b26d14 /main/tcptls.c | |
parent | 62bbaefff929b8288ca7f7a43501975a548a9def (diff) |
When using a socket as a FILE *, the stdio functions will sometimes try to do
an fseek() on the stream, which is an invalid operation for a socket. Turning
off buffering explicitly lets the stdio functions know they cannot do this,
thus avoiding a potential error.
(closes issue #14400)
Reported by: fnordian
Patches:
tcptls.patch uploaded by fnordian (license 110)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@173458 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/tcptls.c')
-rw-r--r-- | main/tcptls.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/main/tcptls.c b/main/tcptls.c index 6aa0db800..973a94b71 100644 --- a/main/tcptls.c +++ b/main/tcptls.c @@ -135,8 +135,10 @@ static void *handle_tls_connection(void *data) /* * open a FILE * as appropriate. */ - if (!tcptls_session->parent->tls_cfg) + if (!tcptls_session->parent->tls_cfg) { tcptls_session->f = fdopen(tcptls_session->fd, "w+"); + setvbuf(tcptls_session->f, NULL, _IONBF, 0); + } #ifdef DO_SSL else if ( (tcptls_session->ssl = SSL_new(tcptls_session->parent->tls_cfg->ssl_ctx)) ) { SSL_set_fd(tcptls_session->ssl, tcptls_session->fd); |