[asterisk-commits] seanbright: branch seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_se...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Feb 27 15:44:21 CST 2012
Author: seanbright
Date: Mon Feb 27 15:44:17 2012
New Revision: 357087
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=357087
Log:
Convert iax2_registry to use ast_sockaddr.
Modified:
team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c
Modified: team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c?view=diff&rev=357087&r1=357086&r2=357087
==============================================================================
--- team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c (original)
+++ team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c Mon Feb 27 15:44:17 2012
@@ -608,7 +608,7 @@
enum iax_reg_state regstate;
int messages; /*!< Message count, low 8 bits = new, high 8 bits = old */
int callno; /*!< Associated call number if applicable */
- struct sockaddr_in us; /*!< Who the server thinks we are */
+ struct ast_sockaddr us; /*!< Who the server thinks we are */
struct ast_dnsmgr_entry *dnsmgr; /*!< DNS refresh manager */
AST_LIST_ENTRY(iax2_registry) entry;
};
@@ -7108,8 +7108,8 @@
AST_LIST_LOCK(®istrations);
AST_LIST_TRAVERSE(®istrations, reg, entry) {
snprintf(host, sizeof(host), "%s", ast_sockaddr_stringify(®->addr));
- if (reg->us.sin_addr.s_addr)
- snprintf(perceived, sizeof(perceived), "%s:%d", ast_inet_ntoa(reg->us.sin_addr), ntohs(reg->us.sin_port));
+ if (!ast_sockaddr_isnull(®->us))
+ snprintf(perceived, sizeof(perceived), "%s", ast_sockaddr_stringify(®->us));
else
ast_copy_string(perceived, "<Unregistered>", sizeof(perceived));
ast_cli(a->fd, FORMAT, host,
@@ -7142,8 +7142,8 @@
AST_LIST_TRAVERSE(®istrations, reg, entry) {
snprintf(host, sizeof(host), "%s", ast_sockaddr_stringify(®->addr));
- if (reg->us.sin_addr.s_addr) {
- snprintf(perceived, sizeof(perceived), "%s:%d", ast_inet_ntoa(reg->us.sin_addr), ntohs(reg->us.sin_port));
+ if (!ast_sockaddr_isnull(®->us)) {
+ snprintf(perceived, sizeof(perceived), "%s", ast_sockaddr_stringify(®->us));
} else {
ast_copy_string(perceived, "<Unregistered>", sizeof(perceived));
}
@@ -8450,14 +8450,13 @@
char msgstatus[60];
int refresh = 60;
char ourip[256] = "<Unspecified>";
- struct sockaddr_in oldus;
- struct sockaddr_in us;
+ struct ast_sockaddr oldus = AST_SOCKADDR_INIT_VALUE;
+ struct ast_sockaddr us = AST_SOCKADDR_INIT_VALUE;
int oldmsgs;
struct sockaddr_in reg_addr;
- memset(&us, 0, sizeof(us));
if (ies->apparent_addr) {
- memmove(&us, ies->apparent_addr, sizeof(us));
+ ast_sockaddr_from_sin(&us, ies->apparent_addr);
}
if (ies->username) {
ast_copy_string(peer, ies->username, sizeof(peer));
@@ -8473,14 +8472,14 @@
ast_log(LOG_WARNING, "Registry acknowledge on unknown registry '%s'\n", peer);
return -1;
}
- memcpy(&oldus, ®->us, sizeof(oldus));
+ ast_sockaddr_copy(&oldus, &us);
oldmsgs = reg->messages;
ast_sockaddr_to_sin(®->addr, ®_addr);
if (inaddrcmp(®_addr, sin)) {
ast_log(LOG_WARNING, "Received unsolicited registry ack from '%s'\n", ast_inet_ntoa(sin->sin_addr));
return -1;
}
- memcpy(®->us, &us, sizeof(reg->us));
+ ast_sockaddr_copy(®->us, &us);
if (ies->msgcount >= 0) {
reg->messages = ies->msgcount & 0xffff; /* only low 16 bits are used in the transmission of the IE */
}
@@ -8490,7 +8489,7 @@
reg->refresh = refresh;
reg->expire = iax2_sched_replace(reg->expire, sched,
(5 * reg->refresh / 6) * 1000, iax2_do_register_s, reg);
- if (inaddrcmp(&oldus, ®->us) || (reg->messages != oldmsgs)) {
+ if (ast_sockaddr_cmp(&oldus, ®->us) || (reg->messages != oldmsgs)) {
if (reg->messages > 255) {
snprintf(msgstatus, sizeof(msgstatus), " with %d new and %d old messages waiting", reg->messages & 0xff, reg->messages >> 8);
} else if (reg->messages > 1) {
@@ -8500,7 +8499,7 @@
} else {
ast_copy_string(msgstatus, " with no messages waiting", sizeof(msgstatus));
}
- snprintf(ourip, sizeof(ourip), "%s:%d", ast_inet_ntoa(reg->us.sin_addr), ntohs(reg->us.sin_port));
+ snprintf(ourip, sizeof(ourip), "%s", ast_sockaddr_stringify(®->us));
ast_verb(3, "Registered IAX2 to '%s', who sees us as %s%s\n", ast_inet_ntoa(sin->sin_addr), ourip, msgstatus);
manager_event(EVENT_FLAG_SYSTEM, "Registry", "ChannelType: IAX2\r\nDomain: %s\r\nStatus: Registered\r\n", ast_inet_ntoa(sin->sin_addr));
}
More information about the asterisk-commits
mailing list