Closed thommey closed 4 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.
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.
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. :)
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.
just to record-keep unreal says it can handle 20 modes; it only allows 12 modes before breaking. :(
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.
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