diff options
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r-- | channels/chan_sip.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 3e1e2c45d..cabc2d14d 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2714,10 +2714,10 @@ static int sip_check_authtimeout(time_t start) * \retval -1 Failed to read data * \retval 0 Succeeded in reading data */ -static int sip_tls_read(struct sip_request *req, struct ast_tcptls_session_instance *tcptls_session, int authenticated, time_t start, struct sip_threadinfo *me) +static int sip_tls_read(struct sip_request *req, struct sip_request *reqcpy, struct ast_tcptls_session_instance *tcptls_session, + int authenticated, time_t start, struct sip_threadinfo *me) { int res, content_length, after_poll = 1, need_poll = 1; - struct sip_request reqcpy = { 0, }; char buf[1024] = ""; int timeout = -1; @@ -2771,10 +2771,10 @@ static int sip_tls_read(struct sip_request *req, struct ast_tcptls_session_insta } ast_str_append(&req->data, 0, "%s", buf); } - copy_request(&reqcpy, req); - parse_request(&reqcpy); + copy_request(reqcpy, req); + parse_request(reqcpy); /* In order to know how much to read, we need the content-length header */ - if (sscanf(sip_get_header(&reqcpy, "Content-Length"), "%30d", &content_length)) { + if (sscanf(sip_get_header(reqcpy, "Content-Length"), "%30d", &content_length)) { while (content_length > 0) { size_t bytes_read; if (!tcptls_session->client && !authenticated) { @@ -3187,7 +3187,7 @@ static void *_sip_tcp_helper_thread(struct ast_tcptls_session_instance *tcptls_s } req.socket.fd = tcptls_session->fd; if (tcptls_session->ssl) { - res = sip_tls_read(&req, tcptls_session, authenticated, start, me); + res = sip_tls_read(&req, &reqcpy, tcptls_session, authenticated, start, me); } else { res = sip_tcp_read(&req, tcptls_session, authenticated, start); } |