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
741fed9acd
protocols: allow changing remote users' hosts in updateClient
...
Closes #142 .
2015-12-30 15:54:09 -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
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
6d597e4482
unreal: call PYLINK_CLIENT_OPERED hooks where we're supposed to
2015-12-17 21:37:01 -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
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
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
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
6f36fb7126
unreal: alias SVSKILL to KILL
2015-11-01 21:50:46 -08:00
James Lu
4a4c43d3c4
unreal: handle timestamps in MODE (channel bursts), ignoring when TS is 0
2015-11-01 21:41:41 -08:00
James Lu
dbe24973d5
unreal: add joinClient + sjoinServer, support +qaohv properly
2015-10-12 19:38:38 -07:00
James Lu
f0ff14fda9
unreal: fix spawnClient manipulatable setting
2015-10-12 19:34:52 -07:00
James Lu
90fd64b125
unreal: store IPs properly, now that I understand how...
2015-10-12 18:45:25 -07:00
James Lu
399f89900b
unreal: TOPIC inbound handler ( #104 )
2015-10-12 18:25:30 -07:00
James Lu
00a6008078
unreal: we can send NETINFO instantly now, since network full name is a config option
2015-10-12 18:20:16 -07:00
James Lu
b5677806e7
unreal: bump protocol version to 3999 (Unreal 4.0.0-rc1)
2015-10-12 18:17:58 -07:00
James Lu
1eeeba1e86
unreal: support legacy server introduction ( #119 )
2015-10-12 18:15:39 -07:00
James Lu
2fc0e086ae
unreal: rename _convertNick => _getNick
2015-10-12 17:58:36 -07:00
James Lu
4f4ad7b54d
unreal: switch to _getSid for server name reverse lookup
2015-10-12 17:50:44 -07:00
James Lu
6e30a62a4a
unreal: SQUIT and SID handlers ( #114 )
2015-10-09 22:38:28 -07:00
James Lu
d5a2d3b0e8
unreal: fix incorrect comment
2015-10-09 21:39:09 -07:00
James Lu
a3ee7f2c8a
unreal: handle UMODE2 (self user mode changes)
...
For #114 . TODO: find out if it's possible to set modes on other users, and handle that if applicable
2015-10-09 21:37:44 -07:00
James Lu
9927627630
unreal: add handle_mode (channel modes) and support for unreal +f ( #104 )
2015-10-08 21:06:57 -07:00
James Lu
c50866c3a9
unreal: Fix handle_sjoin ( #104 )
2015-10-08 20:48:10 -07:00
James Lu
963b9e978e
unreal: Add handle_sjoin ( #104 )
2015-10-08 20:46:30 -07:00
James Lu
009cac2263
unreal: fix joinClient not adding users to state ( #104 )
2015-10-08 20:44:12 -07:00
James Lu
665481276d
unreal: update spawnClient to latest spec, improve handle_events and documentation to be more correct
2015-10-08 20:28:21 -07:00
James Lu
886994475d
Merge branch 'master' into wip/unrealircd
...
Conflicts:
classes.py
2015-09-23 18:59:17 -07:00
James Lu
ca3372b0af
protocols/unreal: class()-ify everything
2015-09-10 18:41:01 -07:00
James Lu
871e6a5c47
unreal: JOIN handlers
2015-09-05 12:29:20 -07:00
James Lu
76246dea70
unreal: add NOTICE and PRIVMSG (inbound/outbound)
2015-09-05 12:02:45 -07:00
James Lu
b63d7619da
unreal: validate uplink protocol version (needs >=2351)
2015-09-05 11:52:46 -07:00
James Lu
cae4c60b56
unreal: stricter protocol negotiation (check needed capabilities)
2015-09-05 11:45:28 -07:00
James Lu
bd30bc862e
unreal: Implement spawnClient and (most of) inbound UID handling
2015-09-04 11:51:00 -07:00
James Lu
83725f90ff
unreal: coerse sender names to UIDs if they're not given
...
Unreal's protocol isn't quite consistent with UIDs yet... Some commands (PART, QUIT, NICK) use them, while others (KILL, MODE) don't.
2015-09-04 11:51:00 -07:00
James Lu
6d00309f9f
unreal: update imports, add (shared) handlers for QUIT, PART, NICK, and KILL
2015-09-04 11:51:00 -07:00
James Lu
18dc1591aa
unreal: Niceties like PING/PONG handling and enumerating our uplink's server
2015-09-03 16:07:30 -07:00
James Lu
58b00d1c23
Initial UnrealIRCd protocol stub ( #39 )
2015-09-03 13:32:59 -07:00