summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2009-04-05 18:30:45 +0000
committerBenny Prijono <bennylp@teluu.com>2009-04-05 18:30:45 +0000
commit263661b4d13e3ebb4a2a0b95049eba36d38d7842 (patch)
tree7b61d86e0a30b609ccd3fb38e584dc25b1fbf535 /pjsip
parent76d0b0d900c2890aba523150da072fd9773e1b7a (diff)
Ticket #776: IPv6 option in pjsua
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2568 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_acc.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index 3d8788a2..461205e8 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -678,16 +678,27 @@ static pj_bool_t acc_check_nat_addr(pjsua_acc *acc,
/* Update account's Contact header */
{
char *tmp;
+ const char *beginquote, *endquote;
int len;
+ /* Enclose IPv6 address in square brackets */
+ if (tp->key.type & PJSIP_TRANSPORT_IPV6) {
+ beginquote = "[";
+ endquote = "]";
+ } else {
+ beginquote = endquote = "";
+ }
+
tmp = (char*) pj_pool_alloc(pool, PJSIP_MAX_URL_SIZE);
len = pj_ansi_snprintf(tmp, PJSIP_MAX_URL_SIZE,
- "<sip:%.*s%s%.*s:%d;transport=%s%.*s>",
+ "<sip:%.*s%s%s%.*s%s:%d;transport=%s%.*s>",
(int)acc->user_part.slen,
acc->user_part.ptr,
(acc->user_part.slen? "@" : ""),
+ beginquote,
(int)via_addr->slen,
via_addr->ptr,
+ endquote,
rport,
tp->type_name,
(int)acc->cfg.contact_params.slen,