3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-30 14:49:28 +01:00
Commit Graph

386 Commits

Author SHA1 Message Date
Daniel Oaks
c4608fb891 hybrid: Set prefixmodes properly, handle MODE and TMODE 2016-03-30 11:34:52 +10:00
Daniel Oaks
a2bd0a8617 hybrid: Fix JOIN, handle JOIN (hopefully correctly), send EOB after receiving EOB 2016-03-30 09:11:43 +10:00
Daniel Oaks
3cd2dbac5a hybrid: Update for new methods 2016-03-30 09:11:43 +10:00
Daniel Oaks
6ff06cb881 hybrid: Use new CLIENT_OPERED name 2016-03-30 09:11:43 +10:00
Daniel Oaks
e914dc1e8e hybrid: Start making modes more consistent 2016-03-30 09:11:43 +10:00
Daniel Oaks
46610d217d hybrid: Remove silly debug print 2016-03-30 09:11:42 +10:00
Daniel Oaks
24589b21c1 hybrid: Handle PONG 2016-03-30 09:11:42 +10:00
Daniel Oaks
7ec4962412 hybrid: Implement suggested changes, remove comments 2016-03-30 09:11:42 +10:00
Daniel Oaks
1e79adc171 hybrid: Start module, very very broken 2016-03-30 09:11:42 +10: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
70b9bde2c4 unreal: fix a little typo 2016-03-26 13:26:57 -07:00
James Lu
ad517f80da unreal: bump protocol version to 4000 2016-03-26 13:19:06 -07:00
James Lu
19ac5b59a5 protocols: drop underscores from pre-defined opertypes 2016-03-26 13:15: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
bdbc1020f2 Merge branch 'master' into devel 2016-03-26 12:50:35 -07:00
James Lu
9cd1635f68 unreal: fix wrong variable name in handle_umode2 2016-03-26 12:50: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
e183078645 protocols: Remove "secret" testing channel name 2016-03-20 17:34:13 -07:00
James Lu
d12e70d5e5 ts6: unset has_eob correctly on reconnects
(cherry picked from commit 6962f3b73e)
2016-03-19 18:37:48 -07:00
James Lu
6962f3b73e ts6: unset has_eob correctly on reconnects 2016-03-19 18:19:41 -07:00
James Lu
15b35f1853 ts6: support charybdis +T mode (closes #173) 2016-03-07 21:38:57 -08: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
decdf141fd unreal: don't use updateClient to update hostname of clients internally 2016-02-20 18:19:15 -08:00
James Lu
2ebdb4bad6 unreal: support services account tracking (#25), fix handle_SVSMODE applying modes on the wrong target 2016-02-20 18:16:21 -08:00
James Lu
cabdb11f86 inspircd: implement services account tracking (#25) 2016-02-20 17:54:46 -08:00
James Lu
0fff91edfd ts6: implement services account tracking (#25)
This adds a new protocol hook: [user_logging_in, 'CLIENT_SERVICES_LOGIN', {'text': account_name}], sent whenever someone logs in to services. Actual state tracking is done in coreplugin.py
2016-02-07 18:38:22 -08:00
James Lu
5877031203 Merge branch 'master' into devel 2016-01-30 23:39:08 -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
fdad7c9c16 ts6: record null IPs as 0.0.0.0 instead of 0 2016-01-23 13:52:37 -08:00
James Lu
3c3ae104ba unreal: remove bad check for users connecting via IPv4
This fixes a crash when... anyone using IPv4 connects.
2016-01-23 13:52:37 -08:00
James Lu
4b939ea641 ts6: rewrite end-of-burst code (EOB is literally just a PING in ts6) 2016-01-23 13:52:37 -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
James Lu
814ebc9fe0 ts6: use new-style module design (#156) 2016-01-16 18:14:46 -08:00
James Lu
a220659eaf Move unreal's handle_events block to ts6_common
Precursor to part 2 of #156.
2016-01-16 17:48:22 -08:00
James Lu
812a866a4e protocols: rename pingServer -> ping 2016-01-16 17:11:23 -08:00
James Lu
3d0bf18001 protocols: rename topicClient -> topic; topicServer -> topicBurst
This is one of the few commands that I won't consolidate at this time, because there is actually a difference in how most IRCds handle topic bursts and normal topic changes
2016-01-16 17:09:52 -08:00
James Lu
5ccf204c75 protocols: consolidate modeClient and modeServer into mode() 2016-01-16 17:08:17 -08:00
James Lu
eef97ac035 protocols: consolidate killServer / killClient into kill() 2016-01-16 17:03:22 -08:00
James Lu
975ace3e04 ts6_common: consolidate kickClient and kickServer into kick 2016-01-16 16:56:40 -08:00
James Lu
ee65ac60e1 protocols: rename sjoinServer(...) -> sjoin(...) 2016-01-16 16:53:46 -08:00
James Lu
9a61e64dfc protocols: squitServer(...) -> squit(...) 2016-01-16 16:53:06 -08:00
James Lu
5324475d18 protocols: quitClient(...) -> quit(...), partClient(...) -> part(...) 2016-01-16 16:51:54 -08:00
James Lu
7e5284969d protocols: rename nickClient(...) -> nick(...) 2016-01-16 16:51:04 -08:00
James Lu
196282db86 protocols: numericServer(...) -> numeric(...) 2016-01-16 16:47:35 -08:00
James Lu
3a53005d8c protocols: messageClient -> message, noticeClient -> notice 2016-01-16 16:44:23 -08:00
James Lu
108be5e25e protocols: rename knockClient -> knock 2016-01-16 16:41:17 -08:00
James Lu
20cb65e668 protocols: rename awayClient -> away 2016-01-16 16:40:36 -08:00
James Lu
b4e5c57a35 protocols: rename inviteClient(...) -> invite(...) 2016-01-16 16:38:27 -08:00
James Lu
acdd7dbb78 protocols: rename joinClient(...) -> join(...) 2016-01-16 16:36:45 -08:00
James Lu
ff6841c551 protocols: record the right sender in TOPIC handlers (first part of #127) 2016-01-09 20:50:55 -08:00
James Lu
8db8f6b6c4 note to self: never use case-insensitive find/replace again 2016-01-09 18:34:41 -08:00
James Lu
48203ff321 protocols: reword error text 2016-01-09 17:44:18 -08:00
James Lu
9a43a620f9 unreal: implicitly set +xt when SETHOST or CHGHOST is received (#136) 2016-01-03 11:28:35 -08:00
James Lu
adcb61da67 unreal: update users' hosts properly on setting +x/-x
Closes #136.
2016-01-03 11:28:26 -08:00
James Lu
eac934c237 classes: sort code, move nickToUid, clientToServer, isInternalClient, isInternalServer into the Irc class
The following BREAKING changes are made:
utils.nickToUid(irc, nick) -> irc.nickToUid(nick)
utils.isInternalClient(irc, uid) -> irc.isInternalClient(uid)
utils.isInternalServer(irc, uid) -> irc.isInternalServer(uid)
utils.clientToServer(irc, uid) -> utils.getServer(uid)
2015-12-31 17:28:47 -08:00
James Lu
8b8895988d ts6: map EUID hook to UID 2015-12-30 16:53:35 -08:00
James Lu
741fed9acd protocols: allow changing remote users' hosts in updateClient
Closes #142.
2015-12-30 15:54:09 -08:00
James Lu
f3d8c35219 ts6: fix sending wrong UID in handle_chghost hook payload 2015-12-30 15:53:31 -08:00
James Lu
bf7522697a Rename PYLINK_CLIENT_OPERED hook -> CLIENT_OPERED
To be consistent, any PYLINK_* hooks should internal hooks sent out by PyLink itself. CLIENT_OPERED, on the other hand, requires protocol modules to send it and thus, shouldn't be labeled as a PYLINK_* hook.
2015-12-26 15:41:22 -08:00
James Lu
11adee9d78 Yet another documentation refresh (#113) 2015-12-26 14:45:28 -08:00
James Lu
3c51231ce8 inspircd: re-add RSQUIT handler (closes #150) 2015-12-24 19:52:52 -08:00
James Lu
3f45450969 unreal: move setting irc.connected to AFTER protocol negotiation, and add missing EOS (ENDBURST) handler
The lack of the latter caused relay to *fail* to spawn users whenever an Unreal server reconnects, which should be fixed now.
2015-12-24 18:13:53 -08:00
James Lu
349cff36e1 protocols: in TOPIC hooks, send the topic as keyword "text" instead of keyword "topic"
This is just to be more consistent, as other hooks usually use "text" for text fields.
2015-12-18 22:05:10 -08:00
James Lu
d60a48bb11 protocols: actually update away status in awayClient
"Oops, I forgot to do this."
2015-12-17 21:50:50 -08:00
James Lu
6d597e4482 unreal: call PYLINK_CLIENT_OPERED hooks where we're supposed to 2015-12-17 21:37:01 -08:00
James Lu
09bb2976f8 inspircd: Remove a couple of overzealous find+replaces 2015-12-17 21:19:40 -08:00
James Lu
6b14a885bc protocols: add support for endburst_delay in spawnServer (#128) 2015-12-17 21:18:11 -08:00
James Lu
f79524e9e1 unreal: remove duplicate import 2015-12-06 17:44:59 -08:00
James Lu
62501ce8f2 unreal: actually, storing the cloaked host instead of the real host is a better idea
This prevents IP leaks, at least until #136 is fixed. Reverts part of b965f2c.
2015-11-28 20:57:33 -08:00
James Lu
f8cc297522 unreal: remove "possible desync" warning in _getNick 2015-11-26 22:52:29 -08:00
James Lu
994eaef12c unreal: forcibly SETHOST to the desired vHost in spawnClient
This prevents real host / IP address leaks, since the "virt host" specified in UID doesn't seem to be respected by the IRCd (real host is shown instead). Workaround for #136.
2015-11-26 22:34:15 -08:00
James Lu
0c068c6543 unreal: fix #137
a.k.a. fix the mess I made encoding IPs by not knowing about socket.inet_pton / socket.inet_ntop.
2015-11-26 22:15:52 -08:00
James Lu
b965f2c4b0 unreal: store the displayed host, not the Unreal-cloaking (+x) host in users
I was misinterpreting the UID command syntax. See #136 for what still has to be done.
2015-11-22 13:07:25 -08:00
James Lu
5c0517ba40 unreal/ts6/relay: add some more user mode support
Cloaking is still a bit iffy on UnrealIRCd networks - Unreal insists on applying its own cloaking for +x users, but vHosts for non +x remote users don't apply at all (their real host is shown instead)
2015-11-21 23:57:24 -08:00
James Lu
e86d21e67d unreal: map SETHOST/IDENT/NAME to the right hooks 2015-11-21 23:28:39 -08:00
James Lu
06539fc813 unreal: add missing SJOIN->JOIN hook map, and set irc.connected (relay will otherwise break) 2015-11-15 21:42:58 -08:00
James Lu
f3428d264b ts6: actually send original TS in INVITE hook 2015-11-15 21:16:03 -08:00
James Lu
0f269da9b8 unreal: add outgoing KNOCK
In Unreal, KNOCKs are simply specially formatted notices sent from the orginating user's server. No special inbound hook is used to handle this as a result.
2015-11-15 21:09:40 -08:00
James Lu
2ddb72f9ec unreal: add incoming/outgoing INVITE support 2015-11-15 21:00:51 -08:00
James Lu
89e515f513 unreal: don't set TS to 0 when it's sent in MODE (samode overrides the timestamp as this to ensure it always works) 2015-11-15 09:52:01 -08:00
James Lu
7e8e8f33f7 unreal: add updateClient 2015-11-15 09:45:46 -08:00
James Lu
e167be2a69 move awayClient/handle_away to ts6_common 2015-11-15 09:34:26 -08:00
James Lu
a5a2481205 unreal: handle sethost, chghost, and all that 2015-11-15 09:30:29 -08:00
James Lu
ac48c49591 Move squitServer/spawnServer to ts6_common, add topicServer for Unreal 2015-11-15 09:12:21 -08:00
James Lu
5664218254 unreal: add WHOIS handling 2015-11-11 19:40:26 -08:00
James Lu
dfefaeabc5 Merge branch 'devel' into wip/unrealircd 2015-11-11 19:40:22 -08:00
James Lu
eeedeb0135 Move numericServer to ts6_common 2015-11-11 19:40:10 -08:00
James Lu
8c60782753 unreal: add modeClient/modeServer 2015-11-11 19:24:57 -08:00
James Lu
76472560ab unreal: add killServer/killClient 2015-11-11 19:09:37 -08:00
James Lu
fcd1bf5c37 unreal: fix typo in one updateTS call 2015-11-11 19:09:30 -08:00
James Lu
6f9feb46b1 unreal: fix last commit (actually map the hook & set modes on RIGHT target) 2015-11-11 18:55:05 -08:00
James Lu
6601071d35 unreal: add svsmode/svs2mode handler 2015-11-08 15:27:09 -08:00
James Lu
119aa8939b unreal: use Protocol.updateTS() for TS checks 2015-11-08 15:27:09 -08:00
James Lu
619b004bdf Merge branch 'devel' into wip/unrealircd 2015-11-08 15:14:51 -08:00
James Lu
2008df047c Fix logic in last commit
ts has to be set to orig_ts if missing, otherwise a later comparison would try to check for None <= some int, which would error
2015-11-08 15:14:03 -08:00
James Lu
c88f126331 Merge branch 'devel' into wip/unrealircd 2015-11-08 15:10:42 -08:00