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

Reply via email to