From d643bdb4bd5cda1bed5c8de79de456782c785dff Mon Sep 17 00:00:00 2001 From: stephanie sappho lenzo Date: Thu, 13 Jul 2023 06:11:48 -0400 Subject: inital commit --- curlmanager.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 curlmanager.h (limited to 'curlmanager.h') diff --git a/curlmanager.h b/curlmanager.h new file mode 100644 index 0000000..f1362a4 --- /dev/null +++ b/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 g_cURLThread_List; + SourceHook::List g_CloseHelper_List; +}; + +extern cURLManager g_cURLManager; + +#endif + -- cgit v1.2.3