3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-26 04:32:51 +01:00
Commit Graph

555 Commits

Author SHA1 Message Date
James Lu
bced9506c3 ts6: add RSFNC to supported caps 2016-07-11 23:29:44 -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
7c1a80708b unreal: demote mode bounce notices to DEBUG 2016-07-11 16:37:01 -07:00
James Lu
64dd7e9387 unreal: fix server name of the uplink not being saved
Closes #268.
2016-07-11 16:20:10 -07:00
James Lu
c04f9d1879 protocols: move handlers for AWAY, VERSION, WHOIS, and QUIT to ircs2s_common 2016-07-11 16:08:46 -07:00
James Lu
d91589c4da protocols: move handle_whois to ts6_common 2016-07-11 16:00: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
fa59e2bded ts6_common: force nick TS to 100 in SAVE 2016-07-10 21:20:47 -07:00
James Lu
a06b478a2e ts6_common: update nick TS on SAVE as well (#267) 2016-07-10 21:14:12 -07:00
James Lu
16b162ffbe protocols: update nick TS on nick change (#267) 2016-07-10 21:10:57 -07:00
James Lu
ade0fa707e nefarious: fix wrong variable in last commit 2016-07-10 21:01:01 -07:00
James Lu
8b04a51daf nefarious: only send EOB_ACK to uplink
Closes #266.
2016-07-10 20:37:21 -07:00
James Lu
1675c43841 ts6: the @cooper fix
Validate that incoming TS is valid, because bad user timestamps like 0 will cause InspIRCd networks to SQUIT if forwarded over Relay.
2016-07-10 20:37:07 -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
e0f050c195 Irc: add getFriendlyName() abstraction
Closes #260.
2016-07-06 22:30:21 -07:00
James Lu
3b80802d1a protocols: rewrite encapsulated commands implicitly
Closes #182.
2016-07-05 13:27:31 -07:00
James Lu
ed6293e54a nefarious: define access_sort() as a static method 2016-07-05 00:42:17 -07:00
James Lu
5ef135d888 nefarious: use handle_kill (with kill path support) from ircs2s_common
Ref #239.
2016-07-05 00:31:24 -07:00
James Lu
bfa69815b4 protocols: split things common between nefarious and ts6_common into a new ircs2s_common module 2016-07-05 00:24:23 -07:00
James Lu
26f4a9c276 nefarious: fix 'changedmodes' type inconsistency causing crashes 2016-07-05 00:13:33 -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
3457da16bd protocols: Move kill() into ts6_common, and make unreal.py use it
Ref #239. protocols/unreal was hardcoding a killpath, lazy me...
2016-07-04 23:43:11 -07:00
James Lu
d0b7d44f1a ts6: implement kill paths in outgoing KILL (#239) 2016-07-04 23:43:11 -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
55e0da96c3 Merge remote-tracking branch 'origin/master' into devel 2016-07-01 20:42:46 -07:00
James Lu
fde7860fc7 ts6: fix wrong args in TB handling
I'm not sure where I got that example from. It's wrong.
2016-07-01 19:45:13 -07:00
James Lu
e8ecc1c775 ts6: 10 modes per line, not 9
I must've made it shorter just to be safe, but that isn't necessary.
2016-06-27 23:40:58 -07:00
James Lu
982e7c43f2 ts6: cut off BMASK at 12 args per line to prevent message cutoff
Ref #253.
2016-06-27 23:35:56 -07:00
James Lu
12f1cce6a9 ts6: 12 users max are allowed in each SJOIN message, not 10 2016-06-27 23:13:39 -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
b1e138d9c5 nefarious: fix wrong variable in "/join 0" handling causing crashes
(cherry picked from commit 5cb550afd9)
2016-06-26 11:38:09 -07:00
James Lu
fbeb3a3747 protocols: fix ts actually defaulting to None in sjoin() 2016-06-25 13:56:24 -07:00
James Lu
d2956c3d00 protocols: return uplink field in SQUIT handlers 2016-06-25 13:34:43 -07:00
James Lu
5cb550afd9 nefarious: fix wrong variable in "/join 0" handling causing crashes 2016-06-25 11:33:56 -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
6555ba2e6a nefarious: burst bans according to the P10 standard
Closes #250.
2016-06-23 22:36:22 -07:00
James Lu
2936e94f50 unreal: warn about mode bounces instead of fighting with the uplink 2016-06-22 22:37:53 -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
8969cfb74e Merge branch 'master' into devel
Conflicts:
	plugins/networks.py
2016-06-22 19:10:59 -07:00
James Lu
6060a8857f ts6: fix incorrect WHOIS syntax
Thanks to @cooper for reporting.
2016-06-22 18:34:17 -07:00
James Lu
101bd9664e unreal: fix typo in comment 2016-06-21 17:03:23 -07:00
James Lu
481d70eff8 New import paths for properly installed pylinkirc 2016-06-20 18:18:54 -07:00
James Lu
3e19e9c3f1 unreal: add missing inviteonly (+i) definition 2016-06-19 21:18:35 -07:00
James Lu
26df48c26d ts6: add missing definition for cmode +i 2016-06-19 21:13:14 -07:00
James Lu
5d5d4acd55 hybrid: rename debug umode (+g) to sno_debug 2016-05-31 20:57:17 -07:00
James Lu
d18e9c82f9 ts6: recognize umode +p (override) 2016-05-31 20:57:17 -07:00
James Lu
0124678ed3 nefarious: use SETHOST instead of FAKE for internal clients
Closes #209. Thanks to Jobe and Andromeda on #evilnet for the help!
2016-05-28 13:21:38 -07:00
James Lu
0e298dcb4d nefarious: support SETHOST-based (+h) cloaks
Closes #210.
2016-05-28 12:53:23 -07:00
James Lu
188d2f891c nefarious: use nicks in user MODE targets
This is more consistent with what Nefarious and P10 do.
2016-05-28 12:52:52 -07:00
James Lu
841d58d82e nefarious: set umode +x when changing hosts of service clients 2016-05-28 12:15:27 -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
2864c41d7a hybrid: only call endburst once per connection
Since this is based off TS6, both initial PING and EOB are handled as endburst. However, ENDBURST should only be called once per session, or things are respawned automatically and nick collisions happen.
2016-05-14 14:06:14 -07:00
James Lu
998d57dbb3 ts6: recognize elemental-ircd +G (blockcaps) 2016-05-11 21:49:57 -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
bd0874a484 Merge branch 'wip/split-utils' into devel 2016-04-29 23:32:52 -07:00
James Lu
b61ac21e86 hybrid, ts6: adjust umode definitions again
- Prefix non-standard snomask umodes with sno_ to avoid confusion
- Remove _hybrid suffixes and chary_ prefixes, they serve little use
- Re-map some hybrid modes to match existing definitions: showadmin->admin, smessages->snomask, hideops->hideoper, softcallerid->deaf_commonchan
2016-04-29 22:39:37 -07:00
James Lu
0061414ee5 nefarious: remove untested parsing of umode +h for now 2016-04-29 22:32:26 -07:00
James Lu
b78b911323 unreal: fix JOIN handling & normalize channel case
Reported by Rascle on IRC.
2016-04-28 19:17:20 -07:00
James Lu
dd7b3821e9 nefarious: deduplicate outgoing BURST mode prefixes 2016-04-27 16:43:09 -07:00
James Lu
1bd2bd760c hybrid, nefarious: add missing BURST/SJOIN->JOIN hook mapping
Reported by Rascle on IRC.
2016-04-27 16:42:38 -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
128a6363d5 nefarious: easier SID encoding using struct 2016-04-23 10:54:54 -07:00
James Lu
0e0d96efc6 nefarious: properly decode IPv6 addresses, move IP decoding into separate function 2016-04-23 10:44:17 -07:00
James Lu
9f454402d2 nefarious: don't confuse the TS argument with the user list, if a BURST is sent with only bans 2016-04-18 21:29:00 -07:00
James Lu
fd909395ff nefarious: ignore empty BURSTs with no useful data 2016-04-18 20:59:06 -07:00
James Lu
bc578240bb nefarious: fix checks for what is an IPv6 / IPv4 address 2016-04-18 20:54:16 -07:00
James Lu
0fad0f7a2c nefarious: add missing import
Reported by Rascle on IRC.
2016-04-18 20:40:01 -07:00
James Lu
c59997827f hybrid, ts6: update mode definitions
- +p is actually just noknock on hybrid & charybdis
- Fill in *A-*D lists (they were incomplete)
2016-04-18 11:22:54 -07:00
James Lu
560311a98b nefarious: handle VERSION requests 2016-04-18 10:55:05 -07:00
James Lu
81d2450460 nefarious: relay KILL user data properly 2016-04-18 10:52:41 -07:00
James Lu
4b4db64705 nefarious: experimental host changing support via FAKE
This seems to work fine for changing remote users' hosts, but changing the host of internal PyLink clients doesn't seem to work at all...
2016-04-18 10:52:09 -07:00
James Lu
25aacbd1fa nefarious: actually check RECVPASS 2016-04-17 22:33:16 -07:00
James Lu
c379287482 nefarious: implement account & vhost checking
Many thanks to @jobe1986 again, for giving me the specifics on how all of this works. :)
2016-04-17 22:23:44 -07:00
James Lu
38441f0302 nefarious: fix typo in NICK change handling 2016-04-17 22:23:11 -07:00
James Lu
9d28be1dc8 nefarious: updateClient stub 2016-04-17 22:22:38 -07:00
James Lu
fbd71a88f5 nefarious: convert nicks to UID in mode handling 2016-04-17 21:26:21 -07:00
James Lu
1a8652e982 nefarious: fill in cmodes, umodes lists 2016-04-17 21:17:27 -07:00
James Lu
9362b74d78 nefarious: handle CLEARMODE 2016-04-17 20:52:38 -07:00
James Lu
2a6b096401 nefarious: add KNOCK stub (not supported on P10) 2016-04-17 20:33:35 -07:00
James Lu
29d2fea3b2 nefarious: implement WHOIS handling & outbound numerics 2016-04-17 20:32:21 -07:00
James Lu
933029824c nefarious: AWAY and INVITE support 2016-04-17 20:28:51 -07:00
James Lu
20123c52e0 nefarious: implement TOPIC support 2016-04-16 18:46:31 -07:00
James Lu
68eed62f70 nefarious: implement outgoing SJOIN and SQUIT 2016-04-16 18:05:32 -07:00
James Lu
1892dd5fb4 nefarious: implement outgoing SJOIN (via BURST) 2016-04-16 17:49:59 -07:00
James Lu
25ca2f8399 nefarious: fix BURST prefix handling
When one userpair is given with some mode prefixes, it implicitly applies to all other following UIDs,
until another userpair is given with a prefix. For example: UID1,UID3:o,UID4,UID5 would assume that
UID1 has no prefixes, but UID3-5 all have op when joining.

This was not properly accounted for previously.
2016-04-16 17:06:48 -07:00
James Lu
fccfb62609 Merge branch 'devel' into wip/p10 2016-04-16 17:04:32 -07:00
James Lu
36683fc70e ts6: keep state properly when handling JOIN 2016-04-16 17:03:57 -07:00
James Lu
d635967d3b nefarious: keep state properly when handling JOIN 2016-04-16 17:00:50 -07:00