grim/pidgin

Use the leaky bucket algorithm to rate limit irc messages.
draft 2.x.y-irc-rate-limiting
2021-02-24, Gary Kramlich
5bbd0f3a7d4f
Use the leaky bucket algorithm to rate limit irc messages.

The default values were suggested by an operator of freenode.

We don't rate limit the login process, nor parts and quits. However, if you
paste a bunch of text and then part a channel, you will be spammed with a
bunch of "no such nick/channel" error dialogs. I tried to work around this,
but the alternative just makes irc unresponsive until all the pasted messages
are sent. That said, other messages are still delayed while these errors
dialogs are slowly popping up.
/** @page core-signals Core Signals
@signals
@signal quitting
@signal uri-handler
@endsignals
@see core.h
<hr>
@signaldef quitting
@signalproto
void (*quitting)();
@endsignalproto
@signaldesc
Emitted when libpurple is quitting.
@endsignaldef
@signaldef uri-handler
@signalproto
gboolean (*uri_handler)(const gchar *proto, const gchar *cmd, GHashTable *params);
@endsignalproto
@signaldesc
Emitted when handling a registered URI.
@param proto The protocol of the URI.
@param cmd The 'command' of the URI.
@param params Any key/value parameters from the URI.
@endsignaldef
*/
// vim: syntax=c.doxygen tw=75 et