James Lu
cf32461d8e
relay: Only spawn clients if they share a channel, and quit them when they leave all shared channels
...
Closes #50 .
2015-07-16 12:25:42 -07:00
James Lu
40fd9e37a0
relay: don't spawn tagged clones for the internal PyLink client
2015-07-16 12:25:33 -07:00
James Lu
d97fce8205
IrcUser & pr/insp: Implement user channel tracking
2015-07-16 12:20:40 -07:00
James Lu
35f1c88a4e
relay: add hooks for CHGHOST / CHGIDENT / CHGNAME
...
Closes #49 .
2015-07-16 11:53:40 -07:00
James Lu
f9d82153bb
pr/insp: map FIDENT/FHOST/FNAME hooks to their CHG* counterparts
2015-07-15 23:23:46 -07:00
James Lu
643218efce
README: fix link to issue tracker
2015-07-15 23:15:08 -07:00
James Lu
2f38b2b38d
relay: handle squit, quitting the relevant relay pseudoclients with a fake netsplit message
...
This is hardcoded to *.net *.split, but it may change to show the split servers in the future...
2015-07-15 19:09:10 -07:00
James Lu
e413a21e68
pr/insp: send the list of affected users in handle_squit
2015-07-15 19:08:49 -07:00
James Lu
798476c850
pr/insp: don't crash when a server sends TOPIC
2015-07-15 19:08:36 -07:00
James Lu
c22c187717
Update README.md
2015-07-15 18:50:29 -07:00
James Lu
2106b8da3a
main: add a note about irc.connected.wait() and maxnicklen being set
2015-07-15 14:00:40 -07:00
James Lu
cd244ee89b
relay: block until irc.maxnicklen is set, and remove check for "nick already in use" for internal clients
...
Closes #48 . This fixes the edge case where, if a person with a long, cut-off nick changes to another long nick, and the resulting normalized nick is the same,
normalizeNick will start incrementing the separator anyway. The correct behavior is to NOT send any nick changes if the old (normalized) nick and the new nick
match.
2015-07-15 13:53:14 -07:00
James Lu
6e37e1c05d
make Irc.connected a threaded event object, setting it to True ONLY when we receive server capabilities from our uplink
...
The previous behavior set this to True as soon as we ran connect(), but this caused problems because the default capabilities (i.e. nicklen)
that Irc() initializes won't match the real value of the network.
2015-07-15 13:49:12 -07:00
James Lu
8d914720b3
It might be useful to expose such options in the example conf, you know
2015-07-15 11:53:07 -07:00
James Lu
293bfff813
main: thread Irc.connect() and begin work on autoreconnection
2015-07-15 11:52:36 -07:00
James Lu
bbe71e22ab
relay: fixes for NICK and TOPIC propogation
2015-07-15 11:48:26 -07:00
James Lu
e3e643de54
relay: don't try to spawn clients on disconnected networks (those raise errors)
2015-07-15 11:48:03 -07:00
James Lu
4c77ad93d7
relay: fix over-reaching behavior of delink #chan <remotenet> when you're the host
2015-07-15 11:47:06 -07:00
James Lu
0918b2f958
relay: missing line in initializeChannel
2015-07-14 23:29:03 -07:00
James Lu
3a9df57c39
relay: remove unused relay() function; what was that about?
2015-07-14 23:26:56 -07:00
James Lu
5999eedd98
relay: block kills, respawning their targets transparently
...
Closes #47 .
2015-07-14 23:26:52 -07:00
James Lu
13e4cadf2b
relay: add TOPIC support (experimental)
...
Closes #46 .
2015-07-14 23:26:39 -07:00
James Lu
67190d8329
pr/insp: send the user data of the kileld user in handle_kill
2015-07-14 23:23:35 -07:00
James Lu
46e1538bd2
relay: fix #45 - cases when MODE/KICK is sent by a server, not a client
2015-07-14 22:37:50 -07:00
James Lu
ef0436c906
inspircd: merge _sendFromUser and _sendFromServer into _send
...
They do exactly the same thing, just with different variable names. Keeping two of these is useless...
(why didn't I notice this earlier?)
2015-07-14 22:33:56 -07:00
James Lu
8942c2fa08
pr/insp: add kickServer
2015-07-14 22:32:05 -07:00
James Lu
7de8f1509d
relay: factorize getLocalUser, introduce MODE (experimental) and PRIVMSG handler
2015-07-14 19:39:49 -07:00
James Lu
f74e704733
relay: whoops, check for claim properly
2015-07-14 18:27:26 -07:00
James Lu
28f1d4ba19
relay: add a working KICK handler
...
This should block kicks from non-opped remote users, and handle kicks across the relay properly by mapping our pseudoclients to the real targets.
2015-07-14 18:23:19 -07:00
James Lu
79a1ac9006
pr/insp: fix sjoinServer not updating the internal modes list
2015-07-14 18:23:15 -07:00
James Lu
876cf34825
relay: Remove spawning a sub-server for each relay network
...
It introduced bugs, and made the relay code more complicated than it has to be :(
2015-07-14 17:42:17 -07:00
James Lu
a1299676f1
relay: factorize fetching of remote users/SIDs, spawning them if they don't exist
2015-07-14 12:04:05 -07:00
James Lu
994b2961ee
pr/insp: call endburst AFTER the server object is initialized...
...
derp
2015-07-14 12:03:22 -07:00
James Lu
59295f921b
relay: part users on DELINK/DESTROY
2015-07-13 23:29:20 -07:00
James Lu
310a9201e2
relay: fix bugs with removing nonexistant channels in DELINK, and linking a channel multiple times in LINK
2015-07-13 22:54:51 -07:00
James Lu
1cbcec1001
relay: sync modes on initializeChannel as well
2015-07-13 22:42:50 -07:00
James Lu
c11dc769cf
pr/insp: allow explicitly specifying ts in mode*
2015-07-13 22:42:33 -07:00
James Lu
c5298e3931
relay: fix joining users on initializeChannel
2015-07-13 21:46:05 -07:00
James Lu
235f169e54
relay: add quit, part, and nick handlers
2015-07-13 19:53:57 -07:00
James Lu
9bc8a35c25
relay: fix cases where a remote linked channel has different name
2015-07-13 19:46:24 -07:00
James Lu
a5e2beb566
relay: propogate prefix modes in relayJoins, if the remote net supports them
2015-07-13 18:23:58 -07:00
James Lu
d8cb3f1973
relay: spawn users on the right pseudoservers, and use SJOIN to introduce them if possible
2015-07-13 16:09:22 -07:00
James Lu
67f5bbba4b
add a utils.started threaded trigger, so plugins can ACTUALLY wait until all Irc objects have been initialized to do their work
2015-07-13 16:07:55 -07:00
James Lu
a7a5688e69
pr/insp: add sjoinClient(), make auto-endburst optional for spawnServer
2015-07-13 16:06:58 -07:00
James Lu
b3528a2b04
relay: better channel initialization
2015-07-13 00:01:04 -07:00
James Lu
b3206822d2
relay: fix users being cloned on every JOIN
2015-07-12 23:31:26 -07:00
James Lu
6b9ec694b7
relay: basic JOIN handling
2015-07-12 23:28:54 -07:00
James Lu
45cef19eaa
Make plugins global, not per IRC instance
2015-07-12 23:28:34 -07:00
James Lu
3c2d0dbe3f
relay: (de)initialize channels using shared initialize/removechannel()
2015-07-12 19:03:18 -07:00
James Lu
0dc0770d6d
relay: add LINK and DELINK commands; many fixes to checkers (WIP)
2015-07-12 17:59:09 -07:00