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: https://origsvn.digium.com/svn/asterisk/branches/1.6.2@276809 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.2
Jeff Peeler 16 years ago
parent 41af8a2fb7
commit 5d6495516f

@ -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"

Loading…
Cancel
Save