James Lu
3a42c8e835
protocols: add _check_oper_status_change abstraction
...
This condenses a large chunk of the code checking for oper ups, and adds support for the servprotect/admin umodes in an IRCd-independent manner. Closes #451 .
2017-07-07 20:04:21 -07:00
James Lu
5955d3f90f
p10: expand nick!user@host only for topic setters that are clients
2017-07-07 13:37:16 -07:00
James Lu
c2f12460da
unreal, p10: condense topic_burst and topic together
...
Closes #480 .
2017-07-07 13:35:30 -07:00
James Lu
67a36b7ebe
inspircd: rename _operUp to _oper_up
2017-07-07 13:27:45 -07:00
James Lu
5d5c861a93
protocols: rename check_nick_collision to _check_nick_collision
2017-07-07 03:18:40 -07:00
James Lu
c5d06b2d41
ngircd: run check_nick_collision in handle_nick, per #375
2017-07-07 03:16:56 -07:00
James Lu
bd79c71b85
unreal: fix TypeError in mode() from accessing set items by index
2017-07-07 03:16:17 -07:00
James Lu
28d2f89311
ngircd: implement KILL
2017-07-07 02:52:57 -07:00
James Lu
67a414fa2a
ngircd: set slash-in-hosts, slash-in-nicks, underscore-in-hosts capabilities
2017-07-07 02:46:14 -07:00
James Lu
57c86c6d25
ngircd: implement update_client()
2017-07-07 02:41:20 -07:00
James Lu
fa2c5d928a
IRCS2SProtocol: fix extraneous umode based AWAY messages
2017-07-06 22:17:47 -07:00
James Lu
6636a19a2b
ngircd: implement handler for METADATA
2017-07-06 22:15:56 -07:00
James Lu
f29c95152b
ngircd: remove has-ts from protocol capabilities
2017-07-06 21:49:51 -07:00
James Lu
b0eb1656a5
ngircd: add a stub for KNOCK
2017-07-06 21:47:03 -07:00
James Lu
6d3d2b239d
IRCS2SProtocol: ignore attempts to ping the uplink before the link is ready
2017-07-06 21:45:51 -07:00
James Lu
d149576b4e
protocols: move invite() into IRCS2SProtocol
2017-07-06 21:43:53 -07:00
James Lu
085b4cacbe
protocols: handle usermode-based away (i.e. ngircd +a)
2017-07-06 20:19:52 -07:00
James Lu
b2b50371ab
ngircd: fix setting umodes
2017-07-06 20:19:34 -07:00
James Lu
73464e516f
ngircd: fill in mode definitions
...
Source: https://github.com/ngircd/ngircd/blob/master/doc/Modes.txt
2017-07-06 20:12:29 -07:00
James Lu
3d0ccadb76
ngircd: sort handler functions alphabetically
2017-07-06 18:38:25 -07:00
James Lu
28313fd478
ngircd: send burst modes after NJOIN, if there are any
2017-07-06 18:29:34 -07:00
James Lu
961e8ae991
ngircd: add outgoing MODE command
2017-07-06 18:22:56 -07:00
James Lu
4cd1ed5a7b
ngircd: add an outgoing sjoin() function using NJOIN
2017-07-06 18:08:46 -07:00
James Lu
45dad63d5b
Move handle_mode into IRCS2SProtocol
...
TODO: clean up protocols/unreal to use more of this code as well
2017-07-06 17:10:03 -07:00
James Lu
694b5018fc
Move numeric() into IRCS2SProtocol
2017-07-05 02:36:34 -07:00
James Lu
56c8b90362
IRCS2SProtocol: handle both killpath-based and preformatted kill reasons
...
Also drop the override in protocols/inspircd, as it is no longer needed.
2017-07-05 02:26:40 -07:00
James Lu
1e5985b608
Merge remote-tracking branch 'origin/beta' into wip/ngircd
...
Conflicts:
protocols/ircs2s_common.py
protocols/ts6.py
2017-07-05 02:26:40 -07:00
James Lu
58558c89ae
ngircd: ignore KILLs not meant for us
...
ngIRCd sends QUIT after a successful KILL, so trying to remove the target twice is erroneous and will cause a crash.
TODO: what happens if an external KILL is never responded to for whatever reason?
2017-07-05 02:17:15 -07:00
James Lu
1acd654e6e
ts6: fix 'ts' value type in handle_invite
2017-07-05 02:10:24 -07:00
James Lu
69f3ae52ec
ts6: fix wrong argument count when parsing INVITE ts
...
(cherry picked from commit 7cfc63d6ed
)
2017-07-05 02:09:55 -07:00
James Lu
d2d176b6f9
IRCS2SProtocol: fix UnboundLocalError in "message coming from wrong way" warning
...
This fixes a regression from 69cf21c04e
.
2017-07-05 02:08:41 -07:00
James Lu
30b9f47023
unreal: remove handle_kill override; unneeded as of aa4e9335aa
2017-07-05 01:26:45 -07:00
James Lu
c2e65ff9c3
IRCCommonProtocol: alias topic_burst to topic by default ( #480 )
2017-07-05 00:56:34 -07:00
James Lu
db06ff4338
Move handle_topic to IRCS2SProtocol
2017-07-05 00:48:58 -07:00
James Lu
aa4e9335aa
IRCS2SProtocol: expand nicks to UIDs in handle_kill
...
This allows this handler to work natively on ngIRCd.
2017-07-05 00:36:10 -07:00
James Lu
3729b23e43
Move KICK handlers to IRCS2SProtocol
2017-07-05 00:34:48 -07:00
James Lu
449b547a23
ngircd: properly track server tokens so that users spawn on the right servers
...
This brings in utils.PUIDGenerator once again for pseudo-SIDs; the counter numbers in these are used directly as server tokens
2017-07-05 00:18:13 -07:00
James Lu
163f0099e7
IRCCommonProtocol: also expand PSIDs in _expandPUID
2017-07-04 23:56:12 -07:00
James Lu
5d4f2149e6
Move squit() to ircs2s_common
2017-07-04 23:41:00 -07:00
James Lu
b780070ee6
ngircd: implement nick changing
2017-07-04 23:26:05 -07:00
James Lu
42a25300c4
ngircd: don't leave user TS none in spawn_client
2017-07-04 23:25:49 -07:00
James Lu
759210a1e4
ngircd: add inbound & outbound JOIN, SERVER
2017-07-04 23:10:12 -07:00
James Lu
84a6cec732
p10: fix endburst_delay note
2017-07-04 23:09:48 -07:00
James Lu
37f0dcb456
ngircd: fix SQUIT user tracking
2017-07-04 23:09:13 -07:00
James Lu
970b38719d
core: rename ping() to _ping_uplink(), and drop the unused source/target arguments
2017-07-04 22:09:50 -07:00
James Lu
43af9d1bac
protocols: move ping() into IRCCommonProtocol
2017-07-04 22:00:22 -07:00
James Lu
276b0b251d
protocols: move handle_pong to IRCCommonProtocol
2017-07-04 21:55:09 -07:00
James Lu
2e5fc2467f
ngircd: handle CHANINFO (channel mode/topic bursts) and NJOIN (userlist bursts)
2017-07-03 14:24:57 -07:00
James Lu
7b2f93fd4c
ngircd: send an UID hook in user introductions
2017-07-03 14:24:45 -07:00
James Lu
b6b1cbeb2d
ngircd: send our own server negotiation info to complete the connection
...
Aside from the 376, none of this is /required/, but it's best to be consistent...
2017-07-03 13:35:43 -07:00