James Lu
d5eb01b724
protocols: move handle_pong into ircs2s_common, be less strict about the ping argument
...
This fixes issues on UnrealIRCd where PONGs get ignored if the argument doesn't match the server name entirely (e.g. different case).
Treating all PONGs from the uplink as valid is totally fine, as all we care about is that the uplink is alive.
(cherry picked from commit 38350465c1
)
2017-01-01 20:28:26 -08:00
James Lu
194a62fcea
protocols: implement basic nick collision detection in UID handlers
...
Closes #285 . Closes #375 .
2016-12-18 00:13:42 -08:00
James Lu
8589feaedf
protocols: fix incomplete renames from c5c77eeb97
2016-09-12 20:16:56 -07:00
James Lu
c5c77eeb97
protocols: chandata->channeldata for MODE and JOIN hooks
2016-09-02 17:52:19 -07:00
James Lu
ae94bec6b8
protocols: add a chandata key to SJOIN hook payloads
2016-08-27 18:56:36 -07:00
James Lu
3c7b201f57
protocols: rename 'oldchan' in MODE payloads to 'chandata'
2016-08-27 17:46:35 -07:00
James Lu
c20dd07a2d
inspircd: implement /ALLTIME support ( #228 )
2016-08-12 19:36:40 -07:00
James Lu
8ac014709b
inspircd: track MODSUPPORT and required modules for updateClient()
...
m_chgident.so, m_chghost.so, and m_chgname.so are required for ident, host, and real name setting to work, respectively.
2016-08-08 23:40:48 -07:00
James Lu
c36c32082f
inspircd: support SAKICK
2016-07-28 21:05:59 -07:00
James Lu
eef54cd77d
classes: Move ISUPPORT-style PREFIX and capabilities handling to Protocol
2016-07-20 23:59:22 -07:00
James Lu
21d03e7b69
protocols: implement SVSNICK hooks for InspIRCd, Charybdis, UnrealIRCd ( #269 )
...
More testing still needs to be done with this on Nefarious, as atheme (what I'm testing against) doesn't use P10 SVSNICK yet.
2016-07-11 23:21:08 -07:00
James Lu
84452bec2e
inspircd: always make PyLink handle WHOIS ( closes #267 )
...
This removes the use_experimental_whois option, which is always enabled now.
The rationale behind this is that PyLink cannot accurately track signon and idle times for things like relay users, without forwarding WHOIS requests between servers in a way the hooks system is really not optimized to do. However, no IDLE response means that no WHOIS data is ever sent back to the calling user, so this workaround is probably the best solution, aside from faking values.
2016-07-10 22:08:56 -07:00
James Lu
c1cd6f42a0
updateTS: Fix mode tracking again
...
It looks like we actually do need to track whether we're sending or receiving modes. This time, do so /properly/.
2016-07-10 21:36:18 -07:00
James Lu
7d321e2e6c
inspircd: only send services_login hooks if the user exists
...
With SASL, services_login can be called before the user is registered. We should ignore that because the actual accountname is still bursted later.
2016-07-08 12:08:13 -07:00
James Lu
3b80802d1a
protocols: rewrite encapsulated commands implicitly
...
Closes #182 .
2016-07-05 13:27:31 -07:00
James Lu
d549e2ae47
protocols: format kills properly in ts6_common.handle_kill() ( #239 )
...
This separates the kill handling for InspIRCd and other TS6 protocols, as InspIRCd pre-formats kills when they are sent.
2016-07-05 00:08:02 -07:00
James Lu
6c8731a55a
inspircd: refactor opertype handling and opertypes for Services
...
This gives all protected service clients with +k a special "Network Service" opertype.
2016-07-01 21:03:10 -07:00
James Lu
f458a40e1c
inspircd: new use_experimental_whois option, which forces PyLink to handle WHOIS requests locally
2016-06-27 22:28:37 -07:00
James Lu
57afa806e3
inspircd: implement raw numeric sending
2016-06-27 22:28:00 -07:00
James Lu
fbeb3a3747
protocols: fix ts actually defaulting to None in sjoin()
2016-06-25 13:56:24 -07:00
James Lu
167963ddc4
updateTS: fix handling for outbound modes
...
Outgoing and incoming modes should be handled the same way - we're only dealing with a "received TS" which could originate from PyLink (sjoin() in protocols) OR the uplink.
2016-06-24 13:24:44 -07:00
James Lu
77e13bce03
inspircd: fix logic for tracking existing bans in sjoin()
2016-06-23 22:36:22 -07:00
James Lu
f2b139c828
core: make inbound SJOINs also respect the updateTS() rules
2016-06-22 22:28:15 -07:00
James Lu
6b8e80cd5b
core/protocols: add modes option in sjoin(), TS6 BMASK, and mode TS rules in updateTS()
...
Closes #249 .
Closes #250 .
2016-06-22 21:34:16 -07:00
James Lu
481d70eff8
New import paths for properly installed pylinkirc
2016-06-20 18:18:54 -07:00
James Lu
ae87def11f
Purge c_ and u_ prefixes from named modes
...
Closes #217 .
2016-05-15 11:05:02 -07:00
James Lu
beae4eea9e
core: rename utils.fullVersion -> irc.version ( #199 )
2016-04-30 17:00:28 -07:00
James Lu
3bb1208e74
core: move toLower to Irc ( #199 )
2016-04-30 16:57:38 -07:00
James Lu
78f8a2fc8d
core: move isManipulatableClient, getHostmask to Irc
2016-04-30 16:44:37 -07:00
James Lu
064cb9b6aa
core: move reverseModes, joinModes into Irc
2016-04-30 16:33:46 -07:00
James Lu
05752d9f60
Merge branch 'master' into devel
2016-04-29 23:43:15 -07:00
James Lu
01bf0325fb
inspircd: fix wrong variable in KILL text
2016-04-29 23:43:03 -07:00
James Lu
a8fc9428cf
protocols: migrate to irc.parseModes/applyModes ( #199 )
2016-04-24 21:44:31 -07:00
James Lu
40a86de040
protocols: reword spawnClient description text
2016-04-24 21:17:56 -07:00
James Lu
f8c2ee3ed3
protocols: use KeyedDefaultdict to enumerate UID generators
2016-04-24 21:16:41 -07:00
James Lu
2c60aa6395
Separate UID/SID generators into various protocol modules ( #199 )
2016-04-24 21:08:07 -07:00
James Lu
38e098aef4
inspircd: normalize chmode +r name
...
This should be "registered", not "c_registered" in order to be consistent with other protocols.
2016-04-09 18:25:17 -07:00
James Lu
1e3aba2cce
protocols: simplify super() syntax
2016-04-05 18:37:09 -07:00
James Lu
f620b5b4e8
protocols: initialize sidgen/uidgen in ts6_common
2016-04-05 18:34:54 -07:00
James Lu
662d1ce03f
inspircd: warn that inspircd 2.2 support is experimental
2016-03-26 18:19:19 -07:00
James Lu
d5d3c2422b
inspircd: define minimum & target protocol versions instead of hardcoding them
2016-03-26 16:23:22 -07:00
James Lu
44083ccd5e
core: Store opertype info in all IrcUser objects
...
This allows plugins to define custom opertypes for their clients, and still have them show in WHOIS queries.
2016-03-26 12:55:23 -07:00
James Lu
f618b96b34
inspircd: add VERSION handling
...
InspIRCd is different from the rest in that it stores and caches version data for other servers during BURST, instead of whenever it is requested by a client.
2016-03-26 11:35:29 -07:00
James Lu
23056e97e3
protocols & coreplugin: add handlers for VERSION requests
2016-03-26 11:27:07 -07:00
James Lu
d531201850
Merge branch 'master' into devel
2016-02-27 17:47:55 -08:00
James Lu
a7a98c9a52
inspircd: format kill reasons like "Killed (sourcenick (reason))"
...
InspIRCd will show the raw kill message sent from servers as the quit message.
So, make kills look actually like a kill instead of someone quitting with an arbitrary message.
2016-02-26 07:16:39 -08:00
James Lu
cabdb11f86
inspircd: implement services account tracking ( #25 )
2016-02-20 17:54:46 -08:00
James Lu
341c208513
inspircd, ts6: don't crash when receiving an unrecognized UID
2016-01-27 18:41:25 -08:00
James Lu
06d22722dc
protocols: parse modes on the TARGET, not the sender
...
This fixes crashes on AssertionError when the sender of a MODE is a server.
2016-01-19 21:23:07 -08:00
James Lu
bb9d87bdca
inspircd: split protocol negotiation handlers into separate functions ( #156 )
...
Use the generic handle_events in ts6_common, which passes everything to event handlers appropriately.
2016-01-17 21:03:10 -08:00