eggheads / eggdrop

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

Add support for network-autoconfigure using RAW 005 #3

Closed thommey closed 4 years ago

thommey commented 14 years ago
Trac Data
Ticket 3
Reported by De Kus
Status assigned
Component Core
Priority blocker
Milestone 1.8.0
Keywords 005 isupport
Version 1.8.0 CVS

This actually also involves irc.mod.

I have seen user to struggle with finding the optimum settings and it was often necessary to patch modes.c and server.c to support new modes. I believe I read somewhere it was unreliable, but everywhere I connected and checked the settings, they were pretty much correct. You can learn very much from these strings. And if you believe some server versions might screw up you have 2 options: user overrides settings in eggdrop.conf, an exception is handled parsing RAW 004 which contains the server version.

Here are a few examples I collected together for a few server version I believe to be popular, so you don't have to research on your own. The server version in () are taken from RAW 004 code. I hope rizons Hybrid patch isn't mature, I haven't found another server running it atm.. I used PuTTY in RAW protocol as client to be sure to receive raw data:

Unreal (Unreal3.2.6): :irc.cultvehicles.net 005 De_Kus2 CMDS=KNOCK,MAP,DCCALLOW,USERIP NAMESX SAFELISTHCN MAXCHANNELS=20 CHANLIMIT=#:20 MAXLIST=b:100,e:100,I:100 NICKLEN=20 CHANNELLEN=32 TOPICLEN=307 KICKLEN=307 AWAYLEN=307 MAXTARGETS=20 :are supported by this server :irc.cultvehicles.net 005 De_Kus2 WALLCHOPS WATCH=128 SILENCE=30 MODES=12 CHANTYPES=# PREFIX=(qaohv)~&@%+ CHANMODES=beI,kfL,lj,psmntirRcOAQKVCuzNSMTG NETWORK=CultvehitlcesIRC CASEMAPPING=ascii EXTBAN=~,cqnr ELIST=MNUCT STATUSMSG=~&@%+ EXCEPTS :are supported by this server :irc.cultvehicles.net 005 De_Kus2 INVEX :are supported by this server

Asuka (u2.10.11.07+asuka(1.2.1)): :port80b.se.quakenet.org 005 DeKus WHOX WALLCHOPS WALLVOICES USERIP CPRIVMSG CNOTICE SILENCE=15 MODES=6 MAXCHANNELS=20 MAXBANS=45 NICKLEN=15 MAXNICKLEN=15 :are supported by this server :port80b.se.quakenet.org 005 DeKus TOPICLEN=250 AWAYLEN=160 KICKLEN=250 CHANTYPES=#& PREFIX=(ov)@+ CHANMODES=b,k,l,imnpstrDdcCNu CASEMAPPING=rfc1459 NETWORK=QuakeNet :are supported by this server

Hyperion (hyperion-1.0.2b): :niven.freenode.net 005 De_Kus IRCD=dancer CAPAB CHANTYPES=# EXCEPTS INVEX CHANMODES=bdeIq,k,lfJD,cgijLmnPQrRstz CHANLIMIT=#:20 PREFIX=(ov)@+ MAXLIST=bdeI:50 MODES=4 STATUSMSG=@ KNOCK NICKLEN=16 :are supported by this server :niven.freenode.net 005 De_Kus SAFELIST CASEMAPPING=ascii CHANNELLEN=30 TOPICLEN=450 KICKLEN=450 KEYLEN=23 USERLEN=10 HOSTLEN=63 SILENCE=50 :are supported by this server

Bahamut (bahamut-1.8(04)) :broadway.ny.us.dal.net 005 De_Kus NETWORK=DALnet SAFELIST MAXBANS=200 MAXCHANNELS=20 CHANNELLEN=32 KICKLEN=307 NICKLEN=30 TOPICLEN=307 MODES=6 CHANTYPES=# CHANLIMIT=#:20 PREFIX=(ov)@+ STATUSMSG=@+ :are available on this server :broadway.ny.us.dal.net 005 De_Kus CASEMAPPING=ascii WATCH=128 SILENCE=10 ELIST=cmntu EXCEPTS INVEX CHANMODES=beI,k,jl,cimMnOprRst MAXLIST=b:200,e:100,I:100 TARGMAX=DCCALLOW:,JOIN:,KICK:4,KILL:20,NOTICE:20,PART:,PRIVMSG:20,WHOIS:,WHOWAS: :are available on this server

Hybrid (hybrid-7.2.2+plexus-3.0.0(20061228_0-465)): :irc.rizon.ca 005 De_Kus CALLERID CASEMAPPING=rfc1459 DEAF=D KICKLEN=160 MODES=4 NICKLEN=30 TOPICLEN=390 PREFIX=(qaohv)~&@%+ STATUSMSG=~&@%+ NETWORK=Rizon MAXLIST=beI:100 MAXTARGETS=4 CHANTYPES=# :are supported by this server :irc.rizon.ca 005 De_Kus CHANLIMIT=#:25 CHANNELLEN=50 CHANMODES=eIb,k,l,BMNORScimnpst AWAYLEN=160 KNOCK ELIST=CMNTU SAFELIST NAMESX FNC EXCEPTS=e INVEX=I :are supported by this server

IRCu (u2.10.12.pre09): :Lelystad.NL.EU.UnderNet.Org 005 De_Kus WHOX WALLCHOPS WALLVOICES USERIP CPRIVMSG CNOTICE SILENCE=15 MODES=6 MAXCHANNELS=20 MAXBANS=45 NICKLEN=12 MAXNICKLEN=15 TOPICLEN=160 AWAYLEN=160 KICKLEN=160 CHANNELLEN=200 MAXCHANNELLEN=200 :are supported by this server :Lelystad.NL.EU.UnderNet.Org 005 De_Kus CHANTYPES=#& PREFIX=(ov)@+ STATUSMSG=@+ CHANMODES=b,k,l,imnpstrDd CASEMAPPING=rfc1459 NETWORK=UnderNet :are supported by this server

IRC (2.11.1p1): :Uni-Erlangen.DE 005 De_Kus RFC2812 PREFIX=(ov)@+ CHANTYPES=#&!+ MODES=3 CHANLIMIT=#&!+:21 NICKLEN=15 TOPICLEN=160 KICKLEN=160 MAXLIST=beIR:42 CHANNELLEN=50 IDCHAN=!:5 CHANMODES=beIR,k,l,imnpstaqr :are supported by this server :Uni-Erlangen.DE 005 De_Kus PENALTY FNC EXCEPTS=e INVEX=I CASEMAPPING=ascii NETWORK=IRCnet :are supported by this server

thommey commented 13 years ago

Comment by @Robby- Please do make this configurable (enable/disable) though, as in some IRCd server software the info in raw 005 is not totally reliable. I'm on such a server (inspircd 1.2.8) which for example has MODES=2 and yet I can set 4 modes at a time, also MAXBANS=60 and yet I can set up to 1000+ (really, I tested it). So, the info in there is actually not so reliable unfortunately, and so the need/possibility to set the individual settings (like it's possible now) should continue to exist.

thommey commented 13 years ago

Comment by @thommey I'm shocked but not entirely surprised such a misconfigured network/ircd exists. You should hunt down the adminstrators of it and yell at them 24/7 if it in fact behaves as you described. It's planned to give options to override raw005 information on a keyword basis, so you could tell eggdrop that it's really MODES=4 and BANLIST=1000. It's not planned to make it possible to disable that feature as a whole though, because it's intended to get rid of config variables.

thommey commented 13 years ago

Comment by @Robby- This is not really misconfiguration, I'm an IRC operator there and have close contact with the administrators. This seems to be a bug in the ircd itself, hence me saying that the info in RAW 005 isn't totally reliable. Good to know it will be possible to override that. :)

thommey commented 13 years ago

Comment by pseudo It has to be reliable. Hunt down the developers of this software and make them fix it. Providing incorrect information in 005 is terrible.

ghost commented 6 years ago

just to record-keep unreal says it can handle 20 modes; it only allows 12 modes before breaking. :(

michaelortmann commented 5 years ago

When we implement 005, we don't have to support everything from the start. We could start with NICKLEN, and then step by step, and get rid of net-type setting in eggdrop.conf soon or leave it as fallback. We should by default trust the server, and if any issues come up, we can built a workaround-table into eggdrop which can then easily be extended / filled. But let's please get startet with implementing 005.