Module: sems
Branch: master
Commit: 3a6d77830533cc4845f60ae77c9927fbd454139c
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=3a6d77830533cc4845f60ae77c9927fbd454139c

Author: Raphael Coeffic <[email protected]>
Committer: Raphael Coeffic <[email protected]>
Date:   Wed Feb 16 12:36:15 2011 +0100

use resolver instead of get_ip_from_name.

---

 apps/voicemail/AmMail.cpp       |   10 ++--------
 apps/voicemail/AmSmtpClient.cpp |   16 ++++++++++++----
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/apps/voicemail/AmMail.cpp b/apps/voicemail/AmMail.cpp
index aa8d154..6dcc49d 100644
--- a/apps/voicemail/AmMail.cpp
+++ b/apps/voicemail/AmMail.cpp
@@ -102,15 +102,9 @@ void AmMailDeamon::run()
     _run_cond.wait_for();
     sleep(5);
 
-    string server_address = 
get_ip_from_name(AnswerMachineFactory::SmtpServerAddress);
-    if(server_address.empty()){
-      WARN("Mail deamon could not resolv SMTP server address <%s>\n",
-          AnswerMachineFactory::SmtpServerAddress.c_str());
-      continue;
-    }
-
     AmSmtpClient smtp;
-    if (smtp.connect(server_address,AnswerMachineFactory::SmtpServerPort)) {
+    if (smtp.connect(AnswerMachineFactory::SmtpServerAddress,
+                    AnswerMachineFactory::SmtpServerPort)) {
            
       WARN("Mail deamon could not connect to SMTP server at <%s:%i>\n",
           server_address.c_str(),AnswerMachineFactory::SmtpServerPort);
diff --git a/apps/voicemail/AmSmtpClient.cpp b/apps/voicemail/AmSmtpClient.cpp
index 2e480d1..70d2cee 100644
--- a/apps/voicemail/AmSmtpClient.cpp
+++ b/apps/voicemail/AmSmtpClient.cpp
@@ -79,15 +79,23 @@ bool AmSmtpClient::connect(const string& _server_ip, 
unsigned short _server_port
   addr.sin_family = AF_INET;
   addr.sin_port = htons(server_port);
 
-  if(!inet_aton(server_ip.c_str(),&addr.sin_addr)){
-    ERROR("address not valid (smtp server: %s)\n",server_ip.c_str());
-    return -1;
+  {
+    sockaddr_storage _sa;
+    dns_handle       _dh;
+    
+    if(resolver::instance->resolve_name(server_ip.c_str(),
+                                       &_dh,&_sa,IPv4) < 0) {
+      ERROR("address not valid (smtp server: %s)\n",server_ip.c_str());
+      return false;
+    }
+
+    memcpy(&addr.sin_addr,&((sockaddr_in*)&_sa)->sin_addr,sizeof(in_addr));
   }
 
   sd = socket(PF_INET, SOCK_STREAM, 0);
   if(::connect(sd,(struct sockaddr *)&addr,sizeof(addr)) == -1) {
     ERROR("%s\n",strerror(errno));
-    return -1;
+    return false;
   }
     
   INFO("connected to: %s\n",server_ip.c_str());

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to