Ensure AWAY pacing only affects local clients.

This commit is contained in:
William Pitcock 2012-02-21 21:09:33 -06:00
parent 63a0ed0604
commit dc0fd46236

View file

@ -94,19 +94,22 @@ m_away(struct Client *client_p, struct Client *source_p, int parc, const char *p
} }
/* Rate limit this because it is sent to common channels. */ /* Rate limit this because it is sent to common channels. */
if(!IsOper(source_p) && if (MyClient(source_p))
source_p->localClient->next_away > rb_current_time())
{ {
sendto_one(source_p, form_str(RPL_LOAD2HI), if(!IsOper(source_p) &&
me.name, source_p->name, "AWAY"); source_p->localClient->next_away > rb_current_time())
return; {
sendto_one(source_p, form_str(RPL_LOAD2HI),
me.name, source_p->name, "AWAY");
return;
}
if(source_p->localClient->next_away < rb_current_time() -
ConfigFileEntry.away_interval)
source_p->localClient->next_away = rb_current_time();
else
source_p->localClient->next_away = rb_current_time() +
ConfigFileEntry.away_interval;
} }
if(source_p->localClient->next_away < rb_current_time() -
ConfigFileEntry.away_interval)
source_p->localClient->next_away = rb_current_time();
else
source_p->localClient->next_away = rb_current_time() +
ConfigFileEntry.away_interval;
if(source_p->user->away == NULL) if(source_p->user->away == NULL)
allocate_away(source_p); allocate_away(source_p);
@ -123,10 +126,9 @@ m_away(struct Client *client_p, struct Client *source_p, int parc, const char *p
source_p->host, source_p->host,
source_p->user->away); source_p->user->away);
} }
if(MyConnect(source_p)) if(MyConnect(source_p))
sendto_one_numeric(source_p, RPL_NOWAWAY, form_str(RPL_NOWAWAY)); sendto_one_numeric(source_p, RPL_NOWAWAY, form_str(RPL_NOWAWAY));
return 0; return 0;
} }