aboutsummaryrefslogtreecommitdiff
path: root/extension/curlmanager.h
diff options
context:
space:
mode:
authorsappho <sappho@sappho.io>2023-07-14 07:19:14 -0400
committerGitHub <noreply@github.com>2023-07-14 07:19:14 -0400
commit7b92e4acf6dea29348efeb4c0cc89e3071aee56e (patch)
tree069032a9c6eb3ccc8f0089d8bbbb9ffe8ccacdd3 /extension/curlmanager.h
parent581d1e994692f9ce4e5d8071e8edba1e71412bac (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.h48
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
+