X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/161f040940ad8422dfc03fadcb3a07ccd60201df..b2c208be091670e3c5259eba77187bae6ac6eece:/modules/m_whowas.c diff --git a/modules/m_whowas.c b/modules/m_whowas.c index 6007361a..eb32ede2 100644 --- a/modules/m_whowas.c +++ b/modules/m_whowas.c @@ -64,6 +64,7 @@ m_whowas(struct Client *client_p, struct Client *source_p, int parc, const char char *p; const char *nick; char tbuf[26]; + long sendq_limit; static time_t last_used = 0L; @@ -96,12 +97,20 @@ m_whowas(struct Client *client_p, struct Client *source_p, int parc, const char nick = parv[1]; + sendq_limit = get_sendq(client_p) * 9 / 10; + temp = WHOWASHASH[hash_whowas_name(nick)]; found = 0; for (; temp; temp = temp->next) { if(!irccmp(nick, temp->name)) { + if(cur > 0 && rb_linebuf_len(&client_p->localClient->buf_sendq) > sendq_limit) + { + sendto_one(source_p, form_str(ERR_TOOMANYMATCHES), + me.name, source_p->name, "WHOWAS"); + break; + } sendto_one(source_p, form_str(RPL_WHOWASUSER), me.name, source_p->name, temp->name, temp->username, temp->hostname, temp->realname); @@ -115,6 +124,10 @@ m_whowas(struct Client *client_p, struct Client *source_p, int parc, const char form_str(RPL_WHOISACTUALLY), temp->name, temp->sockhost); #endif + if (!EmptyString(temp->suser)) + sendto_one_numeric(source_p, RPL_WHOISLOGGEDIN, + "%s %s :was logged in as", + temp->name, temp->suser); sendto_one_numeric(source_p, RPL_WHOISSERVER, form_str(RPL_WHOISSERVER), temp->name, temp->servername,