summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-01 15:41:20 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-01 15:41:20 +0000
commit3a3a73bce3d83aaa07f250e507f831450581459a (patch)
treee5cc4b6459fd2f2389d8b54c683380e14274ebfd
parente505d47dc80f1eb302167c12618b170fcc0fd90c (diff)
Fix broken inet_pton call
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4616 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/dns.cpp17
-rw-r--r--src/inspsocket.cpp6
-rw-r--r--src/socket.cpp5
3 files changed, 19 insertions, 9 deletions
diff --git a/src/dns.cpp b/src/dns.cpp
index 177d76890..eee1e0234 100644
--- a/src/dns.cpp
+++ b/src/dns.cpp
@@ -203,8 +203,11 @@ void DNS::dns_init()
i++;
if (i4 < 8)
{
- if (insp_aton(&buf[i],&addr) == 0)
+ if (insp_aton(&buf[i],&addr) > 0)
+ {
+ log(DEBUG,"Add server %d, %s",i4,&buf[i]);
memcpy(&servers[i4++],&addr,sizeof(insp_inaddr));
+ }
}
}
}
@@ -213,12 +216,18 @@ void DNS::dns_init()
void DNS::dns_init_2(const char* dnsserver)
{
+ log(DEBUG,"*************** DNS INIT 2 **************");
insp_inaddr addr;
i4 = 0;
srand((unsigned int) TIME);
memset(servers,'\0',sizeof(insp_inaddr) * 8);
- if (insp_aton(dnsserver,&addr) == 0)
- memcpy(&servers[i4++],&addr,sizeof(insp_inaddr));
+ log(DEBUG,"ADD DNS: %s",dnsserver);
+ if (insp_aton(dnsserver,&addr) > 0)
+ {
+ unsigned char* n = (unsigned char*)&addr;
+ log(DEBUG,"***** Add server %d, %s: %d, %d, %d, %d",i4,dnsserver,n[0],n[1],n[2],n[3]);
+ memcpy(&servers[i4++],&addr,sizeof(insp_inaddr));
+ }
}
@@ -711,7 +720,7 @@ bool DNS::ReverseLookup(const std::string &ip, bool ins)
if (ServerInstance && ServerInstance->stats)
ServerInstance->stats->statsDns++;
insp_inaddr binip;
- if (insp_aton(ip.c_str(), &binip) < 0)
+ if (insp_aton(ip.c_str(), &binip) < 1)
{
return false;
}
diff --git a/src/inspsocket.cpp b/src/inspsocket.cpp
index 20cde3a1a..d6b836c4d 100644
--- a/src/inspsocket.cpp
+++ b/src/inspsocket.cpp
@@ -99,7 +99,7 @@ InspSocket::InspSocket(const std::string &ahost, int aport, bool listening, unsi
strlcpy(this->host,ahost.c_str(),MAXBUF);
this->port = aport;
- if (insp_aton(host,&addy) < 0)
+ if (insp_aton(host,&addy) < 1)
{
log(DEBUG,"Attempting to resolve %s",this->host);
/* Its not an ip, spawn the resolver */
@@ -200,7 +200,7 @@ bool InspSocket::BindAddr()
insp_sockaddr s;
char resolved_addr[MAXBUF];
- if (insp_aton(IP.c_str(),&n) < 0)
+ if (insp_aton(IP.c_str(),&n) < 1)
{
/* If they gave a hostname, bind to the IP it resolves to */
log(DEBUG,"Resolving host %s",IP.c_str());
@@ -211,7 +211,7 @@ bool InspSocket::BindAddr()
}
}
- if (insp_aton(IP.c_str(),&n) == 0)
+ if (insp_aton(IP.c_str(),&n) > 0)
{
log(DEBUG,"Found an IP to bind to: %s",IP.c_str());
#ifdef IPV6
diff --git a/src/socket.cpp b/src/socket.cpp
index e4c48dd0c..ff460c473 100644
--- a/src/socket.cpp
+++ b/src/socket.cpp
@@ -44,7 +44,7 @@ bool BindSocket(int sockfd, insp_sockaddr client, insp_sockaddr server, int port
if (*addr == '*')
*addr = 0;
- if (*addr && (insp_aton(addr,&addy) < 0))
+ if (*addr && (insp_aton(addr,&addy) < 1))
{
/* If they gave a hostname, bind to the IP it resolves to */
if (CleanAndResolve(resolved_addr, addr, true, 1))
@@ -278,5 +278,6 @@ const char* insp_ntoa(insp_inaddr n)
int insp_aton(const char* a, insp_inaddr* n)
{
- return inet_pton(AF_FAMILY, a, &n);
+ return inet_pton(AF_FAMILY, a, n);
}
+