diff options
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r-- | channels/chan_sip.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index a7bda8de6..2abe39819 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -13837,6 +13837,8 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock /* Wrong password in authentication. Go away, don't try again until you fixed it */ transmit_response(p, "403 Forbidden (Bad auth)", &p->initreq); if (global_authfailureevents) { + const char *peer_addr = ast_strdupa(ast_sockaddr_stringify_addr(addr)); + const char *peer_port = ast_strdupa(ast_sockaddr_stringify_port(addr)); manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\n" "Peer: SIP/%s\r\n" @@ -13844,8 +13846,7 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock "Cause: AUTH_SECRET_FAILED\r\n" "Address: %s\r\n" "Port: %s\r\n", - name, ast_strdupa(ast_sockaddr_stringify_addr(addr)), - ast_strdupa(ast_sockaddr_stringify_port(addr))); + name, peer_addr, peer_port); } break; case AUTH_USERNAME_MISMATCH: @@ -13859,6 +13860,8 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock if (sip_cfg.alwaysauthreject) { transmit_fake_auth_response(p, SIP_REGISTER, &p->initreq, XMIT_UNRELIABLE); if (global_authfailureevents) { + const char *peer_addr = ast_strdupa(ast_sockaddr_stringify_addr(addr)); + const char *peer_port = ast_strdupa(ast_sockaddr_stringify_port(addr)); manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\n" "Peer: SIP/%s\r\n" @@ -13868,14 +13871,15 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock "Port: %s\r\n", name, res == AUTH_PEER_NOT_DYNAMIC ? "AUTH_PEER_NOT_DYNAMIC" : "URI_NOT_FOUND", - ast_strdupa(ast_sockaddr_stringify_addr(addr)), - ast_strdupa(ast_sockaddr_stringify_port(addr))); + peer_addr, peer_port); } } else { /* URI not found */ if (res == AUTH_PEER_NOT_DYNAMIC) { transmit_response(p, "403 Forbidden", &p->initreq); if (global_authfailureevents) { + const char *peer_addr = ast_strdupa(ast_sockaddr_stringify_addr(addr)); + const char *peer_port = ast_strdupa(ast_sockaddr_stringify_port(addr)); manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\n" "Peer: SIP/%s\r\n" @@ -13883,13 +13887,13 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock "Cause: AUTH_PEER_NOT_DYNAMIC\r\n" "Address: %s\r\n" "Port: %s\r\n", - name, - ast_strdupa(ast_sockaddr_stringify_addr(addr)), - ast_strdupa(ast_sockaddr_stringify_port(addr))); + name, peer_addr, peer_port); } } else { transmit_response(p, "404 Not found", &p->initreq); if (global_authfailureevents) { + const char *peer_addr = ast_strdupa(ast_sockaddr_stringify_addr(addr)); + const char *peer_port = ast_strdupa(ast_sockaddr_stringify_port(addr)); manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\n" "Peer: SIP/%s\r\n" @@ -13899,8 +13903,7 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock "Port: %s\r\n", name, (res == AUTH_USERNAME_MISMATCH) ? "AUTH_USERNAME_MISMATCH" : "URI_NOT_FOUND", - ast_strdupa(ast_sockaddr_stringify_addr(addr)), - ast_strdupa(ast_sockaddr_stringify_port(addr))); + peer_addr, peer_port); } } } @@ -16908,9 +16911,9 @@ static char *sip_show_settings(struct ast_cli_entry *e, int cmd, struct ast_cli_ const char *prefix = "Localnet:"; for (d = localaddr; d ; prefix = "", d = d->next) { - ast_cli(a->fd, " %-24s%s/%s\n", - prefix, ast_strdupa(ast_sockaddr_stringify_addr(&d->addr)), - ast_strdupa(ast_sockaddr_stringify_addr(&d->netmask))); + const char *addr = ast_strdupa(ast_sockaddr_stringify_addr(&d->addr)); + const char *mask = ast_strdupa(ast_sockaddr_stringify_addr(&d->netmask)); + ast_cli(a->fd, " %-24s%s/%s\n", prefix, addr, mask); } } ast_cli(a->fd, "\nGlobal Signalling Settings:\n"); @@ -27274,8 +27277,11 @@ static int apply_directmedia_ha(struct sip_pvt *p, const char *op) ast_rtp_instance_get_local_address(p->rtp, &us); if ((res = ast_apply_ha(p->directmediaha, &them)) == AST_SENSE_DENY) { + const char *us_addr = ast_strdupa(ast_sockaddr_stringify(&us)); + const char *them_addr = ast_strdupa(ast_sockaddr_stringify(&them)); + ast_debug(3, "Reinvite %s to %s denied by directmedia ACL on %s\n", - op, ast_strdupa(ast_sockaddr_stringify(&them)), ast_strdupa(ast_sockaddr_stringify(&us))); + op, them_addr, us_addr); } return res; |