summaryrefslogtreecommitdiff
path: root/pjsip-apps
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-08-01 11:38:14 +0000
committerBenny Prijono <bennylp@teluu.com>2007-08-01 11:38:14 +0000
commitc479ca464b0a7717a5579d0fd9d295502ff146ce (patch)
tree7fcc15222bac4518acbbf3f17d38b509e58f34fe /pjsip-apps
parent483a106bd1476d3eb0a2168854318cfef4716b35 (diff)
Fixed ticket #359: Wrong Via branch generation in proxy causing the same branch value to be generated for RFC 2543 clients (thanks Helmut Wolf)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1411 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps')
-rw-r--r--pjsip-apps/src/samples/proxy.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/pjsip-apps/src/samples/proxy.h b/pjsip-apps/src/samples/proxy.h
index 8eef92ba..65ccd198 100644
--- a/pjsip-apps/src/samples/proxy.h
+++ b/pjsip-apps/src/samples/proxy.h
@@ -235,7 +235,9 @@ static pj_status_t init_stack(void)
static pj_status_t init_proxy(void)
{
- pj_in_addr addr;
+ pj_in_addr pri_addr;
+ pj_in_addr addr_list[16];
+ unsigned addr_cnt = PJ_ARRAY_SIZE(addr_list);
unsigned i;
/* List all names matching local endpoint.
@@ -248,16 +250,32 @@ static pj_status_t init_proxy(void)
/* The first address is important since this would be the one
* to be added in Record-Route.
*/
- if (pj_gethostip(&addr) == PJ_SUCCESS) {
+ if (pj_gethostip(&pri_addr)==PJ_SUCCESS) {
pj_strdup2(global.pool, &global.name[global.name_cnt].host,
- pj_inet_ntoa(addr));
+ pj_inet_ntoa(pri_addr));
global.name[global.name_cnt].port = global.port;
global.name_cnt++;
}
+ /* Get the rest of IP interfaces */
+ if (pj_enum_ip_interface(&addr_cnt, addr_list) == PJ_SUCCESS) {
+ for (i=0; i<addr_cnt; ++i) {
+
+ if (addr_list[i].s_addr == pri_addr.s_addr)
+ continue;
+
+ pj_strdup2(global.pool, &global.name[global.name_cnt].host,
+ pj_inet_ntoa(addr_list[i]));
+ global.name[global.name_cnt].port = global.port;
+ global.name_cnt++;
+ }
+ }
+
+ /* No need to add this, this should have been added above.
global.name[global.name_cnt].host = pj_str("127.0.0.1");
global.name[global.name_cnt].port = global.port;
global.name_cnt++;
+ */
global.name[global.name_cnt].host = *pj_gethostname();
global.name[global.name_cnt].port = global.port;