eggheads / eggdrop

The Eggdrop IRC Bot
GNU General Public License v2.0
501 stars 84 forks source link

Undocumented config settings use-fastdeq, stackable-commands, stackable2-commands, stack-limit #692

Open michaelortmann opened 5 years ago

michaelortmann commented 5 years ago

There is a config setting named use-fastdeq (server mod).

The help for the server module displays it:

.help server module
[09:46:47] #-HQ# help server module
###  server module
   This module provides the core server support. You have to load this if you
   want your bot to come on IRC.

   The following commands are provided by the server module:

   For channel ops:
      servers

   For global masters:
      jump         dump

   Config file variables for configuring the server module:
      nick-len        server-timeout      lowercase-ctcp
      msg-rate        keep-nick           check-stoned
      serverror-quit  max-queue-msg       trigger-on-ignore
      answer-ctcp     server-cycle-wait   default-port
      check-mode-r    ctcp-mode           use-penalties
      double-server   double-mode         double-help
      use-fastdeq     stack-limit         optimize-kicks
      exclusive-binds
   (Use '.help set <variable>' for more info)

But apart from that help text, there is no documentation and nothing in eggdrop.conf.

When i look into server.c, i see its automatically set to some value depending on net-type.

(I found this while analyzing how to avoid DP_MODE queue throttling for fast SASL)

Please can someone document this setting? Thank you!

Some more raw info, dont know if it helps: use-fastdeq = 0 seems to disable all fastdeq functionality, whatever exactly that is use-fastdeq = 2 or 3 is set for some net-types and seem to enable (mode) stacking use-fastdeq = 1 is more than undocumented, what exactly does it? it certainly has effects.

michaelortmann commented 3 years ago

Additional Info:

There are 2 undocumented settings related (used by) to use-fastdeq:

stackable-commands
stackable2-commands

First i thought those 2 settings would be a whitelist and a blacklist, but that is maybe not the case, or there is a bug, because for 1 net-type eggdrop does:

simple_sprintf(stackablecmds,                                                
"PRIVMSG NOTICE PART WHOIS WHOWAS USERHOST ISON WATCH DCCALLOW");
simple_sprintf(stackable2cmds, "USERHOST ISON WATCH");   

providing USERHOST ISON WATCH to both lists.

stack-limit is another related setting. this one is mentioned in server module help, but apart from mentioning it, its also undocumented.

Additional info:

http://lists.eggheads.org/pipermail/eggdev/1999-October/002908.html

http://lists.eggheads.org/pipermail/changes/2001-August/000354.html

michaelortmann commented 3 years ago

Actually here is some doc and settings to use / build our doc upon:

http://johoho.eggheads.org/eggdrop/files/sources/eggdrop1.7/nettype/custom.server.conf

see also the whole directory:

http://johoho.eggheads.org/eggdrop/files/sources/eggdrop1.7/nettype/

michaelortmann commented 3 years ago

Now we have 005 support, and there is TARGMAX, https://modern.ircdocs.horse/#targmax-parameter

so why not transform the old stackhandling into TARGMAX handling. with alternative / fallback to net-type / eggdrop.conf defined values.

michaelortmann commented 3 years ago

while at it, consolidate #805 into this targmax Issue.

In the end i would like to have suppoort for:

  1. TARGMAX, 2. MAXTARGETS, 3. user defined settings per net-type / manual override.