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