-
- /*
- * `ready` means that the user has provided NICK/USER(/PASS), and all modules agree
- * that the user is okay to proceed. The one thing we are then waiting for now is DNS...
- */
- bool ready = ((curr->registered == REG_NICKUSER) && AllModulesReportReady(curr));
-
- if (ready)
- {
- if (curr->dns_done)
- {
- /* DNS passed, connect the user */
- curr->FullConnect();
- continue;
- }
- }
-
- // It's time to PING this user. Send them a ping.
- if ((TIME > curr->nping) && (curr->registered == REG_ALL))
- {
- // This user didn't answer the last ping, remove them
- if (!curr->lastping)
- {
- time_t time = this->Time(false) - (curr->nping - curr->MyClass->GetPingTime());
- char message[MAXBUF];
- snprintf(message, MAXBUF, "Ping timeout: %ld second%s", (long)time, time > 1 ? "s" : "");
- curr->muted = true;
- curr->lastping = 1;
- curr->nping = TIME + curr->MyClass->GetPingTime();
- User::QuitUser(this, curr, message);
- continue;
- }
- curr->Write("PING :%s",this->Config->ServerName);
- curr->lastping = 0;
- curr->nping = TIME +curr->MyClass->GetPingTime();
- }