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
James Lu
58a8d7134c
Fix handling of inbound CHG*
2015-07-23 11:02:32 -07:00
James Lu
8799e1ccc8
spawnClient: add ts as opt. argument; relay: spawn pseudoclients w/ TS of original user
2015-07-23 00:11:24 -07:00
James Lu
d52fba37b8
add numericServer for sending raw numerics from servers, and WHOIS handling in coreplugin
...
Basic WHOIS handling (user information, server information, IRCop access) are sent. #72
TODO: send channel lists, an extra note for relay clients, user modes, and idle time
2015-07-22 21:15:34 -07:00
James Lu
8a1f965303
Consistently use applyModes in spawnClient, so user modes are stored like ('o', None) instead of ('+o', None)
...
Drop the 'modes' argument in IrcUser, for this is incorrect.
2015-07-22 21:14:22 -07:00
James Lu
686467ffa6
Remove endburst toggling in spawnServer, has_bursted IrcServer flag
...
Neither are being used at all; they're essentially dead code.
2015-07-22 20:39:38 -07:00
James Lu
35cdfbf7e6
Declare IRCd casemapping in protocol modules, and respect these in utils.nickToUid
...
This adds a new utils.toLower(irc, text) function which returns the lowercased version of <text> based on <irc>'s declared case mapping.
Closes #75 .
2015-07-22 20:31:45 -07:00