3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-01 09:19:23 +01:00
Commit Graph

154 Commits

Author SHA1 Message Date
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
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
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
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
df42a81191 classes/protocols: store server descriptions internally
Closes #106.
2015-09-12 12:07:59 -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
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
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
167f5cd0cf Move shared stuff into a ts6_common library
Closes #78.
2015-09-04 11:24:40 -07:00
James Lu
1be4034681 Make TS6 command parsing a shared library (#78) 2015-09-03 12:59:50 -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
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
James Lu
977b69b8e9 protocols/: Fix args parsing when the sender UID == the last argument
args.index() would return 0 instead of the index of the current argument.
2015-08-26 14:57:46 -07:00
James Lu
05be3e6c17 pr/: add prefixmodes in sjoinServer if TS <= theirs
The old comparison of our TS < theirs was wrong, because modes are merged (not dropped) when two channels of the same TS join.
2015-08-24 18:37:39 -07:00
James Lu
694e7b87f6 various: make the server description configurable
Two options for this: bot::serverdesc, and server::<network>::serverdesc, with the latter taking precedence if present.
2015-08-24 18:14:35 -07:00
James Lu
1d245bf001 protoocols.sjoinServer: only add prefix modes to channel state if our TS < theirs 2015-08-20 01:32:30 -07:00
James Lu
61d95c19cc protocols: delete empty non-permanent channels 2015-08-15 23:29:40 -07:00
James Lu
c99a6a7b9d protocols: update topic in channel state when sending outbound TOPIC 2015-08-15 22:34:40 -07:00
James Lu
4352a68357 Check for TS changes on SJOIN (both incoming and outgoing)
Restore relay to the devel branch; TS bursts shouldn't be handled there, but in the protocol modules.

TODO: fix prefixmodes being cleared after BURST, and never being reset?
2015-08-15 19:53:09 -07:00
James Lu
0d41e35d9c Merge branch 'devel' into wip/handle-ts-bursts
Conflicts:
	plugins/relay.py
2015-08-15 19:28:49 -07:00
James Lu
13e4baba8b inspircd: also strip listmodes in joinClient (#58) 2015-08-14 08:47:23 -07:00
James Lu
7d912bbb28 pr/insp: Strip out listmodes in FJOIN
They should always be sent separately according to the protocol documentation: https://wiki.inspircd.org/InspIRCd_Spanning_Tree_1.2/FJOIN

Closes #58.
2015-08-12 07:05:05 -07:00
James Lu
1a57dfcdc3 prs+IrcUser: add incoming (handle_away) and outgoing (awayClient) AWAY handling 2015-08-12 04:17:01 -07:00
James Lu
bf3116d704 First attempt at handling channel TS @ burst (#93)
Doesn't quite work yet, more testing needed.
2015-08-05 06:14:34 -07:00
James Lu
8a134aadc5 Remove duplicate assignment of irc.uidgen 2015-08-03 19:44:11 -07:00
James Lu
e5eb58ee73 inspircd: use parse_as instead of forcibly mapping ENCAP to KNOCK 2015-08-03 05:00:32 -07:00
James Lu
e354ada838 relay: fix nick collision loop on SAVE + when both tagged UID and untagged UID exist on one net
This fixes a clash when for example: both 42XAAAAAA and _42XAAAAAA exist on a network, and PyLink tries to relay both nicks as _42XAAAAAA/network.

Also, this adds an oldnick argument to the SAVE protocol handler, which is then used by relay.normalizeNick to check whether the original pre-SAVE nick is also in use, in the event of nick collisions.
2015-07-25 18:27:30 -07:00
James Lu
a4da9b5324 protocol/relay: fix handling of KILLs sent to non-relay users 2015-07-24 18:26:31 -07:00
James Lu
007a1d9389 Merge branch 'master' into devel 2015-07-24 11:09:53 -07:00
James Lu
01220b3024 correction: InspIRCd uses RFC1459 case mapping by default 2015-07-24 10:59:04 -07:00
James Lu
868b4503e6 protocols: Fix #81 - that was easy!
Split data by only one space at a time, not as many spaces as possible. Thanks to @nathan0.
2015-07-23 19:09:19 -07:00