Index: channels/chan_sip.c =================================================================== --- channels/chan_sip.c (revision 286455) +++ channels/chan_sip.c (working copy) @@ -13831,6 +13831,8 @@ /* 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" @@ -13838,8 +13840,7 @@ "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: @@ -13853,6 +13854,8 @@ 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" @@ -13862,14 +13865,15 @@ "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" @@ -13877,13 +13881,13 @@ "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" @@ -13893,8 +13897,7 @@ "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); } } } @@ -16901,9 +16904,9 @@ 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"); @@ -27265,8 +27268,11 @@ 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; Index: main/acl.c =================================================================== --- main/acl.c (revision 286455) +++ main/acl.c (working copy) @@ -488,8 +488,13 @@ ret = ha; } - ast_debug(1, "%s/%s sense %d appended to acl for peer\n", ast_strdupa(ast_sockaddr_stringify(&ha->addr)), ast_strdupa(ast_sockaddr_stringify(&ha->netmask)), ha->sense); + { + const char *addr = ast_strdupa(ast_sockaddr_stringify(&ha->addr)); + const char *mask = ast_strdupa(ast_sockaddr_stringify(&ha->netmask)); + ast_debug(1, "%s/%s sense %d appended to acl for peer\n", addr, mask, ha->sense); + } + return ret; } @@ -701,10 +706,15 @@ return -1; } close(s); - ast_debug(3, "For destination '%s', our source address is '%s'.\n", - ast_strdupa(ast_sockaddr_stringify_addr(them)), - ast_strdupa(ast_sockaddr_stringify_addr(us))); + { + const char *them_addr = ast_strdupa(ast_sockaddr_stringify_addr(them)); + const char *us_addr = ast_strdupa(ast_sockaddr_stringify_addr(us)); + + ast_debug(3, "For destination '%s', our source address is '%s'.\n", + them_addr, us_addr); + } + ast_sockaddr_set_port(us, port); return 0; Index: main/dnsmgr.c =================================================================== --- main/dnsmgr.c (revision 286455) +++ main/dnsmgr.c (working copy) @@ -151,22 +151,26 @@ */ static int dnsmgr_refresh(struct ast_dnsmgr_entry *entry, int verbose) { - struct ast_sockaddr tmp; + struct ast_sockaddr tmp = { .len = 0, }; int changed = 0; ast_mutex_lock(&entry->lock); - if (verbose) + + if (verbose) { ast_verb(3, "refreshing '%s'\n", entry->name); + } - memset(&tmp, 0, sizeof(tmp)); - if (!ast_get_ip_or_srv(&tmp, entry->name, entry->service)) { - if (!ast_sockaddr_port(&tmp)) + if (!ast_sockaddr_port(&tmp)) { ast_sockaddr_set_port(&tmp, ast_sockaddr_port(entry->result)); + } + if (ast_sockaddr_cmp(&tmp, entry->result)) { + const char *old_addr = ast_strdupa(ast_sockaddr_stringify(entry->result)); + const char *new_addr = ast_strdupa(ast_sockaddr_stringify(&tmp)); + ast_log(LOG_NOTICE, "dnssrv: host '%s' changed from %s to %s\n", - entry->name, ast_strdupa(ast_sockaddr_stringify(entry->result)), - ast_strdupa(ast_sockaddr_stringify(&tmp))); + entry->name, old_addr, new_addr); ast_sockaddr_copy(entry->result, &tmp); changed = entry->changed = 1; @@ -174,6 +178,7 @@ } ast_mutex_unlock(&entry->lock); + return changed; } Index: res/res_rtp_asterisk.c =================================================================== --- res/res_rtp_asterisk.c (revision 286455) +++ res/res_rtp_asterisk.c (working copy) @@ -2012,9 +2012,12 @@ ast_sockaddr_copy(&rtp->strict_rtp_address, &addr); } else { + const char *real_addr = ast_strdupa(ast_sockaddr_stringify(&addr)); + const char *expected_addr = ast_strdupa(ast_sockaddr_stringify(&rtp->strict_rtp_address)); + ast_debug(1, "Received RTP packet from %s, dropping due to strict RTP protection. Expected it to be from %s\n", - ast_strdupa(ast_sockaddr_stringify(&addr)), - ast_strdupa(ast_sockaddr_stringify(&rtp->strict_rtp_address))); + real_addr, expected_addr); + return &ast_null_frame; } }