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
