mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-01 09:19:23 +01:00
inspircd: warn when using InspIRCd 2 compat mode on an InspIRCd 3 uplink
Some commands like KICK are not mangled correctly in this mode.
This commit is contained in:
parent
dadf2c3211
commit
594b7124ff
@ -76,7 +76,7 @@ These IRCds (in alphabetical order) are frequently tested and well supported. If
|
|||||||
* [charybdis](https://github.com/charybdis-ircd/charybdis) (3.5+) - module `ts6`
|
* [charybdis](https://github.com/charybdis-ircd/charybdis) (3.5+) - module `ts6`
|
||||||
- For KLINE support to work, a `shared{}` block should be added for PyLink on all servers.
|
- For KLINE support to work, a `shared{}` block should be added for PyLink on all servers.
|
||||||
* [InspIRCd](http://www.inspircd.org/) 2.0 - 3.x - module `inspircd`
|
* [InspIRCd](http://www.inspircd.org/) 2.0 - 3.x - module `inspircd`
|
||||||
Set the `target_version` option to `insp3` to target InspIRCd 3.x, or `insp20` to target InspIRCd 2.0 (currently the default).
|
- Set the `target_version` option to `insp3` to target InspIRCd 3.x, or `insp20` to target InspIRCd 2.0 (currently the default).
|
||||||
- For vHost setting to work, `m_chghost.so` must be loaded. For ident and realname changing support, `m_chgident.so` and `m_chgname.so` must be loaded respectively.
|
- For vHost setting to work, `m_chghost.so` must be loaded. For ident and realname changing support, `m_chgident.so` and `m_chgname.so` must be loaded respectively.
|
||||||
- Supported channel, user, and prefix modes are negotiated on connect, but hotloading modules that change these is not supported. After changing module configuration, it is recommended to SQUIT PyLink to force a protocol renegotiation.
|
- Supported channel, user, and prefix modes are negotiated on connect, but hotloading modules that change these is not supported. After changing module configuration, it is recommended to SQUIT PyLink to force a protocol renegotiation.
|
||||||
* [Nefarious IRCu](https://github.com/evilnet/nefarious2) (2.0.0+) - module `p10`
|
* [Nefarious IRCu](https://github.com/evilnet/nefarious2) (2.0.0+) - module `p10`
|
||||||
|
@ -491,8 +491,8 @@ class InspIRCdProtocol(TS6BaseProtocol):
|
|||||||
Handles the CAPAB command, used for capability negotiation with our
|
Handles the CAPAB command, used for capability negotiation with our
|
||||||
uplink.
|
uplink.
|
||||||
"""
|
"""
|
||||||
# 6 CAPAB commands are usually sent on connect: CAPAB START, MODULES,
|
# 5 CAPAB subcommands are usually sent on connect (excluding START and END):
|
||||||
# MODSUPPORT, CHANMODES, USERMODES, and CAPABILITIES.
|
# CAPAB MODULES, MODSUPPORT, CHANMODES, USERMODES, and CAPABILITIES
|
||||||
# We check just about everything except MODULES
|
# We check just about everything except MODULES
|
||||||
|
|
||||||
if args[0] == 'START':
|
if args[0] == 'START':
|
||||||
@ -503,6 +503,7 @@ class InspIRCdProtocol(TS6BaseProtocol):
|
|||||||
# <- CAPAB START 1205
|
# <- CAPAB START 1205
|
||||||
self.remote_proto_ver = protocol_version = int(args[1])
|
self.remote_proto_ver = protocol_version = int(args[1])
|
||||||
|
|
||||||
|
log.debug("(%s) handle_capab: got remote protocol version %s", self.name, protocol_version)
|
||||||
if protocol_version < self.proto_ver:
|
if protocol_version < self.proto_ver:
|
||||||
raise ProtocolError("Remote protocol version is too old! "
|
raise ProtocolError("Remote protocol version is too old! "
|
||||||
"At least %s is needed. (got %s)" %
|
"At least %s is needed. (got %s)" %
|
||||||
@ -512,11 +513,11 @@ class InspIRCdProtocol(TS6BaseProtocol):
|
|||||||
"and should not be relied upon for anything important.",
|
"and should not be relied upon for anything important.",
|
||||||
self.name)
|
self.name)
|
||||||
elif protocol_version >= 1205 > self.proto_ver:
|
elif protocol_version >= 1205 > self.proto_ver:
|
||||||
log.info("(%s) PyLink 2.1 introduces native support for InspIRCd 3.0. "
|
log.warning("(%s) PyLink 2.1 introduces native support for InspIRCd 3. "
|
||||||
"You can enable this by setting the 'target_version' option in your "
|
"You should enable this by setting the 'target_version' option in your "
|
||||||
"InspIRCd server block to 'insp3'.", self.name)
|
"InspIRCd server block to 'insp3'. Otherwise, some features will not "
|
||||||
log.info("(%s) Falling back to InspIRCd 2.0 (compatibility) mode.", self.name)
|
"work correctly!", self.name)
|
||||||
log.debug("(%s) inspircd: got remote protocol version %s", self.name, protocol_version)
|
log.warning("(%s) Falling back to InspIRCd 2.0 (compatibility) mode.", self.name)
|
||||||
|
|
||||||
if self.proto_ver >= 1205:
|
if self.proto_ver >= 1205:
|
||||||
# Clear mode lists, they will be negotiated during burst
|
# Clear mode lists, they will be negotiated during burst
|
||||||
|
Loading…
Reference in New Issue
Block a user