diff options
Diffstat (limited to 'src/inspsocket.cpp')
-rw-r--r-- | src/inspsocket.cpp | 32 |
1 files changed, 10 insertions, 22 deletions
diff --git a/src/inspsocket.cpp b/src/inspsocket.cpp index 99ef731c6..f443873e5 100644 --- a/src/inspsocket.cpp +++ b/src/inspsocket.cpp @@ -32,9 +32,11 @@ extern InspIRCd* ServerInstance; extern ServerConfig* Config; extern time_t TIME; +extern Server* MyServer; InspSocket* socket_ref[MAX_DESCRIPTORS]; + InspSocket::InspSocket() { this->state = I_DISCONNECTED; @@ -101,15 +103,13 @@ InspSocket::InspSocket(const std::string &ahost, int aport, bool listening, unsi if (insp_aton(host,&addy) < 1) { - log(DEBUG,"Attempting to resolve %s",this->host); - /* Its not an ip, spawn the resolver */ - - /* TODO: Implement resolver with new Resolver class */ - - timeout_end = time(NULL) + maxtime; - timeout = false; - this->state = I_RESOLVING; - socket_ref[this->fd] = this; + log(DEBUG,"You cannot pass hostnames to InspSocket, resolve them first with Resolver!"); + this->Close(); + this->fd = -1; + this->state = I_ERROR; + this->OnError(I_ERR_RESOLVE); + this->ClosePending = true; + return; } else { @@ -147,14 +147,6 @@ void InspSocket::SetQueues(int nfd) setsockopt(nfd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf)); } -bool InspSocket::DoResolve() -{ - log(DEBUG,"In DoResolve(), trying to resolve IP"); - - log(DEBUG,"No result for socket yet!"); - return true; -} - /* Most irc servers require you to specify the ip you want to bind to. * If you dont specify an IP, they rather dumbly bind to the first IP * of the box (e.g. INADDR_ANY). In InspIRCd, we scan thought the IP @@ -399,7 +391,7 @@ bool InspSocket::Timeout(time_t current) return true; } - if (((this->state == I_RESOLVING) || (this->state == I_CONNECTING)) && (current > timeout_end)) + if ((this->state == I_CONNECTING) && (current > timeout_end)) { log(DEBUG,"Timed out, current=%lu timeout_end=%lu"); // for non-listening sockets, the timeout can occur @@ -429,10 +421,6 @@ bool InspSocket::Poll() switch (this->state) { - case I_RESOLVING: - log(DEBUG,"State = I_RESOLVING, calling DoResolve()"); - return this->DoResolve(); - break; case I_CONNECTING: log(DEBUG,"State = I_CONNECTING"); this->SetState(I_CONNECTED); |