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
James Lu
ea7681502f
fix some bugs, introduce others
2015-07-21 17:33:36 -07:00
James Lu
9b8ef0a45d
make relay and ts6 a bit less, well, buggy
2015-07-21 12:44:01 -07:00
James Lu
72be5ca79c
inspircd: make handle_part return a list of channels, not just one
...
Some IRCds, like TS6, allow sending multiple channels (as a comma-separated list) in PART.
Update relay accordingly.
2015-07-20 19:52:52 -07:00
James Lu
3494d4f794
inspircd: remove RSQUIT handler
...
Events like this shouldn't be handled at the protocol level, ever. There's little point in adding this globally, since plugins should be able to choose what happens when they receive an SQUIT.
2015-07-20 18:05:42 -07:00
James Lu
a10a18d9cc
Irc: make prefixmodes a dict mapping chars to their prefixes
...
This is needed by TS6 support (#40 ), which send the characters (@+) instead of modes
2015-07-20 16:48:59 -07:00
James Lu
b1e409ff3e
relay: unbreak topic handling ( closes #68 )
...
Introducing a new .topicset attributing in IrcChannel denoting whether we've received a TOPIC for this channel from the uplink yet.
2015-07-20 13:18:04 -07:00
James Lu
fe9c317f2c
inspircd: make channel user tracking more fault tolerant (in sjoinServer / handle_part)
2015-07-19 23:46:19 -07:00
James Lu
bf444f3f6a
pr/insp: Servers should use FTOPIC, not TOPIC to send topics
2015-07-19 17:27:53 -07:00