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
James Lu
2eeba50a2a
Modularize TS updating code ( Closes #129 )
2015-11-08 10:49: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
cedcb9b11a
Merge branch 'master' into wip/unrealircd
2015-11-01 20:40:56 -08:00
James Lu
c5b3441f6a
inspircd: alias SVSTOPIC to FTOPIC (reported by @siniStar7boy)
...
SVSTOPIC is used by services to set topics when m_topiclock (server side topic locking) is enabled on the IRCd. Unfortunately, usage of this isn't documented anywehere......
Basically, this makes PyLink treat it as a regular server topic change (FTOPIC), since the arguments are the same anyways.
2015-10-31 19:15:03 -07:00
James Lu
59af8e196c
ts6: fix call to operup hook when handling EUID
2015-10-25 10:27:06 -07: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
07fce69c5e
Merge branch 'devel' into wip/unrealircd
2015-10-12 17:50:35 -07:00
James Lu
d4200424fa
ts6: support legacy (non-sid) server introduction
...
Closes #119 .
For the sake of simplicity, server swithout a SID are stored by their server names internally, which is convenient because no reverse lookup is needed when an SQUIT is received for it.
2015-10-12 17:49:03 -07:00
James Lu
1f0426d7ff
ts6: fixes to SQUIT handling
2015-10-10 14:58:52 -07:00
James Lu
64cba70cbd
ts6: add stub for legacy (no SID) SERVER introduction
2015-10-09 22:50:11 -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
f97d3eb756
Merge branch 'master' into wip/unrealircd
2015-10-09 21:36:02 -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
181c40d9fe
inspircd: fix another "find all, replace" mistake
2015-10-08 21:06:35 -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
7c7f07b3a9
Merge branch 'master' into wip/unrealircd
2015-10-08 20:14:30 -07:00
James Lu
8bde21f1e6
inspircd: remove clients from state when killing own clients
...
Closes #115 .
2015-10-08 20:13:37 -07:00
James Lu
a9253eda77
ts6: fix removeClient usage
2015-10-02 23:31:38 -07:00
James Lu
f015fe5e25
Documentation updates, finish off pmodule-spec.md ( #113 )
2015-09-24 18:36:54 -07:00
James Lu
3351aafc79
inspircd: fix wrong arguments in numericServer() stub
2015-09-24 18:13:11 -07:00
James Lu
c77d170765
Move parseArgs and removeClient into the base Protocol class
...
These aren't really TS6-specific, and can be useful anywhere.
2015-09-24 18:03:30 -07:00
James Lu
886994475d
Merge branch 'master' into wip/unrealircd
...
Conflicts:
classes.py
2015-09-23 18:59:17 -07:00
James Lu
e92f35018f
TS6SIDGenerator: take an IRC object, and skip any SIDs that are currently in use
2015-09-20 18:32:43 -07:00
James Lu
f38958995c
Store opertypes with spaces instead of underscores, and only change them back when sending OPERTYPE
...
Another "Janus sucks" commit - it should be always using underscores when sending OPERTYPE, but it doesn't...
2015-09-20 11:25:45 -07:00
James Lu
c3e8420aa0
relay/ts6_common: be more error tolerant with network (dis)connections
2015-09-18 22:11:27 -07:00
James Lu
fb91ff8ea3
Remove allow_abcd attributes from protocols (not needed anymore)
2015-09-17 19:07:37 -07:00
James Lu
069cd62865
core: allow marking spawned clients as manipulatable or protected
...
This flag determines whether the client should be manipulated by commands like bots.py's MODE/QUIT/JOIN commands, or protected from them (services).
2015-09-17 19:01:54 -07:00
James Lu
b87e34efa2
Slightly more consistent logging format...
2015-09-16 21:32:27 -07:00
James Lu
c5b6658200
bots: more validation in "MODE" to prevent bad things from happening
...
This adds a new "allow_forceset_usermodes" attribute to protocol modules, which determines whether the IRCd allows us to force usermode changes on other servers' clients.
Also, make sure our target is a valid nick/UID/channel, and that the parsed modes are not empty!
2015-09-14 17:46:20 -07:00
James Lu
6476aefb5f
Merge branch 'master' into devel
...
Conflicts:
protocols/inspircd.py
2015-09-14 16:55:35 -07:00
James Lu
1f95774131
inspircd: add proper fallback value for OPERTYPE?
2015-09-13 17:04:17 -07:00
James Lu
9c4e0107f3
ts6_common: make old topic retrievable in handle_topic
2015-09-13 14:23:09 -07:00
James Lu
c82a0a771c
protocols: return an "oldchan" IrcChannel object with the previous state of a channel when processing channel mode changes
...
This allows plugins to check for op statuses, etc. before the mode change is processed.
2015-09-13 13:47:18 -07:00
James Lu
17282aa049
protocols: fix typo and ts6._sendModes when input is a set()
2015-09-12 23:35:20 -07:00
James Lu
3a8d3d146c
protocols: make "uidgen" a protocol instance attribute
2015-09-12 16:02:51 -07:00
James Lu
0cbdefcab1
ts6/inspircd: fix TS6SIDGenerator not actually incrementing...
...
It was being replaced on every call... It was only supposed to do that if sidgen hadn't been set yet!
2015-09-12 12:08:02 -07:00
James Lu
36b0a08368
ts6_common: return server name in SQUIT handler too
2015-09-12 12:08:02 -07:00
James Lu
df42a81191
classes/protocols: store server descriptions internally
...
Closes #106 .
2015-09-12 12:07:59 -07:00
James Lu
d6cb9d45c7
Merge commit '320de2079a78202e99c7b6aeb53c28c13f43ba47'
...
Many things here, including:
- New 'exec' plugin
- INVITE, umode +H (hideoper) support for relay
- New and improved 'showuser' command, now with internals that support multiple binds to one command name.
- relay: bug fixes, like not sending empty user mode changes.
2015-09-12 09:11:52 -07:00
James Lu
ca3372b0af
protocols/unreal: class()-ify everything
2015-09-10 18:41:01 -07:00
James Lu
da1b101bc4
Merge branch 'devel' into wip/unrealircd
2015-09-10 18:27:46 -07:00
James Lu
29065fdd04
protocols/: remove unused imports & various documentation improvements
2015-09-08 19:51:14 -07:00
James Lu
983acd5adc
Move MODE handling back from ts6_common->inspircd, now that ts6.py does different handling
2015-09-08 19:50:46 -07:00
James Lu
6c503b3603
Fix typos and other stupid mistakes...
2015-09-06 23:18:27 -07:00
James Lu
7952590436
ts6_common: fix a typo
2015-09-06 22:09:09 -07:00
James Lu
197ccd7916
relay/protocols: use utils.toLower() for channel names, respecting IRCd casemappings
...
Closes #102 .
(cherry picked from commit 0b590d6ab3
)
2015-09-06 21:47:27 -07:00
James Lu
57da0aa3b3
Classify all our protocol modules - why didn't I do this earlier
2015-09-05 18:00:57 -07:00
James Lu
3b7d81d62a
inspircd: fix typo in comment
2015-09-05 14:28:18 -07:00
James Lu
9f2d8a1b01
Document the sources of protocols/inspircd & ts6_common
2015-09-05 14:25:11 -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
a96826273f
Merge branch 'devel' into wip/unrealircd
2015-09-05 11:24:45 -07:00
James Lu
72cfe04904
protocols: respect serverdesc config options in spawnServer
2015-09-04 18:59:57 -07:00
James Lu
759f6c4492
protocols/: add outgoing squitServer()
2015-09-04 18:55:39 -07:00
James Lu
47a63cb8d6
Merge branch 'master' into devel
2015-09-04 18:48:08 -07:00
James Lu
8f70582d1b
ts6: fixes to spawnServer
...
1) Use SID, not SERVER - This allows us to actually spawn clients on these servers...
2) Fix check for existing server names (drop the .keys() loop, it raises TypeError and isn't needed)
2015-09-04 18:47:53 -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
3469603763
Merge branch 'devel' into wip/unrealircd
2015-09-04 11:25:26 -07:00
James Lu
167f5cd0cf
Move shared stuff into a ts6_common library
...
Closes #78 .
2015-09-04 11:24:40 -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
James Lu
1be4034681
Make TS6 command parsing a shared library ( #78 )
2015-09-03 12:59:50 -07:00
James Lu
ce83bea09a
ts6: less garbled error message for UID handler
2015-09-02 23:51:16 -07:00
James Lu
0b590d6ab3
relay/protocols: use utils.toLower() for channel names, respecting IRCd casemappings
...
Closes #102 .
2015-09-01 22:01:22 -07:00
James Lu
26e102f01a
Show oper types on WHOIS
2015-08-31 14:52:56 -07:00
James Lu
5480ae14c4
classes: Remove "opertype" IrcUser() argument
...
This is useless and should've never been here, oops.
2015-08-31 14:11:12 -07:00
James Lu
531ebbba0a
Merge branch 'master' into devel
2015-08-31 13:33:30 -07:00
James Lu
f9b4457ced
Decorate relay clients, etc. with custom OPERTYPEs
...
New PyLink internal hook: PYLINK_CLIENT_OPERED, called (supposedly) when a client opers up.
2015-08-31 13:31:20 -07:00
James Lu
c8e7b72065
protocols: lowercase channel names in PRIVMSG handling
...
Merge NOTICE and PRIVMSG handlers together; they're essentially the same thing.
2015-08-31 11:45:00 -07:00
James Lu
4a964b1595
Merge branch 'master' into devel
2015-08-31 10:58:47 -07:00
James Lu
37eecd7d69
pr/inspircd: use OPERTYPE to oper up clients correctly, and handle the metadata accordingly
2015-08-31 10:31:50 -07:00
James Lu
7620cd7433
pr/inspircd: fix compatibility with channel mode +q (~)
...
InspIRCd's defaults use "founder" as the mode name for cmode +q, not "owner". My config was different, so I overlooked this.
2015-08-30 23:16:39 -07:00
James Lu
549a1d1ba4
classes: IrcServer.users is now a set()
2015-08-29 12:35:06 -07:00
James Lu
80bebe3827
protocols: also validate TS on incoming SJOIN
2015-08-26 14:59:05 -07:00