Merged revisions 169080 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

........
  r169080 | twilson | 2009-01-16 19:56:36 -0600 (Fri, 16 Jan 2009) | 8 lines
  
  Fix qualify for TCP peer
  
  (closes issue #14192)
  Reported by: pabelanger
  Patches: 
        asterisk-bug14192.diff.txt uploaded by jamesgolovich (license 176)
  Tested by: jamesgolovich
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@169082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Terry Wilson
2009-01-17 01:59:37 +00:00
parent eb427ada5e
commit 80bcb37636
3 changed files with 13 additions and 13 deletions

View File

@@ -114,7 +114,7 @@ struct ast_tls_config {
*/ */
struct ast_tcptls_session_args { struct ast_tcptls_session_args {
struct sockaddr_in local_address; struct sockaddr_in local_address;
struct sockaddr_in old_local_address; struct sockaddr_in old_address; /*!< copy of the local or remote address depending on if its a client or server session */
struct sockaddr_in remote_address; struct sockaddr_in remote_address;
char hostname[MAXHOSTNAMELEN]; /*!< only necessary for SSL clients so we can compare to common name */ char hostname[MAXHOSTNAMELEN]; /*!< only necessary for SSL clients so we can compare to common name */
struct ast_tls_config *tls_cfg; /*!< points to the SSL configuration if any */ struct ast_tls_config *tls_cfg; /*!< points to the SSL configuration if any */

View File

@@ -257,13 +257,13 @@ static struct ast_str *httpstatus_callback(struct ast_tcptls_session_instance *s
"<h2>&nbsp;&nbsp;Asterisk&trade; HTTP Status</h2></td></tr>\r\n"); "<h2>&nbsp;&nbsp;Asterisk&trade; HTTP Status</h2></td></tr>\r\n");
ast_str_append(&out, 0, "<tr><td><i>Prefix</i></td><td><b>%s</b></td></tr>\r\n", prefix); ast_str_append(&out, 0, "<tr><td><i>Prefix</i></td><td><b>%s</b></td></tr>\r\n", prefix);
ast_str_append(&out, 0, "<tr><td><i>Bind Address</i></td><td><b>%s</b></td></tr>\r\n", ast_str_append(&out, 0, "<tr><td><i>Bind Address</i></td><td><b>%s</b></td></tr>\r\n",
ast_inet_ntoa(http_desc.old_local_address.sin_addr)); ast_inet_ntoa(http_desc.old_address.sin_addr));
ast_str_append(&out, 0, "<tr><td><i>Bind Port</i></td><td><b>%d</b></td></tr>\r\n", ast_str_append(&out, 0, "<tr><td><i>Bind Port</i></td><td><b>%d</b></td></tr>\r\n",
ntohs(http_desc.old_local_address.sin_port)); ntohs(http_desc.old_address.sin_port));
if (http_tls_cfg.enabled) { if (http_tls_cfg.enabled) {
ast_str_append(&out, 0, "<tr><td><i>SSL Bind Port</i></td><td><b>%d</b></td></tr>\r\n", ast_str_append(&out, 0, "<tr><td><i>SSL Bind Port</i></td><td><b>%d</b></td></tr>\r\n",
ntohs(https_desc.old_local_address.sin_port)); ntohs(https_desc.old_address.sin_port));
} }
ast_str_append(&out, 0, "<tr><td colspan=\"2\"><hr></td></tr>\r\n"); ast_str_append(&out, 0, "<tr><td colspan=\"2\"><hr></td></tr>\r\n");
@@ -973,16 +973,16 @@ static char *handle_show_http(struct ast_cli_entry *e, int cmd, struct ast_cli_a
} }
ast_cli(a->fd, "HTTP Server Status:\n"); ast_cli(a->fd, "HTTP Server Status:\n");
ast_cli(a->fd, "Prefix: %s\n", prefix); ast_cli(a->fd, "Prefix: %s\n", prefix);
if (!http_desc.old_local_address.sin_family) { if (!http_desc.old_address.sin_family) {
ast_cli(a->fd, "Server Disabled\n\n"); ast_cli(a->fd, "Server Disabled\n\n");
} else { } else {
ast_cli(a->fd, "Server Enabled and Bound to %s:%d\n\n", ast_cli(a->fd, "Server Enabled and Bound to %s:%d\n\n",
ast_inet_ntoa(http_desc.old_local_address.sin_addr), ast_inet_ntoa(http_desc.old_address.sin_addr),
ntohs(http_desc.old_local_address.sin_port)); ntohs(http_desc.old_address.sin_port));
if (http_tls_cfg.enabled) { if (http_tls_cfg.enabled) {
ast_cli(a->fd, "HTTPS Server Enabled and Bound to %s:%d\n\n", ast_cli(a->fd, "HTTPS Server Enabled and Bound to %s:%d\n\n",
ast_inet_ntoa(https_desc.old_local_address.sin_addr), ast_inet_ntoa(https_desc.old_address.sin_addr),
ntohs(https_desc.old_local_address.sin_port)); ntohs(https_desc.old_address.sin_port));
} }
} }

View File

@@ -334,12 +334,12 @@ struct ast_tcptls_session_instance *ast_tcptls_client_start(struct ast_tcptls_se
struct ast_tcptls_session_instance *tcptls_session = NULL; struct ast_tcptls_session_instance *tcptls_session = NULL;
/* Do nothing if nothing has changed */ /* Do nothing if nothing has changed */
if(!memcmp(&desc->old_local_address, &desc->local_address, sizeof(desc->old_local_address))) { if (!memcmp(&desc->old_address, &desc->remote_address, sizeof(desc->old_address))) {
ast_debug(1, "Nothing changed in %s\n", desc->name); ast_debug(1, "Nothing changed in %s\n", desc->name);
return NULL; return NULL;
} }
desc->old_local_address = desc->local_address; desc->old_address = desc->remote_address;
if (desc->accept_fd != -1) if (desc->accept_fd != -1)
close(desc->accept_fd); close(desc->accept_fd);
@@ -417,12 +417,12 @@ void ast_tcptls_server_start(struct ast_tcptls_session_args *desc)
int x = 1; int x = 1;
/* Do nothing if nothing has changed */ /* Do nothing if nothing has changed */
if (!memcmp(&desc->old_local_address, &desc->local_address, sizeof(desc->old_local_address))) { if (!memcmp(&desc->old_address, &desc->local_address, sizeof(desc->old_address))) {
ast_debug(1, "Nothing changed in %s\n", desc->name); ast_debug(1, "Nothing changed in %s\n", desc->name);
return; return;
} }
desc->old_local_address = desc->local_address; desc->old_address = desc->local_address;
/* Shutdown a running server if there is one */ /* Shutdown a running server if there is one */
if (desc->master != AST_PTHREADT_NULL) { if (desc->master != AST_PTHREADT_NULL) {