Vladimir 
							
						 
					 
					
						
						
						
						
							
						
						
							8f73e5e5a1 
							
						 
					 
					
						
						
							
							Update PluginSys.cpp  
						
						
						
					 
					
						2021-05-24 14:30:16 -07:00 
						 
				 
			
				
					
						
							
							
								Vladimir 
							
						 
					 
					
						
						
						
						
							
						
						
							62142197c1 
							
						 
					 
					
						
						
							
							Add OnNotifyPluginUnloaded forward  
						
						
						
					 
					
						2021-05-24 14:30:16 -07:00 
						 
				 
			
				
					
						
							
							
								Vladimir 
							
						 
					 
					
						
						
						
						
							
						
						
							ff43e60831 
							
						 
					 
					
						
						
							
							Revert "Add HookPluginUnload() and UnhookPluginUnload() functions"  
						
						... 
						
						
						
						This reverts commit 2c2d219f3f07d31ba84aa88acfae353c82e75dec. 
						
					 
					
						2021-05-24 14:30:16 -07:00 
						 
				 
			
				
					
						
							
							
								Vladimir 
							
						 
					 
					
						
						
						
						
							
						
						
							babc6abc64 
							
						 
					 
					
						
						
							
							Revert "Update PluginSys.cpp"  
						
						... 
						
						
						
						This reverts commit dd10098844562112c4b57e97da6b20e4cf4ff30b. 
						
					 
					
						2021-05-24 14:30:16 -07:00 
						 
				 
			
				
					
						
							
							
								Vladimir 
							
						 
					 
					
						
						
						
						
							
						
						
							499f7160a4 
							
						 
					 
					
						
						
							
							Update PluginSys.cpp  
						
						... 
						
						
						
						Fix not passing Plugin Handle 
						
					 
					
						2021-05-24 14:30:16 -07:00 
						 
				 
			
				
					
						
							
							
								Vladimir 
							
						 
					 
					
						
						
						
						
							
						
						
							c874703136 
							
						 
					 
					
						
						
							
							Add HookPluginUnload() and UnhookPluginUnload() functions  
						
						
						
					 
					
						2021-05-24 14:30:16 -07:00 
						 
				 
			
				
					
						
							
							
								peace-maker 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							6ea1e39ee4 
							
						 
					 
					
						
						
							
							core/sm: Harden plugin loading path requirements ( #1437 )  
						
						... 
						
						
						
						* Harden plugin loading path requirements
Restrict loading of plugins to the `sourcemod/plugins` folder and require the `.smx` file extension.
Symlinks inside the `plugins` folder are fine.
This behavior was abused as part of justCTF 2020 in the PainterHell challenge by cypis. Thank you!
* Restrict extension loading to extensions folder
* Add NULL file extension check in LoadExtension
hi @KyleS 
						
					 
					
						2021-03-07 14:33:33 -08:00 
						 
				 
			
				
					
						
							
							
								Peace-Maker 
							
						 
					 
					
						
						
						
						
							
						
						
							ba8753836e 
							
						 
					 
					
						
						
							
							Cleanly remove all hooks on extension unload  
						
						... 
						
						
						
						Allows to e.g. reload sdktools during runtime without crashing. Useful for fast development cycles. 
						
					 
					
						2020-12-16 15:52:48 +01:00 
						 
				 
			
				
					
						
							
							
								Headline 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							4e2806c951 
							
						 
					 
					
						
						
							
							Notify plugin reloads on next frame ( #1292 )  
						
						
						
					 
					
						2020-06-21 23:31:52 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							80acff8d7d 
							
						 
					 
					
						
						
							
							Replace ke::LinkedList with std::list.  
						
						
						
					 
					
						2020-05-31 23:19:41 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							5d94f0bea8 
							
						 
					 
					
						
						
							
							Replace ke::Vector with std::vector.  
						
						
						
					 
					
						2020-05-31 11:35:51 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							b725196a26 
							
						 
					 
					
						
						
							
							Replace AString with std::string.  
						
						
						
					 
					
						2020-05-20 17:57:18 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							301bafa3f5 
							
						 
					 
					
						
						
							
							Replace more Move/Forward with STL variants.  
						
						
						
					 
					
						2020-05-19 12:56:28 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							7d7253c9cc 
							
						 
					 
					
						
						
							
							Update AMTL; replace AutoPtr/UniquePtr with STL.  
						
						
						
					 
					
						2020-05-18 18:19:16 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							c2df49ee33 
							
						 
					 
					
						
						
							
							Rename ke::Lambda to ke::Function.  
						
						
						
					 
					
						2020-05-17 12:33:52 -07:00 
						 
				 
			
				
					
						
							
							
								MartLegion 
							
						 
					 
					
						
						
						
						
							
						
						
							e47c1a840a 
							
						 
					 
					
						
						
							
							Pad plugin ID based on the total plugin count ( #1027 )  
						
						... 
						
						
						
						Closes  #994  
					
						2019-06-17 01:06:03 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Flaherty 
							
						 
					 
					
						
						
						
						
							
						
						
							aaac0b9eb2 
							
						 
					 
					
						
						
							
							Individualize NameHashSet Hashing & Revisit  #709  ( #740 )  
						
						... 
						
						
						
						* Make mac/win lookups lowercase'd
* Revert #709  & 81042cc
* Adjust HashPolicy implementation across sourcemod
Basically, in order to implement our own (actual) hash policy in
`PluginSys.h`, we needed to remove the blanket implementation of `hash`
that was used before. Now, each policy must implement `hash` along with
`matches` in order to be used with `NameHashSet`. While this does force
us to change every implementation of policies across the entirety of
sourcemod, it allows core to use flexible implementations of `hash`.
* Remove logic duplication
* Improve lowercase checks 
						
					 
					
						2018-07-10 17:38:40 -04:00 
						 
				 
			
				
					
						
							
							
								Michael Flaherty 
							
						 
					 
					
						
						
						
						
							
						
						
							956f264b85 
							
						 
					 
					
						
						
							
							Replace ke::SafeSprintf with ke::SafeStrcpy ( #784 )  
						
						
						
					 
					
						2018-03-19 20:12:51 +00:00 
						 
				 
			
				
					
						
							
							
								Asher Baker 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f156d48f45 
							
						 
					 
					
						
						
							
							Include missing ctype header for macOS build  
						
						
						
					 
					
						2017-10-28 12:51:55 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Flaherty 
							
						 
					 
					
						
						
						
						
							
						
						
							90ddc16a4b 
							
						 
					 
					
						
						
							
							Lowercase windows/mac paths to avoid plugin duplicate loadings (Bug 6491) ( #709 )  
						
						
						
					 
					
						2017-10-28 12:44:25 +01:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							27e812461f 
							
						 
					 
					
						
						
							
							Update to the latest SourcePawn and AMTL.  
						
						
						
					 
					
						2016-09-24 16:45:04 -07:00 
						 
				 
			
				
					
						
							
							
								Fyren 
							
						 
					 
					
						
						
						
						
							
						
						
							4e654704dc 
							
						 
					 
					
						
						
							
							Slightly better handling of plugin reloading.  
						
						
						
					 
					
						2016-06-06 22:26:34 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Hastings 
							
						 
					 
					
						
						
						
						
							
						
						
							11b4320204 
							
						 
					 
					
						
						
							
							Fix potential crash on plugin load when a required library is not found.  
						
						
						
					 
					
						2016-04-27 10:49:39 -04:00 
						 
				 
			
				
					
						
							
							
								Peace-Maker 
							
						 
					 
					
						
						
						
						
							
						
						
							df59fd5b0e 
							
						 
					 
					
						
						
							
							Fix scheduled plugin unloading  
						
						... 
						
						
						
						When unloading a plugin no plugin is allowed to execute code. There's
been some flawed logic in the scheduling, leading it to bail out if the
plugin was marked for scheduled unloading..
Also change the "error" message of `sm plugins unload` to something
nice. 
						
					 
					
						2016-02-29 16:40:24 +01:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							e2b399b8d3 
							
						 
					 
					
						
						
							
							Update to the latest AMTL - Rename Ref to RefPtr.  
						
						
						
					 
					
						2015-11-08 13:14:57 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							c849616003 
							
						 
					 
					
						
						
							
							Add an OnPluginWillUnload callback that precedes OnPluginEnd().  
						
						
						
					 
					
						2015-11-01 00:30:37 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							d674414cf0 
							
						 
					 
					
						
						
							
							Add a versioned IPluginsListener and deprecate the non-versioned class.  
						
						
						
					 
					
						2015-11-01 00:23:33 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							cb3f6df111 
							
						 
					 
					
						
						
							
							Require that no plugin code be live when any plugin unloads.  
						
						
						
					 
					
						2015-10-31 19:38:30 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							59623695af 
							
						 
					 
					
						
						
							
							Improve plugin console diagnostics.  
						
						
						
					 
					
						2015-10-31 17:30:33 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							87e9dee78b 
							
						 
					 
					
						
						
							
							Evict plugins that fail to load.  
						
						
						
					 
					
						2015-10-31 17:30:33 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							62edc5f4c0 
							
						 
					 
					
						
						
							
							Clean up "sm plugins list" after status meaning clarifications.  
						
						
						
					 
					
						2015-10-31 17:25:59 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							485ade2610 
							
						 
					 
					
						
						
							
							Fix a number of inconsistencies in plugin state.  
						
						... 
						
						
						
						1. Fixed OnPluginUnloaded not pairing if the plugin failed.
2. Unify error message handling in the second pass.
3. Do not add libraries if a plugin failed during OnPluginStart. 
						
					 
					
						2015-10-31 17:25:59 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							9e4fff3362 
							
						 
					 
					
						
						
							
							Add a state variable to CPlugin to indicate queue/list membership.  
						
						
						
					 
					
						2015-10-31 17:25:59 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							7cc911ae58 
							
						 
					 
					
						
						
							
							Separate plugin unloading into an eviction step, which disconnects the plugin from Core.  
						
						... 
						
						
						
						Note: this also ensures that library action callbacks are balanced (i.e., we do not notify
libraries are being dropped if they were never notified as being added). 
						
					 
					
						2015-10-31 17:25:59 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							82ff7d5af7 
							
						 
					 
					
						
						
							
							Rename CPlugin::SetErrorState to EvictWithError.  
						
						
						
					 
					
						2015-10-31 17:25:59 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							c4c6efb140 
							
						 
					 
					
						
						
							
							Remove a crazy unused function from CPluginManager.  
						
						
						
					 
					
						2015-10-31 17:25:59 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							ab1b915a3c 
							
						 
					 
					
						
						
							
							Fix re-entrancy issues in CPluginManager by using ReentrantList.  
						
						
						
					 
					
						2015-10-31 17:24:22 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							709149fbed 
							
						 
					 
					
						
						
							
							Remove the CPluginIterator cache.  
						
						
						
					 
					
						2015-10-31 17:23:24 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							c21b3a36fc 
							
						 
					 
					
						
						
							
							Remove CPluginManager direct use of CPlugin::NativeOwner::m_fakes.  
						
						
						
					 
					
						2015-10-31 17:19:10 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							f765c8d436 
							
						 
					 
					
						
						
							
							Remove CPluginManager direct use of CPlugin::m_LibraryMissing.  
						
						
						
					 
					
						2015-10-31 17:19:10 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							ae44a6540a 
							
						 
					 
					
						
						
							
							Remove CPluginManager direct use of CPlugin::m_FakeNativesMissing.  
						
						
						
					 
					
						2015-10-31 17:19:10 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							f27dbaf716 
							
						 
					 
					
						
						
							
							Remove CPluginManager direct use of CPlugin::m_RequiredLibs.  
						
						
						
					 
					
						2015-10-31 17:19:10 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							717ad38d06 
							
						 
					 
					
						
						
							
							Remove CPluginManager direct use of CPlugin::m_errormsg.  
						
						
						
					 
					
						2015-10-31 17:19:10 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							60f06d1414 
							
						 
					 
					
						
						
							
							Remove CPluginManager direct use of CPlugin::m_FileVersion.  
						
						
						
					 
					
						2015-10-31 17:19:10 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							a579136a3d 
							
						 
					 
					
						
						
							
							Remove CPluginManager direct use of CPlugin::m_DateTime.  
						
						
						
					 
					
						2015-10-31 17:19:10 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							2f3d523ac0 
							
						 
					 
					
						
						
							
							Remove CPluginManager use of CPlugin::m_pRuntime.  
						
						
						
					 
					
						2015-10-31 17:19:10 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							df5c53fa4a 
							
						 
					 
					
						
						
							
							Remove CPluginManager direct use of CPlugin::m_filename.  
						
						
						
					 
					
						2015-10-31 17:19:10 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							46c069dbbe 
							
						 
					 
					
						
						
							
							Remove CPluginManager direct use of CPlugin::m_Libraries.  
						
						
						
					 
					
						2015-10-31 17:19:09 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							bda9defc0f 
							
						 
					 
					
						
						
							
							Remove CPlugin's friend access to CPluginManager.  
						
						
						
					 
					
						2015-10-31 17:19:09 -07:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							9b1678bd18 
							
						 
					 
					
						
						
							
							Remove error outparams from first-pass internal plugin loading commands.  
						
						
						
					 
					
						2015-09-21 00:51:20 -07:00