James Lu 
							
						 
					 
					
						
						
						
						
							
						
						
							3d621b00df 
							
						 
					 
					
						
						
							
							Move checkAuthenticated() to utils, and give it and isOper() toggles for allowing oper/PyLink logins  
						
						 
						
						
						
						
					 
					
						2015-08-25 20:47:21 -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 
							
						 
					 
					
						
						
						
						
							
						
						
							c1d98838d7 
							
						 
					 
					
						
						
							
							plugins/admin: allow sending KICK from servers ( #90 )  
						
						 
						
						
						
						
					 
					
						2015-08-21 00:39:58 -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 
							
						 
					 
					
						
						
						
						
							
						
						
							b2e1f9678f 
							
						 
					 
					
						
						
							
							plugins/admin: make command sending loop via hooks  
						
						 
						
						... 
						
						
						
						This should allow plugins like relay to relay messages, kicks, etc. sent from these admin commands to actually work, preventing desyncs. 
						
						
					 
					
						2015-08-15 05:12:49 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								James Lu 
							
						 
					 
					
						
						
						
						
							
						
						
							d3ee7ed918 
							
						 
					 
					
						
						
							
							plugins/admin: fix command help for 'mode'  
						
						 
						
						
						
						
					 
					
						2015-08-15 05:12:20 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								James Lu 
							
						 
					 
					
						
						
						
						
							
						
						
							f53e818438 
							
						 
					 
					
						
						
							
							plugins/admin: add 'msg' command ( #90 )  
						
						 
						
						
						
						
					 
					
						2015-08-15 04:51:32 -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 
							
						 
					 
					
						
						
						
						
							
						
						
							880b59c2c1 
							
						 
					 
					
						
						
							
							utils.isOper: check for both umode +o and login status  
						
						 
						
						... 
						
						
						
						Also, make commands.status show this isOper result. 
						
						
					 
					
						2015-08-02 19:41:40 -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