Module: sems Branch: master Commit: 47adad8ab3e9e17efab6519fbe3ec5d1ef0edc76 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=47adad8ab3e9e17efab6519fbe3ec5d1ef0edc76
Author: Stefan Sayer <[email protected]> Committer: Stefan Sayer <[email protected]> Date: Thu Jan 20 18:38:36 2011 +0100 b/f: don't try to resolve IP addresses --- core/sip/resolver.h | 4 ++++ core/sip/trans_layer.cpp | 11 +++++++++++ 2 files changed, 15 insertions(+), 0 deletions(-) diff --git a/core/sip/resolver.h b/core/sip/resolver.h index 857ab8b..5b1b9b7 100644 --- a/core/sip/resolver.h +++ b/core/sip/resolver.h @@ -144,6 +144,10 @@ public: const address_type types); + int str2ip(const char* name, + sockaddr_storage* sa, + const address_type types); + protected: _resolver(); ~_resolver(); diff --git a/core/sip/trans_layer.cpp b/core/sip/trans_layer.cpp index f1234ac..a731138 100644 --- a/core/sip/trans_layer.cpp +++ b/core/sip/trans_layer.cpp @@ -714,7 +714,18 @@ int _trans_layer::set_next_hop(sip_msg* msg, int _trans_layer::set_destination_ip(sip_msg* msg, cstring* next_hop, unsigned short next_port) { + string nh = c2stlstr(*next_hop); + + if (resolver::instance()->str2ip(nh.c_str(), &(msg->remote_ip), IPv4) == 1) { + // already a valid IP address + if (!next_port) + ((sockaddr_in*)&(msg->remote_ip))->sin_port = htons(5060); + else + ((sockaddr_in*)&(msg->remote_ip))->sin_port = htons(next_port); + + return 0; + } if(!next_port){ // no explicit port specified, _______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
