- /*
- * registration timeout -- didnt send USER/NICK/HOST
- * in the time specified in their connection class.
- */
- if (((unsigned)TIME > (unsigned)curr->timeout) && (curr->registered != 7))
- {
- log(DEBUG,"InspIRCd: registration timeout: %s",curr->nick);
- ZapThisDns(curr->fd);
- GlobalGoners.AddItem(curr,"Registration timeout");
- continue;
- }
-
- /*
- * user has signed on with USER/NICK/PASS, and dns has completed, all the modules
- * say this user is ok to proceed, fully connect them.
- */
- if ((TIME > curr->signon) && (curr->registered == 3) && (AllModulesReportReady(curr)))
- {
- curr->dns_done = true;
- ZapThisDns(curr->fd);
- ServerInstance->stats->statsDnsBad++;
- FullConnectUser(curr,&GlobalGoners);
- continue;
- }
-
- if ((fd_ref_table[cfd] != curr) && (curr))
- /* Somebody blatted this user in OnCheckReady (!) */
- continue;
-
- if ((curr->dns_done) && (curr->registered == 3) && (AllModulesReportReady(curr)))
- {
- log(DEBUG,"dns done, registered=3, and modules ready, OK");
- FullConnectUser(curr,&GlobalGoners);
- ZapThisDns(curr->fd);
- continue;
- }
-
- if ((fd_ref_table[cfd] != curr) && (curr))
- /* Somebody blatted this user in OnCheckReady (!) */
- continue;
-
- // It's time to PING this user. Send them a ping.
- if ((TIME > curr->nping) && (curr->registered == 7))
+ this->Log(DEBUG,"InspIRCd: registration timeout: %s",curr->nick);
+ //ZapThisDns(curr->fd);
+ GlobalGoners.AddItem(curr,"Registration timeout");
+ continue;
+ }
+ /*
+ * user has signed on with USER/NICK/PASS, and dns has completed, all the modules
+ * say this user is ok to proceed, fully connect them.
+ */
+ if ((TIME > curr->signon) && (curr->registered == REG_NICKUSER) && (AllModulesReportReady(curr)))
+ {
+ curr->dns_done = true;
+ //ZapThisDns(curr->fd);
+ this->stats->statsDnsBad++;
+ curr->FullConnect(&GlobalGoners);
+ continue;
+ }
+ if ((curr->dns_done) && (curr->registered == REG_NICKUSER) && (AllModulesReportReady(curr)))
+ {
+ this->Log(DEBUG,"dns done, registered=3, and modules ready, OK");
+ curr->FullConnect(&GlobalGoners);
+ //ZapThisDns(curr->fd);
+ 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)