From 6dc21bbf00388778bcd865f6cb7169e8029e001a Mon Sep 17 00:00:00 2001
From: Dade Brandon <dade@xencall.com>
Date: Fri, 25 Dec 2015 07:56:44 -0800
Subject: [PATCH] chan_sip.c: fix websocket_write_timeout default value

websocket_write_timeout was not being set to its default value
during sip config reload, which meant that prior to this commit,
1) the default value of 100 was not used, unless an invalid value
(or 1) was specified in sip.conf for websocket_write_timeout, and
2) if the websocket_write_timeout directive was removed from sip.conf
without a full restart of asterisk, then the previous value would
continue to be used indefinitely.

This essentially lead to a 0ms write timeout (the first write attempt
in ast_careful_fwrite must have succeeded) in websocket write requests
from chan_sip, unless websocket_write_timeout was explicitely set in sip.conf.

Changes to websocket_write_timeout still only apply to new websocket
sessions, after the sip reload -- timeouts on existing sessions are
not adjusted during sip reload.

Change-Id: Ibed3816ed29cc354af6564c5ab3e75eab72cb953
---
 channels/chan_sip.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index f7fbed7202..b4c2602503 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -31511,6 +31511,7 @@ static int reload_config(enum channelreloadreason reason)
 	global_dynamic_exclude_static = 0;	/* Exclude static peers */
 	sip_cfg.tcp_enabled = FALSE;
 	sip_cfg.websocket_enabled = TRUE;
+	sip_cfg.websocket_write_timeout = AST_DEFAULT_WEBSOCKET_WRITE_TIMEOUT;
 
 	/* Session-Timers */
 	global_st_mode = SESSION_TIMER_MODE_ACCEPT;
-- 
GitLab