diff options
author | jpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-07-15 20:42:43 +0000 |
---|---|---|
committer | jpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-07-15 20:42:43 +0000 |
commit | 22c43ec9e608f462eda5bff2bb27243da8157756 (patch) | |
tree | f91fcbf5120b21f0bc509f02264461b5e2e3a5dc /channels/chan_sip.c | |
parent | f59a876bed8305ee23612329fee95a9fc90d8df2 (diff) |
Merged revisions 276788 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
........
r276788 | jpeeler | 2010-07-15 15:21:03 -0500 (Thu, 15 Jul 2010) | 6 lines
Correct not setting the bindport before attempting to open the socket.
Related to changes from 276571, I was accidentally testing with a port set in
my configuration causing me to miss this. Also moved the TCP handling as well
to occur before build_peer is called.
........
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@276809 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r-- | channels/chan_sip.c | 68 |
1 files changed, 33 insertions, 35 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 2d565b4b6..bf95bfc25 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -25085,6 +25085,15 @@ static int reload_config(enum channelreloadreason reason) authl = add_realm_authentication(authl, v->value, v->lineno); } + /* Set UDP address and open socket */ + bindaddr.sin_family = AF_INET; + internip = bindaddr; + if (ast_find_ourip(&internip.sin_addr, bindaddr)) { + ast_log(LOG_WARNING, "Unable to get own IP address, SIP disabled\n"); + ast_config_destroy(cfg); + return 0; + } + ast_mutex_lock(&netlock); if ((sipsock > -1) && (memcmp(&old_bindaddr, &bindaddr, sizeof(struct sockaddr_in)))) { close(sipsock); @@ -25129,6 +25138,30 @@ static int reload_config(enum channelreloadreason reason) } ast_mutex_unlock(&netlock); + /* Start TCP server */ + ast_tcptls_server_start(&sip_tcp_desc); + if (sip_tcp_desc.accept_fd == -1 && sip_tcp_desc.local_address.sin_family == AF_INET) { + /* TCP server start failed. Tell the admin */ + ast_log(LOG_ERROR, "SIP TCP Server start failed. Not listening on TCP socket.\n"); + sip_tcp_desc.local_address.sin_family = 0; + } else { + ast_debug(2, "SIP TCP server started\n"); + } + + /* Start TLS server if needed */ + memcpy(sip_tls_desc.tls_cfg, &default_tls_cfg, sizeof(default_tls_cfg)); + + if (ast_ssl_setup(sip_tls_desc.tls_cfg)) { + ast_tcptls_server_start(&sip_tls_desc); + if (default_tls_cfg.enabled && sip_tls_desc.accept_fd == -1) { + ast_log(LOG_ERROR, "TLS Server start failed. Not listening on TLS socket.\n"); + sip_tls_desc.tls_cfg = NULL; + } + } else if (sip_tls_desc.tls_cfg->enabled) { + sip_tls_desc.tls_cfg = NULL; + ast_log(LOG_WARNING, "SIP TLS server did not load because of errors.\n"); + } + if (ucfg) { struct ast_variable *gen; int genhassip, genregistersip; @@ -25192,7 +25225,6 @@ static int reload_config(enum channelreloadreason reason) } ast_config_destroy(ucfg); } - /* Load peers, users and friends */ cat = NULL; @@ -25226,40 +25258,6 @@ static int reload_config(enum channelreloadreason reason) } } } - - /* Set UDP address and open socket */ - bindaddr.sin_family = AF_INET; - internip = bindaddr; - if (ast_find_ourip(&internip.sin_addr, bindaddr)) { - ast_log(LOG_WARNING, "Unable to get own IP address, SIP disabled\n"); - ast_config_destroy(cfg); - return 0; - } - - /* Start TCP server */ - ast_tcptls_server_start(&sip_tcp_desc); - if (sip_tcp_desc.accept_fd == -1 && sip_tcp_desc.local_address.sin_family == AF_INET) { - /* TCP server start failed. Tell the admin */ - ast_log(LOG_ERROR, "SIP TCP Server start failed. Not listening on TCP socket.\n"); - sip_tcp_desc.local_address.sin_family = 0; - } else { - ast_debug(2, "SIP TCP server started\n"); - } - - /* Start TLS server if needed */ - memcpy(sip_tls_desc.tls_cfg, &default_tls_cfg, sizeof(default_tls_cfg)); - - if (ast_ssl_setup(sip_tls_desc.tls_cfg)) { - ast_tcptls_server_start(&sip_tls_desc); - if (default_tls_cfg.enabled && sip_tls_desc.accept_fd == -1) { - ast_log(LOG_ERROR, "TLS Server start failed. Not listening on TLS socket.\n"); - sip_tls_desc.tls_cfg = NULL; - } - } else if (sip_tls_desc.tls_cfg->enabled) { - sip_tls_desc.tls_cfg = NULL; - ast_log(LOG_WARNING, "SIP TLS server did not load because of errors.\n"); - } - /* Add default domains - host name, IP address and IP:port * Only do this if user added any sip domain with "localdomains" |