mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 11:58:52 +00:00
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/trunk@169080 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -114,7 +114,7 @@ struct ast_tls_config {
|
||||
*/
|
||||
struct ast_tcptls_session_args {
|
||||
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;
|
||||
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 */
|
||||
|
16
main/http.c
16
main/http.c
@@ -257,13 +257,13 @@ static struct ast_str *httpstatus_callback(struct ast_tcptls_session_instance *s
|
||||
"<h2> Asterisk™ 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>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",
|
||||
ntohs(http_desc.old_local_address.sin_port));
|
||||
ntohs(http_desc.old_address.sin_port));
|
||||
|
||||
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",
|
||||
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");
|
||||
@@ -974,16 +974,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, "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");
|
||||
} else {
|
||||
ast_cli(a->fd, "Server Enabled and Bound to %s:%d\n\n",
|
||||
ast_inet_ntoa(http_desc.old_local_address.sin_addr),
|
||||
ntohs(http_desc.old_local_address.sin_port));
|
||||
ast_inet_ntoa(http_desc.old_address.sin_addr),
|
||||
ntohs(http_desc.old_address.sin_port));
|
||||
if (http_tls_cfg.enabled) {
|
||||
ast_cli(a->fd, "HTTPS Server Enabled and Bound to %s:%d\n\n",
|
||||
ast_inet_ntoa(https_desc.old_local_address.sin_addr),
|
||||
ntohs(https_desc.old_local_address.sin_port));
|
||||
ast_inet_ntoa(https_desc.old_address.sin_addr),
|
||||
ntohs(https_desc.old_address.sin_port));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
/* 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);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
desc->old_local_address = desc->local_address;
|
||||
desc->old_address = desc->remote_address;
|
||||
|
||||
if (desc->accept_fd != -1)
|
||||
close(desc->accept_fd);
|
||||
@@ -417,12 +417,12 @@ void ast_tcptls_server_start(struct ast_tcptls_session_args *desc)
|
||||
int x = 1;
|
||||
|
||||
/* 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);
|
||||
return;
|
||||
}
|
||||
|
||||
desc->old_local_address = desc->local_address;
|
||||
desc->old_address = desc->local_address;
|
||||
|
||||
/* Shutdown a running server if there is one */
|
||||
if (desc->master != AST_PTHREADT_NULL) {
|
||||
|
Reference in New Issue
Block a user