use resolver instead of get_ip_from_name.

sayer/1.4-spce2.6
Raphael Coeffic 15 years ago
parent e33dd5bd7e
commit 3a6d778305

@ -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);

@ -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());

Loading…
Cancel
Save