From 6dcdf3a6ba2142f575ace148f2fd7baca4115486 Mon Sep 17 00:00:00 2001 From: proxict Date: Wed, 9 Feb 2022 01:13:46 +0100 Subject: [PATCH] Removed unused plugin code --- dis/plugin_handler.c | 1014 ------------------------------------------ dis/plugin_handler.h | 128 ------ 2 files changed, 1142 deletions(-) delete mode 100644 dis/plugin_handler.c delete mode 100644 dis/plugin_handler.h diff --git a/dis/plugin_handler.c b/dis/plugin_handler.c deleted file mode 100644 index fab9beac..00000000 --- a/dis/plugin_handler.c +++ /dev/null @@ -1,1014 +0,0 @@ -#ifndef PLUGIN_HANDLER_C -#define PLUGIN_HANDLER_C - - - -#define P_P_F __attribute__((__noinline__)) __attribute__((__cdecl__)) - -pluginWrapper_t pluginFunctions; - -#include "plugin_com.c" - -void Plugin_Init() -{ - void *ptr; - int i; - pluginFunctions.loadedPlugins=0; - pluginFunctions.enabled=qfalse; - - Com_Printf("Plugin_Init: Plugins initialization successfull.\n"); - memset(&pluginFunctions,0x00,sizeof(pluginFunctions)); // 0 all data - pluginFunctions.enabled=qtrue; - - Cmd_AddCommand("loadPlugin", Plugin_LoadPlugin_f); - Cmd_AddCommand("unloadPlugin", Plugin_UnLoadPlugin_f); - Cmd_AddCommand("plugins", Plugin_PluginList_f); - Cmd_AddCommand("pluginInfo", Plugin_PluginInfo_f); -} -void Plugin_Load(char* name, size_t size) -{ - int i,j,nstrings; - char dll[256],*strings; - char* realpath; - void *lib_handle; - elf_data_t text; - pluginInfo_t info; - - if(!pluginFunctions.enabled){ - Com_Printf("Plugin handler is not initialized!\n"); - return; - - } - if(pluginFunctions.loadedPlugins>=MAX_PLUGINS-1){ - Com_Printf("Too many plugins loaded."); - return; - } - - if(size>128){ - Com_Printf("File name too long."); - return; - } - Com_DPrintf("Checking if the plugin is not already loaded...\n"); - // Check if the plugin is not already loaded... - for(i=0;i PLUGIN_HANDLER_VERSION){ - Com_PrintError("This plugin might not be compatible with this server version! Requested plugin handler version: %g, server's plugin handler version: %g. Unloading the plugin...\n",info.handlerVersion,PLUGIN_HANDLER_VERSION); - Plugin_Unload(i); - return; - } - else if(PLUGIN_HANDLER_VERSION - info.handlerVersion >= 0.1){ - Com_PrintWarning("This plugin might not be compatible with this server version! Requested plugin handler version: %g, server's plugin handler version: %g.\n",info.handlerVersion,PLUGIN_HANDLER_VERSION); - - } - - Com_Printf("Plugin %s loaded successfully. Server is currently running %d plugins.\n",pluginFunctions.plugins[i].name,pluginFunctions.loadedPlugins); - } - else{ - Com_PrintError("function OnInfoRequest not found in the plugin file. Unloading...\n"); - Plugin_Unload(i); - return; - - } - Com_Printf("Plugin %s loaded successfully. Server is currently running %d plugins.\n",pluginFunctions.plugins[i].name,pluginFunctions.loadedPlugins); - return; - } - - -} -void Plugin_Unload(int id) -{ - void *lib_handle; - int i; - if(pluginFunctions.plugins[id].loaded){ - if(pluginFunctions.plugins[id].exports != 0){ // Library-plugins cannot be unloaded, see plugins/readme.txt - Com_PrintError("Plugin_Unload: Cannot unload a library plugin!\n"); - return; - } - if(pluginFunctions.plugins[id].scriptfunctions != 0 || pluginFunctions.plugins[id].scriptmethods != 0){ - // Script-library plugins cannot be unloaded, see plugins/readme.txt - Com_PrintError("Plugin_Unload: Cannot unload a script-library plugin!\n"); - return; - } - if(pluginFunctions.plugins[id].OnUnload != NULL) - (*pluginFunctions.plugins[id].OnUnload)(); - // Remove all server commands of the plugin - for(i=0;i funcptrs[2]) - return i; - } - return -1; -} - -/*P_P_F int Plugin_CallerID() -{ - //asm volatile (""); // this + inline attribute prevents compiler optimization which removes the function call - int i,j; - void *funcptrs[3]; - char **names; - char buff[256]; - j = backtrace(funcptrs,3); - names = backtrace_symbols(funcptrs,j); - if(!names) - Com_Error(ERR_FATAL,"Function backtrace_symbols() is not working properly!"); - //Com_Printf("DEBUG: \"%s\",\"%s\",\"%s\".\n",names[0],names[1],names[2]); - if(strncmp(names[2],"plugins/",8)==0){ - j = strlen(names[2]); - for(i=8;i= PLUGINS_ITEMCOUNT){ - Com_DPrintf("Plugins: unknown event occured! Event ID: %d.\n",eventID); - return; - } - - va_list argptr; - - va_start(argptr, eventID); - void *arg_0 = va_arg(argptr, void*); - void *arg_1 = va_arg(argptr, void*); - void *arg_2 = va_arg(argptr, void*); - void *arg_3 = va_arg(argptr, void*); - void *arg_4 = va_arg(argptr, void*); - void *arg_5 = va_arg(argptr, void*); - - va_end(argptr); - - for(i=0;i < pluginFunctions.loadedPlugins; i++){ - if(pluginFunctions.plugins[i].OnEvent[eventID]!= NULL) - (*pluginFunctions.plugins[i].OnEvent[eventID])(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5); - } -} - - -/* -void Plugin_Event(int eventID, void *dataPt) -{ - int i=0; - - if(!pluginFunctions.enabled) - return; - - switch(eventID){ - case PLUGINS_ONPLAYERDC: - for(i=0;iinteger; -} -qboolean Plugin_IsSvRunning() -{ - if(com_sv_running) - return com_sv_running->boolean; - else - return qfalse; -} -void Plugin_ChatPrintf(int slot, char *fmt, ... ) -{ - //int ebp,*ptr; - char str[256]; - client_t *cl; - va_list vl; - - cl = slot >=0 ? &(svs.clients[slot]) : NULL; - va_start(vl,fmt); - vsprintf(str,fmt,vl); - va_end(vl); - SV_SendServerCommand(cl, "h \"%s\"", str); -} -void Plugin_BoldPrintf(int slot, char *fmt, ... ) -{ - char str[256]; - client_t *cl; - va_list vl; - cl = slot >=0 ? &(svs.clients[slot]) : NULL; - va_start(vl,fmt); - vsprintf(str,fmt,vl); - va_end(vl); - SV_SendServerCommand(cl, "c \"%s\"", str); -} -char *Plugin_GetPlayerName(int slot) -{ - return svs.clients[slot].name; -} -void Plugin_CmdExecute_f() -{ - Com_DPrintf("Attempting to execute a plugin command '%s'.\n",Cmd_Argv(0)); - if(!pluginFunctions.enabled){ - Com_DPrintf("Error! Tried executing a plugin command with plugins being disabled! Command name: '%s'.\n",Cmd_Argv(1)); - return; - } - char name[128]; - int i,j; - void (*func)(); - strcpy(name,Cmd_Argv(0)); - for(i=0;i=MAX_PLUGINS){ - Com_PrintError("Tried adding a command for a plugin with non existent pID. pID supplied: %d.\n",pID); - return; - }else if(pID<0){ - Com_PrintError("Plugin_AddServerCommand called from not within a plugin or from a disabled plugin!\n"); - return; - } - if(!pluginFunctions.plugins[pID].loaded){ - Com_PrintError("Tried adding a command for not loaded plugin! PID: %d.\n",pID); - } - Com_DPrintf("Adding a plugin command for plugin %d, command name: %s.\n",pID,name); - Cmd_AddCommand(name,Plugin_CmdExecute_f); - Cmd_SetPower(name, power); - pluginFunctions.plugins[pID].cmd[pluginFunctions.plugins[pID].cmds].xcommand = xcommand; - strcpy(pluginFunctions.plugins[pID].cmd[pluginFunctions.plugins[pID].cmds++].name,name); - Com_DPrintf("Command added.\n"); - // pluginFunctions.plugins[pID]. - - -} -void Plugin_RemoveCommand(int pID,char *name) -{ - int i,j,k; - j=pluginFunctions.plugins[pID].cmds; - for(i=0;i=MAX_PLUGINS){ - Com_Printf("Error: tried adding a script command for a plugin with non existent pID. pID supplied: %d.\n",pID); - return; - }else if(pID<0){ - Com_Printf("Plugin Handler error: Plugin_ScrAddFunction called from not within a plugin or from a disabled plugin!\n"); - return; - } - if(!pluginFunctions.plugins[pID].loaded){ - Com_Printf("Error: Tried adding a command for not loaded plugin! PID: %d.\n",pID); - } - Com_Printf("Adding a plugin script function for plugin %d, command name: %s.\n",pID,name); - Cmd_AddCommand(name, xcommand); - pluginFunctions.plugins[pID].cmd[pluginFunctions.functions[pID].cmds].xcommand = xcommand; - strcpy(pluginFunctions.plugins[pID].cmd[pluginFunctions.plugins[pID].cmds++].name,name); - Com_Printf("Command added.\n"); - // pluginFunctions.plugins[pID]. - - -} -void Plugin_ScrRemoveFunction(int pID,char *name) -{ - int i,j,k; - j=pluginFunctions.plugins[pID].cmds; - for(i=0;i\n", Cmd_Argv(0)); - return; - } - Plugin_Load(Cmd_Argv(1),128); -} -void Plugin_UnLoadPlugin_f() -{ - if( Cmd_Argc() < 2){ - Com_Printf("Usage: %s \n", Cmd_Argv(0)); - return; - } - Plugin_UnloadByName(Cmd_Argv(1),128); -} -void Plugin_PluginInfo_f() -{ - if(Cmd_Argc() < 2){ - Com_Printf("Usage: %s \n",Cmd_Argv(0)); - return; - } - int id = Plugin_GetID(Cmd_Argv(1),strlen(Cmd_Argv(1))); - int i; - pluginInfo_t info; - if(id<0){ - Com_Printf("Plugin \"%s\" is not loaded!\n",Cmd_Argv(1)); - return; - } - (*pluginFunctions.plugins[id].OnInfoRequest)(&info); - Com_Printf("\n"); - Com_Printf("\n^2Plugin name:^7\n%s\n\n",pluginFunctions.plugins[id].name); - Com_Printf("\n^2Plugin version:^7\n%g\n\n",info.pluginVersion); - Com_Printf("\n^2Full plugin name:^7\n%s\n\n",info.fullName); - Com_Printf("\n^2Short plugin description:^7\n%s\n\n",info.shortDescription); - Com_Printf("\n^2Full plugin description:^7\n%s\n\n",info.longDescription); - Com_Printf("\n^2Plugin commands:^7\n\n"); - for(i=0;i= PLUGIN_MAX_SOCKETS || connection < 0){ - Com_PrintError("Plugin_TcpConnect: Second argument can only be a value inside the range: 0...%d plugin ID: #%d\n", PLUGIN_MAX_SOCKETS); - return qfalse; - } - return Plugin_TcpConnect(pID, remote, connection); - -} - - -int Plugin_TcpGetData(int pID, int connection, void* buf, int size ) -{ - int len; - pluginTcpClientSocket_t* ptcs = &pluginFunctions.plugins[pID].sockets[connection]; - - if(ptcs->sock < 1){ - Com_PrintWarning("Plugin_TcpGetData: called on a non open socket for plugin ID: #%d\n", pID); - return -1; - } - len = NET_TcpGetData(&ptcs->sock, buf, size); - - return len; -} - - -P_P_F int Plugin_TcpGetData_p(int connection, void* buf, int size) -{ - int pID; - //Identify the calling plugin - pID = Plugin_CallerID(); - if(pID<0){ - Com_Printf("Plugin_TcpGetData: Error! Tried get TCP data for unknown plugin!\n"); - return -1; - } - if(pluginFunctions.plugins[pID].enabled==qfalse){ - Com_Printf("^1WARNING^7: Plugin_TcpGetData: Tried get TCP data for a disabled plugin!\n"); - return -1; - } - if(connection >= PLUGIN_MAX_SOCKETS || connection < 0){ - Com_PrintError("Plugin_TcpGetData: First argument can only be a value inside the range: 0...%d plugin ID: #%d\n", PLUGIN_MAX_SOCKETS, pID); - return -1; - } - if(buf == NULL){ - Com_PrintError("Plugin_TcpGetData: Third argument can not be a NULL-Pointer for plugin ID: #%d\n", pID); - return -1; - } - - return Plugin_TcpGetData(pID, connection, buf, size); -} - -qboolean Plugin_TcpSendData(int pID, int connection, void* data, int len) -{ - pluginTcpClientSocket_t* ptcs = &pluginFunctions.plugins[pID].sockets[connection]; - - if(ptcs->sock < 1){ - Com_PrintWarning("Plugin_TcpSendData: called on a non open socket for plugin ID: #%d\n", pID); - return qfalse; - } - return NET_TcpSendData(&ptcs->sock, data, len); - -} - - -P_P_F qboolean Plugin_TcpSendData_p(int connection, void* data, int len) -{ - - - int pID; - //Identify the calling plugin - pID = Plugin_CallerID(); - if(pID<0){ - Com_Printf("Plugin_TcpSendData: Error! Tried get TCP data for unknown plugin!\n"); - return qfalse; - } - if(pluginFunctions.plugins[pID].enabled==qfalse){ - Com_Printf("^1WARNING^7: Plugin_TcpSendData: Tried get TCP data for a disabled plugin!\n"); - return qfalse; - } - if(connection >= PLUGIN_MAX_SOCKETS || connection < 0){ - Com_PrintError("Plugin_TcpSendData: Second argument can only be a value inside the range: 0...%d plugin ID: #%d\n", PLUGIN_MAX_SOCKETS, pID); - return qfalse; - } - if(data == NULL){ - Com_PrintError("Plugin_TcpSendData: Second argument can not be a NULL-Pointer for plugin ID: #%d\n", pID); - return qfalse; - } - - return Plugin_TcpSendData(pID, connection, data, len); -} - - -void Plugin_TcpCloseConnection(int pID, int connection) -{ - pluginTcpClientSocket_t* ptcs = &pluginFunctions.plugins[pID].sockets[connection]; - - if(ptcs->sock < 1){ - Com_PrintWarning("Plugin_TcpCloseConnection: Called on a non open socket for plugin ID: #%d\n", pID); - return; - } - NET_TcpCloseConnection(&ptcs->sock); - -} - - -P_P_F void Plugin_TcpCloseConnection_p(int connection) -{ - int pID; - //Identify the calling plugin - pID = Plugin_CallerID(); - if(pID<0){ - Com_Printf("Plugin_TcpCloseConnection: Error! Tried get close a connection for unknown plugin!\n"); - return; - } - if(pluginFunctions.plugins[pID].enabled==qfalse){ - Com_Printf("^1WARNING^7: Plugin_TcpCloseConnection: Tried to close a connection for a disabled plugin!\n"); - return; - } - if(connection >= PLUGIN_MAX_SOCKETS || connection < 0){ - Com_PrintError("Plugin_TcpCloseConnection: Second argument can only be a value inside the range: 0...%d plugin ID: #%d\n", PLUGIN_MAX_SOCKETS, pID); - return; - } - Plugin_TcpCloseConnection(pID, connection); -} -*/ -P_P_F qboolean Plugin_UdpSendData_p(netadr_t* to, void* data, int len) -{ - int pID; - - if(to == NULL){ - pID = Plugin_CallerID(); - Com_PrintError("Plugin_UdpSendData: First argument can not be a NULL-Pointer for plugin ID: #%d\n", pID); - return qfalse; - } - - if(data == NULL){ - pID = Plugin_CallerID(); - Com_PrintError("Plugin_UdpSendData: First argument can not be a NULL-Pointer for plugin ID: #%d\n", pID); - return qfalse; - } - return Sys_SendPacket( len, data, to); -} - -P_P_F void Plugin_ServerPacketEvent_p(netadr_t* to, void* data, int len) -{ - msg_t msg; - msg.data = data; - msg.cursize = len; - msg.maxsize = len; - msg.bit = 0; - msg.overflowed = qfalse; - msg.readonly = qtrue; - - SV_PacketEvent( to, &msg ); -} - -P_P_F void Plugin_SetPlayerUID_p(unsigned int clientslot, unsigned int uid) -{ - client_t *cl; - if(!psvs.useuids){ - Plugin_Error(P_ERROR_TERMINATE, "Plugin tried to set UID while server don't work with UIDs\n"); - } - if(clientslot > sv_maxclients->integer) - { - Plugin_Error(P_ERROR_TERMINATE, va("Plugin tried to set UID for bad client: %d\n", clientslot)); - } - cl = &svs.clients[clientslot]; - cl->uid = uid; -} - -P_P_F unsigned int Plugin_GetPlayerUID_p(unsigned int clientslot) -{ - client_t *cl; - if(!psvs.useuids){ - Plugin_Error(P_ERROR_TERMINATE, "Plugin tried to get UID while server don't work with UIDs\n"); - } - if(clientslot > sv_maxclients->integer) - { - Plugin_Error(P_ERROR_TERMINATE, va("Plugin tried to get UID for bad client: %d\n", clientslot)); - } - cl = &svs.clients[clientslot]; - return cl->uid; -} - -P_P_F const char* Plugin_GetPlayerGUID_p(unsigned int clientslot) -{ - client_t *cl; - if(clientslot > sv_maxclients->integer) - { - Plugin_Error(P_ERROR_TERMINATE, va("Plugin tried to get GUID for bad client: %d\n", clientslot)); - } - cl = &svs.clients[clientslot]; - return cl->pbguid; -} - -P_P_F void Plugin_SetPlayerGUID_p(unsigned int clientslot, const char* guid) -{ - client_t *cl; - if(clientslot > sv_maxclients->integer) - { - Plugin_Error(P_ERROR_TERMINATE, va("Plugin tried to get GUID for bad client: %d\n", clientslot)); - } - cl = &svs.clients[clientslot]; - Q_strncpyz(cl->pbguid, guid, sizeof(cl->pbguid)); -} - -P_P_F void Plugin_SetPlayerNoPB_p(unsigned int clientslot) -{ - client_t *cl; - if(clientslot > sv_maxclients->integer) - { - Plugin_Error(P_ERROR_TERMINATE, va("Plugin tried to set No PunkBuster flag for bad client: %d\n", clientslot)); - } - cl = &svs.clients[clientslot]; - cl->noPb = qtrue; -} - -P_P_F int Plugin_DoesServerUseUids_p(void) -{ - return psvs.useuids; -} - -P_P_F void Plugin_SetServerToUseUids_p(int useuids) -{ - psvs.useuids = useuids; -} - -P_P_F int Plugin_GetLevelTime_p(void) -{ - return level.time; -} - -P_P_F int Plugin_GetServerTime_p(void) -{ - return svs.time; -} - - -#endif diff --git a/dis/plugin_handler.h b/dis/plugin_handler.h deleted file mode 100644 index dc4c54ee..00000000 --- a/dis/plugin_handler.h +++ /dev/null @@ -1,128 +0,0 @@ -#define MAX_PLUGINS 25 - -typedef void convariable_t; //For plugins - -#include -#include "plugins/plugin_declarations.h" -#include "elf32_parser.c" -#include "plugin_com.h" -//#include "plugin_events.c" - -#define PLUGIN_MAX_MALLOCS 50 -#define PLUGIN_MAX_SOCKETS 4 - -// plugins com -#define PLUGIN_COM_MAXNAMELEN 28 // Max 27 chars + \0 -#define PLUGIN_MAX_EXPORTS 50 // Maximum count of exported functions, each takes 32B of mem = 1kB per plugin - -enum { - PLUGIN_UNKNOWN = -1 -}; - -typedef struct{ - char name[32]; - xcommand_t xcommand; -}pluginCmd_t; - -typedef struct{ - size_t size; - void *ptr; -}pluginMem_t; - -typedef struct{ - char name[PLUGIN_COM_MAXNAMELEN]; - void *(*function)(); -}pluginExport_t; - -typedef struct{ - int sock; - netadr_t remote; - qboolean (*packetEventHandler)(netadr_t *from, msg_t* msg); -}pluginTcpClientSocket_t; - -typedef struct{ - int (*OnInit)(); // Initialization function - void (*OnInfoRequest)(); - - void (*OnEvent[PLUGINS_ITEMCOUNT])(); - void (*OnUnload)(); // De-initialization function - - pluginCmd_t cmd[20]; - pluginCmd_t scriptFunction[32]; - pluginCmd_t scriptMethod[32]; - int cmds; - int scriptfunctions; - int scriptmethods; - - char name[20]; - - pluginMem_t memory[PLUGIN_MAX_MALLOCS]; - pluginTcpClientSocket_t sockets[PLUGIN_MAX_SOCKETS]; - - pluginExport_t exportedFunctions[PLUGIN_MAX_EXPORTS]; - int exports; - - size_t usedMem; - int mallocs; - - qboolean loaded; - qboolean enabled; - - void *lib_handle; - void *lib_start; - long lib_size; - -}plugin_t; - -typedef struct{ - plugin_t plugins[MAX_PLUGINS]; - int loadedPlugins; - qboolean enabled; - qboolean initializing_plugin; -}pluginWrapper_t; - -void Plugin_Load(char*,size_t); -void Plugin_Unload(int id); -void Plugin_Event(int, ...); -void Plugin_Init(); -clientScoreboard_t Plugin_GetClientScoreboard(int); -int Plugin_Cmd_GetInvokerUid(); -int Plugin_GetPlayerUid(int); -int Plugin_GetSlotCount(); -qboolean Plugin_IsSvRunning(); -char *Plugin_GetPlayerName(int); -void Plugin_AddCommand(char *, xcommand_t, int power); -void *Plugin_Malloc(int,size_t); -void Plugin_Free(int,void *); -void Plugin_FreeAll(int); -void Plugin_Error(int, char *); -qboolean Plugin_TcpConnect(int,const char *,int); -int Plugin_TcpGetData(int, int, void*, int); -qboolean Plugin_TcpSendData(int,int, void*, int); -void Plugin_TcpCloseConnection(int,int); -int Plugin_CallerID(); - -void *Plugin_Malloc_p(size_t); -void Plugin_Free_p(void *); -qboolean Plugin_TcpConnect_p( int, const char *); -int Plugin_TcpGetData_p(int, void *, int); -qboolean Plugin_TcpSendData_p(int, void*, int); -void Plugin_TcpCloseConnection_p(int); -qboolean Plugin_UdpSendData_p(netadr_t* to, void* data, int len); -void Plugin_ServerPacketEvent_p(netadr_t* to, void* data, int len); -void Plugin_SetPlayerUID_p(unsigned int clientslot, unsigned int uid); -unsigned int Plugin_GetPlayerUID_p(unsigned int clientslot); -const char* Plugin_GetPlayerGUID_p(unsigned int clientslot); -void Plugin_SetPlayerGUID_p(unsigned int clientslot, const char* guid); -void Plugin_SetPlayerNoPB_p(unsigned int clientslot); -int Plugin_DoesServerUseUids_p(void); -void Plugin_SetServerToUseUids_p(int useuids); -int Plugin_GetLevelTime_p(void); -int Plugin_GetServerTime_p(void); - -void Plugin_LoadPlugin_f( void ); -void Plugin_UnLoadPlugin_f( void ); -void Plugin_PluginList_f( void ); -void Plugin_PluginInfo_f( void ); -void Plugin_ChatPrintf(int,char *,...); -void Plugin_BoldPrintf(int,char *,...);