James Lu
9fde35fd77
relay: handle server name conflicts more correctly
...
1) Clear the relay servers cache
2) Disconnect
3) Raise a proper exception so other parts of relay don't carry on with undefined behaviour
2016-04-02 12:46:45 -07:00
James Lu
c01b449741
relay: treat network names case-sensitively
2016-04-02 12:15:53 -07:00
James Lu
fab404f8d6
Merge branches 'master' and 'wip/relay-fixes' into devel
2016-04-01 18:32:19 -07:00
James Lu
3a8b0aa123
relay: catch OSError too when loading DB
2016-04-01 18:31:53 -07:00
James Lu
9e33081bc9
relay: fix typo in comment
2016-03-30 21:22:18 -07:00
James Lu
d21344342d
relay: experimental fix for #183
2016-03-30 18:33:44 -07:00
James Lu
4a0ee6f54c
relay: be more thread-safe via dict.copy()
2016-03-26 18:19:08 -07:00
James Lu
08c3b99dfb
relay: fix ambiguous logging in KICK blocking
2016-03-26 17:56:11 -07:00
James Lu
aedb05608e
relay: actually, just kill handle_spawnmain
...
this is causing more problems than it is worth
2016-03-25 17:09:40 -07:00
James Lu
ce3d3cf697
relay: check to make sure network is ready before handling spawnmain
2016-03-25 16:59:27 -07:00
James Lu
9fe3373906
relay: get rid of kill/save protection
2016-03-25 16:39:06 -07:00
James Lu
75ec95b8d3
Merge branch 'master' into devel
2016-03-25 16:01:34 -07:00
James Lu
46922ce879
relay: remove dead networks' servers from the servers index unconditionally
...
For #183 .
2016-03-25 15:59:37 -07:00
James Lu
c86a02e044
relay: use IrcChannel.getPrefixModes
2016-03-19 17:54:42 -07:00
James Lu
8135f3a735
core: Depluralize prefixmodes mappings ( #168 )
...
This is an API breaking change. I really don't know why I made these keys plural to start, since it only made things more complicated. Prefix modes are not pluralized in the list of supported modes of each IRCd.
2016-03-19 17:25:04 -07:00
James Lu
7f5bc52152
relay: fix errors in KILL handling when target isn't in any relay channels
2016-03-07 18:10:59 -08:00
James Lu
8ac5436152
relay: allow admins to destroy channels hosted on other networks
...
Closes #160 .
2016-03-05 09:31:59 -08:00
James Lu
34ca973047
relay: cleanup, consistently include the function in log.debug calls
2016-02-27 18:37:40 -08:00
James Lu
a740163cbe
relay: implement DB exporting using threading.Timer, similar to classes.Irc.schedulePing
...
Fixes #165 (exportDB threads not dying on unload)
2016-02-27 18:13:26 -08:00
James Lu
ae8f369f2e
relay: only show networks that are actually connected in LINKED
...
Closes #163 .
2016-02-21 20:04:53 -08:00
James Lu
de1a9a7995
relay: various cleanup
2016-02-20 19:29:52 -08:00
James Lu
f25c260937
relay: sort channel links in LINKED output
2016-01-20 07:14:49 -08:00
James Lu
3d0bf18001
protocols: rename topicClient -> topic; topicServer -> topicBurst
...
This is one of the few commands that I won't consolidate at this time, because there is actually a difference in how most IRCds handle topic bursts and normal topic changes
2016-01-16 17:09:52 -08:00
James Lu
5ccf204c75
protocols: consolidate modeClient and modeServer into mode()
2016-01-16 17:08:17 -08:00
James Lu
983edaf8d0
plugins, docs, test suite: update to use irc.proto.kick
2016-01-16 16:59:28 -08:00
James Lu
ee65ac60e1
protocols: rename sjoinServer(...) -> sjoin(...)
2016-01-16 16:53:46 -08:00
James Lu
9a61e64dfc
protocols: squitServer(...) -> squit(...)
2016-01-16 16:53:06 -08:00
James Lu
5324475d18
protocols: quitClient(...) -> quit(...), partClient(...) -> part(...)
2016-01-16 16:51:54 -08:00
James Lu
7e5284969d
protocols: rename nickClient(...) -> nick(...)
2016-01-16 16:51:04 -08:00
James Lu
3a53005d8c
protocols: messageClient -> message, noticeClient -> notice
2016-01-16 16:44:23 -08:00
James Lu
20cb65e668
protocols: rename awayClient -> away
2016-01-16 16:40:36 -08:00
James Lu
b4e5c57a35
protocols: rename inviteClient(...) -> invite(...)
2016-01-16 16:38:27 -08:00
James Lu
acdd7dbb78
protocols: rename joinClient(...) -> join(...)
2016-01-16 16:36:45 -08:00
James Lu
f5a828c4af
relay: store creation TS in DB, showing it in LINKED if exists
...
Closes #155 .
2016-01-09 20:30:54 -08:00
James Lu
989f1f4f64
plugins: use irc.disconnect() to disconnect networks ( #152 )
2016-01-09 20:25:51 -08:00
James Lu
eac934c237
classes: sort code, move nickToUid, clientToServer, isInternalClient, isInternalServer into the Irc class
...
The following BREAKING changes are made:
utils.nickToUid(irc, nick) -> irc.nickToUid(nick)
utils.isInternalClient(irc, uid) -> irc.isInternalClient(uid)
utils.isInternalServer(irc, uid) -> irc.isInternalServer(uid)
utils.clientToServer(irc, uid) -> utils.getServer(uid)
2015-12-31 17:28:47 -08:00
James Lu
add409789a
relay: fix incorrect logging in changing client fields
2015-12-30 15:53:05 -08:00
James Lu
d7fdeed19d
relay: remove use of sched in exportDB
...
We were using sched and threading together? How inefficient...
2015-12-29 11:14:19 -08:00
James Lu
59c9b127a3
relay/world: remove need for world.schedulers
2015-12-26 17:06:28 -08:00
James Lu
bf7522697a
Rename PYLINK_CLIENT_OPERED hook -> CLIENT_OPERED
...
To be consistent, any PYLINK_* hooks should internal hooks sent out by PyLink itself. CLIENT_OPERED, on the other hand, requires protocol modules to send it and thus, shouldn't be labeled as a PYLINK_* hook.
2015-12-26 15:41:22 -08:00
James Lu
04275d1dfa
relay: only show creator in LINKED if the value exists
2015-12-26 15:24:06 -08:00
James Lu
349cff36e1
protocols: in TOPIC hooks, send the topic as keyword "text" instead of keyword "topic"
...
This is just to be more consistent, as other hooks usually use "text" for text fields.
2015-12-18 22:05:10 -08:00
James Lu
00337fa783
relay: delay ENDBURST in spawnServer by 3 seconds ( Closes #128 )
2015-12-17 21:18:16 -08:00
James Lu
a39f9bbddc
relay: fix logging syntax
2015-12-06 17:40:06 -08:00
James Lu
561af2e037
utils/relay: add and use getDatabaseName to fetch an instance-specific DB name
2015-12-06 17:13:47 -08:00
James Lu
f16edf6efc
relay: log (de)linked, created, and destroyed channels to INFO
...
Closes #125 .
2015-11-28 21:18:30 -08:00
James Lu
e97810e5f7
relay: store creator hostname in CREATE, code readability...
...
Closes #135 .
2015-11-28 21:09:44 -08:00
James Lu
3df0a24232
relay: catch PRIVMSG/NOTICE sent from servers, and relay them via the PyLink client instead of erroring
2015-11-26 22:51:19 -08:00
James Lu
a7f5068bd8
relay: squash another "dictionary changed size during iteration" bug
2015-11-26 22:50:20 -08:00
James Lu
adfa114c4b
relay: remove cloak from whitelisted umodes, send modes to spawnClient as a set (prevents duplicates)
2015-11-22 13:08:31 -08:00
James Lu
5c0517ba40
unreal/ts6/relay: add some more user mode support
...
Cloaking is still a bit iffy on UnrealIRCd networks - Unreal insists on applying its own cloaking for +x users, but vHosts for non +x remote users don't apply at all (their real host is shown instead)
2015-11-21 23:57:24 -08:00
James Lu
a3e0159054
relay: normalize hostnames too (e.g. unreal doesn't allow / in vHosts)
2015-11-21 23:37:19 -08:00
James Lu
06539fc813
unreal: add missing SJOIN->JOIN hook map, and set irc.connected (relay will otherwise break)
2015-11-15 21:42:58 -08:00
James Lu
86d3cd3295
relay: only join the main pseudoclient once per channel
2015-10-25 10:39:56 -07:00
James Lu
2bf9568fbb
relay: Home network lost connection. => Relay network lost connection.
2015-10-23 18:50:42 -07:00
James Lu
17a2dcd21f
plugins: use irc.reply(...) instead of irc.msg(irc.called_by, ...) whereever possible
2015-10-23 18:29:10 -07:00
James Lu
5327de9317
relay: fix local kicks not quitting users on remote networks when the target doesn't share any channels as a result
...
Closes #120 .
2015-10-18 10:27:54 -07:00
James Lu
d21ce9983d
relay: don't spam subserver connects + instant disconnects for networks that are dead
2015-10-10 15:34:57 -07:00
James Lu
bde2f66b2a
relay: don't send SQUIT for relay servers to networks that aren't connected
2015-10-10 15:27:57 -07:00
James Lu
e28c351792
relay: add missing return in getRemoteSid
2015-10-10 15:26:28 -07:00
James Lu
07694ae642
relay: restore checks for irc.connected/world.started to prevent server spawning from happening too quickly
2015-10-10 15:22:06 -07:00
James Lu
ffce69060c
relay: fix RuntimeError in handle_disconnect (dict changed size during iteration)
2015-10-10 15:06:36 -07:00
James Lu
17cfdcab0a
relay: fix 7d919e6
again
...
PyLink bots can send messages over the relay to channels, just not to remote users.
2015-10-02 23:40:20 -07:00
James Lu
f20e677577
relay: fix PMs across the relay ( 7d919e64
regression)
2015-10-01 16:40:58 -07:00
James Lu
9e07949730
relay: make spawning of subservers toggleable
2015-09-28 18:22:03 -07:00
James Lu
55b642ea30
Revert "relay: remove ENDBURST hook (is this needed anymore?)"
...
This reverts commit 4a9a29e095
.
2015-09-28 18:15:56 -07:00
James Lu
4a9a29e095
relay: remove ENDBURST hook (is this needed anymore?)
2015-09-27 11:56:32 -07:00
James Lu
a14e8a7b8f
relay: add (experimental) support for plugin reloading
2015-09-27 11:56:09 -07:00
James Lu
cc171eb79a
relay: abort connection when spawning a server fails
2015-09-27 10:45:08 -07:00
James Lu
7d919e643a
relay: forward messages from the main PyLink client too
...
This may or may not have nasty regressions - time will tell I guess.
2015-09-26 10:20:23 -07:00
James Lu
8e444c5dbe
plugins: support FANTASY (where reasonable) by using irc.msg(irc.called_by, ...) instead of irc.msg(source, ...)
2015-09-26 10:20:23 -07:00
James Lu
7e12ec9e5e
relay: don't prepend sender prefixes more than once (for servers and clients not on any relay networks)
2015-09-20 18:13:39 -07:00
James Lu
f2b6d1a3ad
relay: use two locks (one for clients, one for servers) to prevent lock ups on start
2015-09-20 16:56:24 -07:00
James Lu
7b2d1d8129
relay: use the network's full name in spawning servers
2015-09-20 12:11:41 -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
0d207f7d08
relay: better description for 'showuser'
2015-09-19 10:39:56 -07:00
James Lu
2c23cbe01e
relay: fix some logging peculiarities in handle_kick?
2015-09-19 10:32:45 -07:00
James Lu
6ee2ec8a2d
relay: make oper status/IP hiding configurable
...
Closes #108 .
2015-09-19 10:17:25 -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
504e2683fb
relay: hide +s/+p channels in LINKED output ( closes #110 )
2015-09-18 22:05:51 -07:00
James Lu
4ad94ca4ea
Merge branch 'master' into devel
2015-09-17 19:31:30 -07:00
James Lu
63189e9990
relay: look at the right prefix mode list when rejoining from KILL
2015-09-17 19:30:38 -07:00
James Lu
0371b21634
Merge branch 'master' into devel
2015-09-17 19:26:25 -07:00
James Lu
cb83db4c1c
relay: don't allow creating a channel that's already part of a relay
2015-09-17 19:24:38 -07:00
James Lu
70227bf3e0
relay: use utils.checkAuthenticated() for checking oper status
2015-09-17 19:22:34 -07:00
James Lu
8faf86aa8f
relay: rejoin killed users to the RIGHT channels
2015-09-17 19:15:51 -07:00
James Lu
7011aa3b36
relay: send kick rejoins from CLAIM from the main relay server
2015-09-16 21:23:09 -07:00
James Lu
f92c2f731c
relay: CLAIM command! Closes #51 .
2015-09-16 20:59:32 -07:00
James Lu
04ca322154
relay: skip claim checks when claim list is empty for a channel
2015-09-16 20:59:08 -07:00
James Lu
78080bde6b
relay: don't fail if oldchan is not given in MODE
2015-09-14 17:36:41 -07:00
James Lu
81628f9a6d
relay: rename some internal functions to make more sense
...
getLocalUser => getOrigUser
findRemoteChan => getRemoteChan
findRelay => getRelay
2015-09-14 17:29:37 -07:00
James Lu
75de9c6be6
relay: sort code and document most internal functions
2015-09-14 17:25:17 -07:00
James Lu
1e6c5a231e
relay.handle_topic: don't fail if we're bursting and no old topic exists
2015-09-13 17:58:39 -07:00
James Lu
4a4c9395d6
relay: remove broken logging line
2015-09-13 17:50:59 -07:00
James Lu
19530107d7
relay: enforce CLAIM checks in TOPIC too.
2015-09-13 14:23:27 -07:00
James Lu
9a139212dd
relay/utils: make mode reversals work with mode changes that affect op statuses.
2015-09-13 13:48:14 -07:00
James Lu
fa4583c272
relay: basic CLAIM checking when setting modes ( #51 )
...
There's still some desyncs with checking op statuses, because hooks are only called AFTER the internal state updates. Fix for this will come soon.
2015-09-12 23:36:52 -07:00
James Lu
945306af34
relay: make CLAIM checking a shared function
2015-09-12 22:50:53 -07:00
James Lu
b3902c7711
relay: KILL war protection ( #23 )
...
TODO: possibly integrate this into core?
2015-09-12 17:41:49 -07:00
James Lu
1fcacd0d7c
relay: more compact "showuser" output
2015-09-12 16:03:59 -07:00
James Lu
1c97927b5d
relay: monitor SAVE floods by network, not by target nick
2015-09-12 16:03:47 -07:00
James Lu
95b70f3ebf
relay: spawn a server for every linked network ( Closes #105 )
2015-09-12 12:08:02 -07:00
James Lu
7f526267ec
relay: minor typo in error message
2015-09-09 20:53:04 -07:00
James Lu
9e73af050c
relay: unpluralize "relayWhoisHandlers"
...
There's only one handler, why did I make it plural?
2015-09-06 22:39:40 -07:00
James Lu
62e7cc4fca
move utils.msg() => classes.Irc.msg()
...
New function gets an extra (optional) "source" argument for specifying a sender UID. It's also shorter since no IRC object has to be passed to utils.
2015-09-06 22:23:44 -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
320de2079a
relay: add INVITE support ( Closes #94 )
2015-09-02 21:30:31 -07:00
James Lu
60dc3fe026
relay: use "Channel delinked." part message when delinking channels
2015-09-02 20:46:21 -07:00
James Lu
9a47ff87af
Merge branch 'master' into devel
2015-09-02 20:44:03 -07:00
James Lu
043fccf447
Fix previous commit ( Closes #100 )
2015-09-02 18:56:53 -07:00
James Lu
ace0ddf28c
relay: use JOIN instead of SJOIN for non-burst joins
...
Closes #96 .
2015-09-02 18:33:04 -07:00
James Lu
c2ee9ef808
Merge branch 'master' into devel
2015-09-02 18:15:34 -07:00
James Lu
708d949164
relay: join remote users before sending ours
...
This fixes race conditions where modes can be set on our joining users (e.g. auto-op by ChanServ), but are promptly erased as relay joins remote users and resets the channel TS.
Also, move relayModes() calls back into relayJoins(), with an optional "burst" argument.
Closes #102 .
2015-09-02 18:08:39 -07:00
James Lu
19fa31d012
relay: fix incorrect logging in getSupportedUmodes()
2015-09-01 22:14:25 -07:00
James Lu
2f760c8c92
relay: Don't send empty user mode changes
2015-09-01 22:13:29 -07:00
James Lu
4f40faeaf0
relay: in logs, be a bit more specific why we're blocking KILLs and KICKs
2015-09-01 22:02:34 -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
8d44830d5c
relay.handle_kill: prevent yet another RuntimeError
...
(cherry picked from commit 4525b8117e
)
Conflicts:
plugins/relay.py
2015-09-01 19:42:12 -07:00
James Lu
6d6606900e
relay: coerse "/" to "|" in nicks if "/" isn't present in the separator
...
a.k.a. make J*anus* happy :)
2015-09-01 09:56:28 -07:00
James Lu
4525b8117e
relay.handle_kill: prevent yet another RuntimeError
2015-08-31 15:04:06 -07:00
James Lu
26e102f01a
Show oper types on WHOIS
2015-08-31 14:52:56 -07:00
James Lu
8d19057118
relay: set umode +H (hideoper) on all remote opered clients
2015-08-31 14:23:42 -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
4a964b1595
Merge branch 'master' into devel
2015-08-31 10:58:47 -07:00
James Lu
9f0f4cb124
relay: burst the right set of modes
...
It's moments like this where I wonder what I'm even doing with my life...
2015-08-31 09:28:14 -07:00
James Lu
94f83eb33b
relay.showuser: show home network/nick, and relay nicks regardless of oper status
2015-08-29 19:49:37 -07:00
James Lu
8976322273
Replace admin.showuser with prettier whois-style cmds in 'commands' and 'relay'
2015-08-29 19:29:05 -07:00
James Lu
973aba6de7
Move utils' global variables to world.py
2015-08-29 09:39:33 -07:00
James Lu
2fe9b624e7
Consistently capitalize errors and other messages
2015-08-25 20:55:39 -07:00
James Lu
51389b96e2
relay: LINKACL command ( Closes #88 )
2015-08-25 20:18:14 -07:00
James Lu
713ba1469b
relay: log blocked KILLs/KICKs ( Closes #95 )
2015-08-22 21:43:25 -07:00
James Lu
20474dabac
relay: fix many bugs with nick collision handling, and add flood prevention for fixing nicks
...
Closes #85 . Nick collisions caused by internal clients are handled fine now, including the following cases:
- Abusing spawnClient to create a user with the same nick as a relay client, but with a lower TS.
- When both an UID (e.g. 42XAAAAAA) and a tagged UID (_42XAAAAAA) exist on the same network (the two will both try to take the same nick of _42XAAAAAA/net over the relay).
The case where changing NICK from a long cut-off nick to another long cut-off nick is also mitigated. somelongnick/net won't show nick changes to somelongnic//net if the old and new nicks have give the same normalized relay nick.
This introduces a new dependency, expiringdict, from https://pypi.python.org/pypi/expiringdict/1.1.2 , which is used as a cache for flood prevention.
2015-08-22 21:01:51 -07:00
James Lu
bd2bd55e89
relay: fix mode relaying when sender is a client but isn't in any shared channels
2015-08-20 22:13:28 -07:00
James Lu
dde9539e77
relay: fix incorrect logging in normalizeNick
2015-08-20 03:04:40 -07:00
James Lu
821f546f12
Make sure the PyLink client rejoins all relay channels on KILL
...
This adds a new internal hook, 'PYLINK_SPAWNMAIN', which is triggered whenever Irc().spawnMain() is called.
2015-08-18 05:44:36 -07:00
James Lu
f93349ae1f
relay: when restoring a user after KICK, join them to the *right* channel
2015-08-18 02:59:56 -07:00
James Lu
5704fddfb4
relay: ignore internal clients for CLAIM checks
2015-08-18 02:57:40 -07:00
James Lu
0d2fbc330d
relay: fix "Left all shared channels" quits for KICK handling
2015-08-18 02:44:27 -07:00
James Lu
d6e6e56e03
relay: hotfix to fix KILL handling of relay clients
2015-08-17 21:15:44 -07:00
James Lu
de36c7a62a
Merge branch 'wip/admin-commands-loopback' into devel
...
Conflicts:
plugins/relay.py
2015-08-17 07:52:45 -07:00
James Lu
e7f187c672
relay: send modes once at init, not on every JOIN
2015-08-15 23:31:54 -07:00
James Lu
3b83c3d567
relay: fix TOPIC relaying when the source and target channels have different names
2015-08-15 23:05:09 -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
aec29d2aae
relay: continue, not return
...
(fix SQUIT not rejoining relay users properly)
2015-08-15 19:23:41 -07:00
James Lu
043a4bc27a
Merge branch 'devel' into wip/admin-commands-loopback
...
Conflicts:
plugins/relay.py
2015-08-15 19:21:38 -07:00
James Lu
dd91b7e5a0
relay: more efficient getLocalUser
...
Set the .remote attribute of each relay client to the original netname, user pair.
2015-08-15 19:18:04 -07:00
James Lu
a1db4932e1
relay: Don't allow kicks/parts to the PyLink client to be relayed.
2015-08-15 06:05:12 -07:00
James Lu
6ebe6e7867
relay: check for whether clients are relay clients, instead of just internal clients
...
This prevents things like non-relay PyLink clients being quit for "Left all shared channels", and allows kicks between internal clients to relay properly.
2015-08-15 05:54:18 -07:00
James Lu
f63d17f945
relay: don't relay kicks if the target has no client on the remote network?
2015-08-15 05:54:05 -07:00
James Lu
cc7e52a190
relayJoins: remove check for whether the sender internal client
...
This is already done by the .remote attribute check.
2015-08-15 05:20:17 -07:00
James Lu
5daf38d880
relay: restore ability to message @#channels across the relay ( #91 )
2015-08-15 00:12:30 -07:00
James Lu
4382b22138
relay: warn users when messaging channels they aren't in / remote users w/o sharing a channel
...
Some refactoring of relay's PRIVMSG handling is done here:
- Messages to channels the sender isn't in are dropped, with a notice warning sent.
- Messaging a remote user without sharing a channel with them raises an error, and is dropped.
Closes #91 .
2015-08-15 00:02:46 -07:00
James Lu
e5c7d438b1
relay: in handle_kick, only remove the target from the user cache after the kick has been relayed to all networks
2015-08-14 19:05:07 -07:00
James Lu
13b5377102
relay: Fix check for whether target user is on our target channel
...
Really closes #71 ; can I sleep now...
2015-08-14 19:02:51 -07:00
James Lu
65b8c9db8a
relay: attempt to fix race conditions in getRemoteUser calls ( #92 )
2015-08-14 08:52:09 -07:00
James Lu
27edc81894
relay: fix error message when DELINK is called on a relay's origin network without arguments
...
tl;dr I'm a terrible writer
2015-08-12 07:03:49 -07:00
James Lu
3ee10a5d1e
relay: also propagate AWAY status when spawning users
2015-08-12 04:40:49 -07:00
James Lu
486b56e255
relay: relay AWAY statuses
2015-08-12 04:18:20 -07:00
James Lu
b3c8929d17
relay: make logging less spammy
2015-08-12 01:20:32 -07:00
James Lu
14435f8f55
relay: run getLocalUser BEFORE quitting the user (in removeChannel)
...
This prevents KeyErrors from showing up on DELINK.
2015-08-12 01:19:30 -07:00
James Lu
cdb0bb6707
relay: fix some dumb typos
2015-08-07 17:57:37 -07:00
James Lu
d23d1c3987
relay: don't wait for irc.connected anymoree
...
Not needed, as nick length is a config value now.
2015-08-05 21:56:52 -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
411b6c4702
relay: allow opers to run SAVE too
2015-08-05 06:10:55 -07:00
James Lu
4d55c8ce73
relay: announce KILL blocks once, and only once
2015-08-05 05:43:31 -07:00
James Lu
f61ecf6d68
relay: only call initializeAll on ENDBURST for the uplink
...
This prevents unnecessary bursts being sent every time a server is introduced on any network.
2015-08-04 05:13:44 -07:00
James Lu
3f98af6f96
relay: a few bugfixes
...
- Only send messages for blocked kicks if the sender is a user
- getRemoteUser: only set the .remote attribute when spawning a new user (prevents KeyErrors)
- Kick handling: Check for +y too when checking whether the kicker has ops
2015-08-03 23:22:13 -07:00
James Lu
f786242730
Support loading different config files from the command line
...
Closes #84 . Logs, PID files, and relay DBs will name themselves differently for every instance, to prevent conflicts. The default is always config.yml.
2015-08-03 19:27:19 -07:00
James Lu
55a4fcd8be
Merge branch 'devel' of github.com:GLolol/PyLink into devel
2015-08-03 04:42:09 -07:00
James Lu
58e84a654c
relay: prevent RuntimeError on handle_quit
2015-08-02 19:46:19 -07:00
James Lu
3646930d34
relay: disable "you must in a share channel" messages; they're buggy
2015-07-29 04:02:45 -07:00
James Lu
7db1648438
relay: (possibly) block relaying events to disconnected networks
2015-07-25 22:56:34 -07:00
James Lu
4d7d7ce428
relay: Only block once per IRC object, ever.
...
Closes #59 ?
2015-07-25 22:54:02 -07:00
James Lu
a38fe1ab90
Fix #74 for real?
2015-07-25 22:11:41 -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
c07cfb13df
relay: fix checks of DELINK must having a network parameter on a relay's home network
2015-07-25 16:56:48 -07:00
James Lu
b681a675eb
relay: only join users once, returning if there are no queued users at all
...
Closes #71 , prevents op floods on multiple SJOIN being sent. Also, this squashes AssertionErrors raised by protocol modules in sjoinServer, when we try to join zero users to a channel!
2015-07-25 11:03:27 -07:00
James Lu
7daa595a7b
relay: fix opmodes not actually being coersed properly
...
Modepair is set before the coersing phase and never updates; whoops!
2015-07-25 10:43:47 -07:00
James Lu
25da086a6b
Merge branch 'master' into wip/relay-no-duplicate-modes
2015-07-25 10:18:08 -07:00
James Lu
ee1267f06e
relay: fix use of incorrect variable in logging
2015-07-24 21:12:33 -07:00
James Lu
146ab5e444
ts6: support +AOS charybdis extension modes, warning if the IRCd doesn't support them
...
Also, add 'adminonly' (+A) to relay's whitelist.
2015-07-24 20:55:48 -07:00
James Lu
e4da670ae0
relay: propagate SAVE as NICK changes for non-relay users!
2015-07-24 18:29:59 -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
71a3464e8a
relay: also quit users who aren't on any shared channels after KICK
2015-07-24 10:51:16 -07:00
James Lu
5c3466bf82
relay: briefly workaround #74 by reordering our user checks
2015-07-24 10:50:39 -07:00
James Lu
254797dcfd
relay: remove servprotect from umode whitelist for now..
2015-07-23 18:05:13 -07:00
James Lu
dc7edf542a
relay: fix error on handle_part if remote network has no link
2015-07-23 14:34:56 -07:00
James Lu
d213429559
Revert "relay: when filtering modes, ignore internal mode-type lists (modenames starting with *)"
...
This reverts commit 4ce377944c
.
2015-07-23 14:30:48 -07:00
James Lu
0575de1fac
Support noctcp (+C) on charybdis, and wallops (+w) in relay
2015-07-23 13:45:38 -07:00
James Lu
4ce377944c
relay: when filtering modes, ignore internal mode-type lists (modenames starting with *)
2015-07-23 13:36:40 -07:00
James Lu
254ccea0a3
remove some debugging cruft and unused imports
2015-07-23 11:46:45 -07:00
James Lu
83494482a2
relay: don't ever quit the main client or part it from autojoin channels
2015-07-23 11:44:38 -07:00
James Lu
cbe7fa539f
relay: remove more spurious "you must be in channel" messages
2015-07-23 11:41:33 -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
44e07b0c2f
relay: don't error if the WHOIS target isn't a relay user... oops
2015-07-23 00:10:54 -07:00
James Lu
a7f977aa3b
Add whois handlers for channel lists, user modes, and signon time, and relay user information
...
New API: utils.whois_handlers allows one to add functions taking (irc, target) and returning (irc numeric, reply text)
Closes #72 .
2015-07-23 00:01:51 -07:00
James Lu
8c1e1c18f1
relay: Factorize relayJoins usage in initializeChannel and truly fix #74 .
...
Squashed commit of the following:
commit 4e481f15db372d5c07f30e92f6581ea93692695b
Author: James Lu <GLolol1@hotmail.com>
Date: Wed Jul 22 19:28:34 2015 -0700
relay: Factorize relayJoins usage in initializeChannel and truly fix #74 .
The real error was that queued_users was being defined in the wrong spot (outside of the for loop),
so the user list would grow larger and larger with every network initialized.
This reverts parts of the previous commit which weren't actually necessary.
commit 76cc6bfbc71439880f01891f944600a26ff81130
Author: James Lu <GLolol1@hotmail.com>
Date: Wed Jul 22 13:34:47 2015 -0700
Mark users as internal at the IrcUser level (attempt to fix #74 )
2015-07-22 19:29:58 -07:00