X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/e2b44358a247130f9107a9b94c6f12c8ab83fa90..c98390004f4f14cd8215302d77313f81e2546e22:/src/s_user.c diff --git a/src/s_user.c b/src/s_user.c index 91f30dd..ef413d5 100644 --- a/src/s_user.c +++ b/src/s_user.c @@ -21,7 +21,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * - * $Id: s_user.c 3414 2007-04-15 16:54:50Z jilles $ + * $Id: s_user.c 3586 2007-11-20 11:16:43Z nenolod $ */ #include "stdinc.h" @@ -147,6 +147,14 @@ int user_modes[256] = { int show_lusers(struct Client *source_p) { + if(dlink_list_length(&lclient_list) > (unsigned long)MaxClientCount) + MaxClientCount = dlink_list_length(&lclient_list); + + if((dlink_list_length(&lclient_list) + dlink_list_length(&serv_list)) > + (unsigned long)MaxConnectionCount) + MaxConnectionCount = dlink_list_length(&lclient_list) + + dlink_list_length(&serv_list); + sendto_one_numeric(source_p, RPL_LUSERCLIENT, form_str(RPL_LUSERCLIENT), (Count.total - Count.invisi), Count.invisi, dlink_list_length(&global_serv_list)); @@ -185,14 +193,6 @@ show_lusers(struct Client *source_p) MaxConnectionCount, MaxClientCount, Count.totalrestartcount); - if(dlink_list_length(&lclient_list) > (unsigned long)MaxClientCount) - MaxClientCount = dlink_list_length(&lclient_list); - - if((dlink_list_length(&lclient_list) + dlink_list_length(&serv_list)) > - (unsigned long)MaxConnectionCount) - MaxConnectionCount = dlink_list_length(&lclient_list) + - dlink_list_length(&serv_list); - return 0; } @@ -464,6 +464,8 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char "Invalid username: %s (%s@%s)", source_p->name, source_p->username, source_p->host); ServerStats->is_ref++; + sendto_one_notice(source_p, ":*** Your username is invalid. Please make sure that your username contains " + "only alphanumeric characters."); ircsprintf(tmpstr2, "Invalid username [%s]", source_p->username); exit_client(client_p, source_p, &me, tmpstr2); return (CLIENT_EXITED); @@ -528,15 +530,17 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char Count.invisi++; s_assert(!IsClient(source_p)); + del_unknown_ip(source_p); dlinkMoveNode(&source_p->localClient->tnode, &unknown_list, &lclient_list); SetClient(source_p); - /* XXX source_p->servptr is &me, since local client */ - source_p->servptr = find_server(NULL, user->server); + source_p->servptr = &me; dlinkAdd(source_p, &source_p->lnode, &source_p->servptr->serv->users); + /* Increment our total user count here */ if(++Count.total > Count.max_tot) Count.max_tot = Count.total; + source_p->localClient->allow_read = MAX_FLOOD_BURST; Count.totalrestartcount++; @@ -633,7 +637,7 @@ introduce_client(struct Client *client_p, struct Client *source_p, struct User * nick, source_p->hopcount + 1, (long) source_p->tsinfo, ubuf, source_p->username, source_p->host, - user->server, source_p->info); + source_p->servptr->name, source_p->info); } else sendto_server(client_p, NULL, NOCAPS, NOCAPS, @@ -641,7 +645,7 @@ introduce_client(struct Client *client_p, struct Client *source_p, struct User * nick, source_p->hopcount + 1, (long) source_p->tsinfo, ubuf, source_p->username, source_p->host, - user->server, source_p->info); + source_p->servptr->name, source_p->info); if (IsDynSpoof(source_p)) {