diff options
author | sappho <sappho@sappho.io> | 2023-07-14 07:19:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-14 07:19:14 -0400 |
commit | 7b92e4acf6dea29348efeb4c0cc89e3071aee56e (patch) | |
tree | 069032a9c6eb3ccc8f0089d8bbbb9ffe8ccacdd3 /extension/curlmanager.h | |
parent | 581d1e994692f9ce4e5d8071e8edba1e71412bac (diff) |
ci fixes and repo cleanup + small tweaks and first release (#2)v2.0.0-beta
* Update docker_build.yml
* Update docker_build.yml
* Update docker_build.yml
* attempt to lint
* use tags
* Update docker_build.yml
* reorganize repo
* correct typo with build dir
* hacky chmod/chown for docker builds
* more hacks for chmod
* try to hack docker to work again
* fix invalid syntax
* remove extension in repo, remove spaces, fixup gitignore
* twiddle around with making releases with commits
* more ci testing to use non deprecated actions
* Update docker_build.yml
* more ci twiddling (ugh)
* more lint and run the actual job now
* lint more and use deb slim
* autogen rel notes (?)
* fixup bad quotes
* sigh. fix quotes again
* save beta autotagging for a later date
* gitignore
* fix so users don't use removed hash funcs
* add max dbg info to ext
* update versionings
Diffstat (limited to 'extension/curlmanager.h')
-rw-r--r-- | extension/curlmanager.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/extension/curlmanager.h b/extension/curlmanager.h new file mode 100644 index 0000000..f1362a4 --- /dev/null +++ b/extension/curlmanager.h @@ -0,0 +1,48 @@ +#ifndef _INCLUDE_SOURCEMOD_EXTENSION_CURLMANAGER_H_ +#define _INCLUDE_SOURCEMOD_EXTENSION_CURLMANAGER_H_ + +#include "extension.h" +#include "curlthread.h" + +class cURLManager +{ +public: + void SDK_OnLoad(); + void SDK_OnUnload(); + +public: + void CreatecURLThread(cURLThread *thread); + void RemovecURLThread(cURLThread *thread); + +public: + void RemovecURLHandle(cURLHandle *handle); + bool AddcURLOptionString(cURLHandle *handle, CURLoption opt, char *value); + bool AddcURLOptionInt(cURLHandle *handle, CURLoption opt, int value); + bool AddcURLOptionInt64(cURLHandle *handle, CURLoption opt, long long value); + bool AddcURLOptionHandle(IPluginContext *pContext, cURLHandle *handle, HandleSecurity *sec, CURLoption opt, Handle_t hndl); + bool AddcURLOptionFunction(IPluginContext *pContext, cURLHandle *handle, CURLoption opt, IPluginFunction *pFunction, int value); + void LoadcURLOption(cURLHandle *handle); + +private: + void RemoveLinkedICloseHelper(cURLHandle *handle); + +public: + CURLFORMcode cURLFormAdd(IPluginContext *pContext, const cell_t *params, WebForm *handle); + +public: + void AddCloseHelperHandle(ICloseHelper *helper); + void RemoveCloseHelperHandle(ICloseHelper *helper); + +private: + bool waiting; + IMutex *curlhandle_list_mutex; + IMutex *closehelper_list_mutex; + IEventSignal *shutdown_event; + SourceHook::List<cURLThread *> g_cURLThread_List; + SourceHook::List<ICloseHelper *> g_CloseHelper_List; +}; + +extern cURLManager g_cURLManager; + +#endif + |