From 611135de3d05d8989df58631411c51f9a256c11d Mon Sep 17 00:00:00 2001 From: David Anderson Date: Fri, 2 Apr 2004 19:54:21 +0000 Subject: [PATCH] Initial import of PgSQL module. --- dlls/pgsql/Makefile | 104 ++++++++++++++ dlls/pgsql/admin_pgsql.sma | 274 ++++++++++++++++++++++++++++++++++++ dlls/pgsql/libpq.lib | Bin 0 -> 277594 bytes dlls/pgsql/pgsql.inc | 32 +++++ dlls/pgsql/pgsql_amx.cpp | 219 ++++++++++++++++++++++++++++ dlls/pgsql/pgsql_amx.def | 6 + dlls/pgsql/pgsql_amx.h | 134 ++++++++++++++++++ dlls/pgsql/pgsql_amx.vcproj | 191 +++++++++++++++++++++++++ dlls/pgsql/readme.txt | 32 +++++ 9 files changed, 992 insertions(+) create mode 100755 dlls/pgsql/Makefile create mode 100755 dlls/pgsql/admin_pgsql.sma create mode 100755 dlls/pgsql/libpq.lib create mode 100755 dlls/pgsql/pgsql.inc create mode 100755 dlls/pgsql/pgsql_amx.cpp create mode 100755 dlls/pgsql/pgsql_amx.def create mode 100755 dlls/pgsql/pgsql_amx.h create mode 100755 dlls/pgsql/pgsql_amx.vcproj create mode 100755 dlls/pgsql/readme.txt diff --git a/dlls/pgsql/Makefile b/dlls/pgsql/Makefile new file mode 100755 index 00000000..2e8314c1 --- /dev/null +++ b/dlls/pgsql/Makefile @@ -0,0 +1,104 @@ +MODNAME = fun_amx +SRCFILES = fun.cpp + +EXTRA_LIBS_LINUX = +EXTRA_LIBS_WIN32 = +EXTRA_LIBDIRS_LINUX = -Lextra/lib_linux +EXTRA_LIBDIRS_WIN32 = -Lextra/lib_win32 + +EXTRA_INCLUDEDIRS = -Iextra/include -I../amxmodx + +EXTRA_FLAGS = -Dstrcmpi=strcasecmp + +AMXDIR=../amxmodx +SDKTOP=../hlsdk +METADIR=../metamodx + + +SDKSRC=$(SDKTOP)/SourceCode +OBJDIR_LINUX=obj.linux +OBJDIR_WIN32=obj.win32 +SRCDIR=. + +ifdef windir + OS=WIN32 +else + OS=LINUX +endif + +CC_LINUX=gcc-2.95 +ifeq "$(OS)" "WIN32" + CC_WIN32=gcc + LD_WINDLL=dllwrap + DEFAULT=win32 + CLEAN=clean_win32 +else + CC_WIN32=/usr/local/cross-tools/i386-mingw32msvc/bin/gcc + LD_WINDLL=/usr/local/cross-tools/bin/i386-mingw32msvc-dllwrap + DEFAULT=linux win32 + CLEAN=clean_both +endif + + + +LIBFILE_LINUX = $(MODNAME)_i386.so +LIBFILE_WIN32 = $(MODNAME).dll +TARGET_LINUX = $(OBJDIR_LINUX)/$(LIBFILE_LINUX) +TARGET_WIN32 = $(OBJDIR_WIN32)/$(LIBFILE_WIN32) + +FILES_ALL = *.cpp *.h [A-Z]* *.rc +ifeq "$(OS)" "LINUX" + ASRCFILES := $(shell ls -t $(SRCFILES)) +else + ASRCFILES := $(shell dir /b) +endif +OBJ_LINUX := $(SRCFILES:%.cpp=$(OBJDIR_LINUX)/%.o) +OBJ_WIN32 := $(SRCFILES:%.cpp=$(OBJDIR_WIN32)/%.o) + +CCOPT = -march=i586 -O6 -ffast-math -funroll-loops \ + -fomit-frame-pointer -fexpensive-optimizations -malign-loops=2 \ + -malign-jumps=2 -malign-functions=2 -s -DNDEBUG + +INCLUDEDIRS=-I../curl/include -I$(SRCDIR) -I$(AMXDIR) -I$(METADIR) -I$(SDKSRC)/engine -I$(SDKSRC)/common -I$(SDKSRC)/pm_shared -I$(SDKSRC)/dlls -I$(SDKSRC) $(EXTRA_INCLUDEDIRS) +CFLAGS=-Wall -Wno-unknown-pragmas +ODEF = -DOPT_TYPE=\"optimized\" +CFLAGS:=$(CCOPT) $(CFLAGS) $(ODEF) $(EXTRA_FLAGS) + +DO_CC_LINUX=$(CC_LINUX) $(CFLAGS) -fPIC $(INCLUDEDIRS) -o $@ -c $< +DO_CC_WIN32=$(CC_WIN32) $(CFLAGS) $(INCLUDEDIRS) -o $@ -c $< +LINK_LINUX=$(CC_LINUX) $(CFLAGS) -shared -ldl -lm $(OBJ_LINUX) $(EXTRA_LIBDIRS_LINUX) $(EXTRA_LIBS_LINUX) -o $@ +LINK_WIN32=$(LD_WINDLL) -mwindows --def $(MODNAME).def --add-stdcall-alias $(OBJ_WIN32) $(EXTRA_LIBDIRS_WIN32) $(EXTRA_LIBS_WIN32) -o $@ + +$(OBJDIR_LINUX)/%.o: $(SRCDIR)/%.cpp + $(DO_CC_LINUX) + +$(OBJDIR_WIN32)/%.o: $(SRCDIR)/%.cpp + $(DO_CC_WIN32) + +default: $(DEFAULT) + +$(TARGET_LINUX): $(OBJDIR_LINUX) $(OBJ_LINUX) + $(LINK_LINUX) + +$(TARGET_WIN32): $(OBJDIR_WIN32) $(OBJ_WIN32) + $(LINK_WIN32) + +$(OBJDIR_LINUX): + mkdir $@ + +$(OBJDIR_WIN32): + mkdir $@ + +win32: $(TARGET_WIN32) + +linux: $(TARGET_LINUX) + +clean: $(CLEAN) + +clean_both: + -rm -f $(OBJDIR_LINUX)/* + -rm -f $(OBJDIR_WIN32)/* + +clean_win32: + del /q $(OBJDIR_WIN32) + diff --git a/dlls/pgsql/admin_pgsql.sma b/dlls/pgsql/admin_pgsql.sma new file mode 100755 index 00000000..c6963db3 --- /dev/null +++ b/dlls/pgsql/admin_pgsql.sma @@ -0,0 +1,274 @@ +/* AMX Mod X +* Admin Base for PgSQL Plugin +* +* by the David "BAILOPAN" Anderson +* +* This file for AMX Mod X. +* +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation; either version 2 of the License, or (at +* your option) any later version. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software Foundation, +* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +* +* In addition, as a special exception, the author gives permission to +* link the code of this program with the Half-Life Game Engine ("HL +* Engine") and Modified Game Libraries ("MODs") developed by Valve, +* L.L.C ("Valve"). You must obey the GNU General Public License in all +* respects for all of the code used other than the HL Engine and MODs +* from Valve. If you modify this file, you may extend this exception +* to your version of the file, but you are not obligated to do so. If +* you do not wish to do so, delete this exception statement from your +* version. +*/ + +#include +#include +#include + +#define MAX_ADMINS 64 + +new g_aPassword[MAX_ADMINS][32] +new g_aName[MAX_ADMINS][32] +new g_aFlags[MAX_ADMINS] +new g_aAccess[MAX_ADMINS] +new g_aNum = 0 +#if !defined NO_STEAM +new g_cmdLoopback[16] +#endif + +public plugin_init() +{ + register_plugin("Admin Base for PgSQL","0.16","BAILOPAN") + + register_cvar("amx_mode","2.0") + register_cvar("amx_password_field","_pw") + register_cvar("amx_default_access","") + register_srvcmd("amx_sqladmins","adminSql") + register_cvar("amx_pgsql_host","127.0.0.1") + register_cvar("amx_pgsql_user","root") + register_cvar("amx_pgsql_pass","") + register_cvar("amx_pgsql_db","amx") + + register_cvar("amx_vote_ratio","0.02") + register_cvar("amx_votekick_ratio","0.40") + register_cvar("amx_voteban_ratio","0.40") + register_cvar("amx_votemap_ratio","0.40") + register_cvar("amx_vote_time","10") + register_cvar("amx_vote_answers","1") + register_cvar("amx_vote_delay","60") + register_cvar("amx_last_voting","0") + register_cvar("amx_show_activity","2") + set_cvar_float("amx_last_voting",0.0) + + register_concmd("amx_reloadadmins","cmdReload",ADMIN_ADMIN) + +#if !defined NO_STEAM + format( g_cmdLoopback, 15, "amxauth%c%c%c%c" , + random_num('A','Z') , random_num('A','Z') ,random_num('A','Z'),random_num('A','Z') ) + register_clcmd( g_cmdLoopback, "ackSignal" ) +#endif + + remove_user_flags(0,read_flags("z")) // remove 'user' flag from server rights + + new configsDir[128] + get_configsdir(configsDir, 127) + server_cmd("exec %s/amxx.cfg", configsDir) // Execute main configuration file + server_cmd("exec %s/pgsql.cfg;amx_sqladmins", configsDir) +} + +public adminSql() { + new host[64],user[32],pass[32],db[32],error[128] + get_cvar_string("amx_pgsql_host",host,63) + get_cvar_string("amx_pgsql_user",user,31) + get_cvar_string("amx_pgsql_pass",pass,31) + get_cvar_string("amx_pgsql_db",db,31) + + new pgsql = pgsql_connect(host,user,pass,db) + if(pgsql < 1){ + pgsql_error(pgsql, error, 128) + server_print("[AMXX] PgSQL error: can't connect: '%s'",error) + return PLUGIN_HANDLED + } + + pgsql_query(pgsql,"CREATE TABLE IF NOT EXISTS admins ( auth varchar(32) NOT NULL default '', password varchar(32) NOT NULL default '', access varchar(32) NOT NULL default '', flags varchar(32) NOT NULL default '' ) TYPE=MyISAM") + + if(pgsql_query(pgsql,"SELECT auth,password,access,flags FROM admins") < 1) { + pgsql_error(pgsql,error,127) + server_print("[AMXX] PgSQL error: can't load admins: '%s'",error) + return PLUGIN_HANDLED + } + + new szFlags[32],szAccess[32],iAccess + while( pgsql_nextrow(pgsql) > 0 ) + { + pgsql_getfield(pgsql, 1, g_aName[ g_aNum ] ,31) + pgsql_getfield(pgsql, 2, g_aPassword[ g_aNum ] ,31) + pgsql_getfield(pgsql, 3, szAccess,31) + pgsql_getfield(pgsql, 4, szFlags,31) + + iAccess = read_flags(szAccess) + if (!(iAccess & ADMIN_USER) && !(iAccess & ADMIN_ADMIN)) { + iAccess |= ADMIN_ADMIN + } + + g_aAccess[ g_aNum ] = iAccess + g_aFlags[ g_aNum ] = read_flags( szFlags ) + ++g_aNum + } + + server_print("[AMXX] Loaded %d admin%s from database",g_aNum, (g_aNum == 1) ? "" : "s" ) + pgsql_close(pgsql) + return PLUGIN_HANDLED +} + +public cmdReload(id,level,cid) +{ + if (!cmd_access(id,level,cid,1)) + return PLUGIN_HANDLED + + g_aNum = 0 + adminSql() // Re-Load admins accounts + + return PLUGIN_HANDLED +} + +getAccess(id,name[],authid[],ip[], password[]){ + new index = -1 + new result = 0 + for(new i = 0; i < g_aNum; ++i) { + if (g_aFlags[i] & FLAG_AUTHID) { + if (equal(authid,g_aName[i])) { + index = i + break + } + } + else if (g_aFlags[i] & FLAG_IP) { + new c = strlen( g_aName[i] ) + if ( g_aName[i][ c - 1 ] == '.' ) { /* check if this is not a xxx.xxx. format */ + if ( equal( g_aName[i] , ip , c ) ) { + index = i + break + } + } /* in other case an IP must just match */ + else if ( equal(ip,g_aName[i]) ){ + index = i + break + } + } + else { + if (g_aFlags[i] & FLAG_TAG) { + if (contain(name,g_aName[i])!=-1){ + index = i + break + } + } + else if (equal(name,g_aName[i])) { + index = i + break + } + } + } + if (index != -1) { + if (g_aFlags[index] & FLAG_NOPASS){ + result |= 8 + new sflags[32] + get_flags(g_aAccess[index],sflags,31) + set_user_flags(id,g_aAccess[index]) + log_amx("Login: ^"%s<%d><%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", + name,get_user_userid(id),authid,g_aName[index] ,sflags,ip) + } + else if (equal(password,g_aPassword[index])) { + result |= 12 + set_user_flags(id,g_aAccess[index]) + new sflags[32] + get_flags(g_aAccess[index],sflags,31) + log_amx("Login: ^"%s<%d><%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", + name,get_user_userid(id),authid,g_aName[index] ,sflags,ip) + } + else { + result |= 1 + if (g_aFlags[index] & FLAG_KICK){ + result |= 2 + log_amx("Login: ^"%s<%d><%s><>^" kicked due to invalid password (account ^"%s^") (address ^"%s^")", + name,get_user_userid(id),authid,g_aName[index],ip) + } + } + } + else if (get_cvar_float("amx_mode")==2.0) { + result |= 2 + } + else { + new defaccess[32] + get_cvar_string("amx_default_access",defaccess,31) + if (!defaccess[0]) + defaccess[0] = 'z' + new idefaccess = read_flags(defaccess) + if (idefaccess){ + result |= 8 + set_user_flags(id,idefaccess) + } + } + + return result +} + +accessUser( id, name[]="" ) +{ + remove_user_flags(id) + new userip[32],userauthid[32],password[32],passfield[32],username[32] + get_user_ip(id,userip,31,1) + get_user_authid(id,userauthid,31) + if ( name[0] ) copy( username , 31, name) + else get_user_name(id,username,31 ) + get_cvar_string("amx_password_field",passfield,31) + get_user_info(id,passfield,password,31) + new result = getAccess(id,username,userauthid,userip,password) + if (result & 1) client_cmd(id,"echo ^"* Invalid Password!^"") + if (result & 2) { +#if !defined NO_STEAM + client_cmd(id,g_cmdLoopback) +#else + client_cmd(id,"echo ^"* You have no entry to the server...^";disconnect") +#endif + return PLUGIN_HANDLED + } + if (result & 4) client_cmd(id,"echo ^"* Password accepted^"") + if (result & 8) client_cmd(id,"echo ^"* Privileges set^"") + return PLUGIN_CONTINUE +} + +public client_infochanged(id) +{ + if ( !is_user_connected(id) || !get_cvar_num("amx_mode") ) + return PLUGIN_CONTINUE + + new newname[32], oldname[32] + get_user_name(id,oldname,31) + get_user_info(id,"name",newname,31) + + if ( !equal(newname,oldname) ) + accessUser( id , newname ) + + return PLUGIN_CONTINUE +} + +#if !defined NO_STEAM + +public ackSignal(id) + server_cmd("kick #%d ^"You have no entry to the server...^"", get_user_userid(id) ) + +public client_authorized(id) +#else +public client_connect(id) +#endif + return get_cvar_num( "amx_mode" ) ? accessUser( id ) : PLUGIN_CONTINUE diff --git a/dlls/pgsql/libpq.lib b/dlls/pgsql/libpq.lib new file mode 100755 index 0000000000000000000000000000000000000000..4458ed28208f838a276c326494db3010eb482022 GIT binary patch literal 277594 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 literal 0 HcmV?d00001 diff --git a/dlls/pgsql/pgsql.inc b/dlls/pgsql/pgsql.inc new file mode 100755 index 00000000..1341fa11 --- /dev/null +++ b/dlls/pgsql/pgsql.inc @@ -0,0 +1,32 @@ +/* PostgreSQL functions +* +* by David "BAILOPAN" Anderson +* Under the GNU General Public License, version 2 +*/ + +#if defined _pgsql_included + #endinput +#endif +#define _pgsql_included + +/* Opens connection. If already such exists then that will be used. +* Function returns sql id to use with other sql natives. +* Host can be plain ip or hostname, ports are not yet allowed. */ +native pgsql_connect(host[],user[],pass[],dbname[]); + +/* Uses an existing connection (sql) to perform a new query (query) (might close previous query if any). + Will return the number of rows found. + */ +native pgsql_query(sql,query[], {Float,_}:...); + +/* Advances to the next row in the query set. */ +native pgsql_nextrow(sql); + +/* Stores specified column (fieldnum) of current query (sql) in (dest) with (maxlength) characters maximum. */ +native pgsql_getfield(sql,fieldnum,dest[],maxlength); + +/* Clears query (sql) and closes connection (if any other plugin doesn't use it). */ +native pgsql_close(sql); + +/* Stores last error of current query/connection (sql) in (dest) with (maxlength) characters maximum. */ +native pgsql_error(sql,dest[],maxlength); \ No newline at end of file diff --git a/dlls/pgsql/pgsql_amx.cpp b/dlls/pgsql/pgsql_amx.cpp new file mode 100755 index 00000000..1af1f553 --- /dev/null +++ b/dlls/pgsql/pgsql_amx.cpp @@ -0,0 +1,219 @@ +/* AMX Mod X +* PostgreSQL Module +* +* by David "BAILOPAN" Anderson +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation; either version 2 of the License, or (at +* your option) any later version. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software Foundation, +* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +* +* In addition, as a special exception, the author gives permission to +* link the code of this program with the Half-Life Game Engine ("HL +* Engine") and Modified Game Libraries ("MODs") developed by Valve, +* L.L.C ("Valve"). You must obey the GNU General Public License in all +* respects for all of the code used other than the HL Engine and MODs +* from Valve. If you modify this file, you may extend this exception +* to your version of the file, but you are not obligated to do so. If +* you do not wish to do so, delete this exception statement from your +* version. +*/ + +#include "pgsql_amx.h" + +pgs *cns = NULL; + +bool is_ipaddr(const char *IP) +{ + do { + if ((int)(*(IP++)) > 0x37) { + return false; + } + } while (*IP); + + return true; +} + + +char *make_connstring(const char *host, const char *user, const char *pass, const char *name) +{ + int len = 46 + strlen(host) + strlen(user) + strlen(pass) + strlen(name) + 2; + char *c_info = new char[len]; + + if (is_ipaddr(host)) { + sprintf(c_info, "hostaddr = '%s' user = '%s' pass = '%s' name = '%s'", host, user, pass, name); + } else { + sprintf(c_info, "host = '%s' user = '%s' pass = '%s' name = '%s'", host, user, pass, name); + } + + return c_info; +} + +PGconn* make_connection(const char *h, const char *u, const char *ps, const char *n) +{ + pgs *p = cns; + int last = 0; + + while (p) { + last = p->ii(); + if (p->v.host==h && p->v.user==u && p->v.pass==ps && p->v.name==n) { + return p->v.cn; + } + } + char *c_info = make_connstring(h, u, ps, n); + if (cns == NULL) { + cns = new pgs; + PGconn *cn = PQconnectdb(c_info); + cns->set(h, u, ps, n, 1); + cns->scn(cn); + return cn; + } else { + p = new pgs(h, u, ps, n, last+1); + cns->sln(p); + PGconn *cn = PQconnectdb(c_info); + cns->scn(cn); + return cn; + } +} + +pgs* get_conn_i(int n=1) +{ + pgs *p = cns; + int i=0; + while (p) { + if (++i==n) { + return p; + } else { + p = p->link(); + } + } + + return NULL; +} + +static cell AMX_NATIVE_CALL pgsql_connect(AMX *amx, cell *params) +{ + int i; + const char *host = GET_AMXSTRING(amx,params[1],0,i); + const char *user = GET_AMXSTRING(amx,params[2],1,i); + const char *pass = GET_AMXSTRING(amx,params[3],2,i); + const char *name = GET_AMXSTRING(amx,params[4],3,i); + + PGconn *cn = make_connection(host, user, pass, name); + + if (PQstatus(cn) != CONNECTION_OK) { + return 0; + } + + return 1; +} + +static cell AMX_NATIVE_CALL pgsql_error(AMX *amx, cell *params) +{ + int c = params[1]; + pgs *p = get_conn_i(c); + char *error = PQerrorMessage(p->v.cn); + SET_AMXSTRING(amx, params[2], (error==NULL?"":error), params[3]); + return 1; +} + +static cell AMX_NATIVE_CALL pgsql_query(AMX *amx, cell *params) +{ + pgs *p = get_conn_i(params[1]); + if (p == NULL) { + return 0; + } + + if (p->v.res) { + p->reset(); + } + + int i; + const char *query = FORMAT_AMXSTRING(amx, params, 2, i); + + p->v.res = PQexec(p->v.cn, query); + + if (PQresultStatus(p->v.res) != PGRES_COMMAND_OK) { + return -1; + } + + return PQntuples(p->v.res); +} + +static cell AMX_NATIVE_CALL pgsql_nextrow(AMX *amx, cell *params) +{ + pgs *p = get_conn_i(params[1]); + if (p == NULL) { + return 0; + } + + if (p->v.row > PQntuples(p->v.res)) { + return 0; + } + + p->v.row++; + + return 1; +} + +static cell AMX_NATIVE_CALL pgsql_getfield(AMX *amx, cell *params) +{ + pgs *p = get_conn_i(params[1]); + int col = params[2] + 1; + if (p == NULL) { + return 0; + } + if (col-1 > PQnfields(p->v.res)) { + return 0; + } + + char *field = PQgetvalue(p->v.res, p->v.row, col); + return SET_AMXSTRING(amx, params[3], field?field:"", params[4]); +} + +static cell AMX_NATIVE_CALL pgsql_close(AMX *amx, cell *params) +{ + pgs *p = get_conn_i(params[1]); + + p->close(); + + return 1; +} + +AMX_NATIVE_INFO pgsql_exports[] = { + {"pgsql_connect", pgsql_connect}, + {"pgsql_error", pgsql_error}, + {"pgsql_query", pgsql_query}, + {"pgsql_nextrow", pgsql_nextrow}, + {"pgsql_close", pgsql_close}, + + {NULL, NULL}, +}; + +C_DLLEXPORT int AMX_Query(module_info_s** info) { + *info = &module_info; + return 1; +} + +C_DLLEXPORT int AMX_Attach(pfnamx_engine_g* amxeng,pfnmodule_engine_g* meng) { + g_engAmxFunc = amxeng; + g_engModuleFunc = meng; + + ADD_AMXNATIVES(&module_info, pgsql_exports); + + return(1); +} + +C_DLLEXPORT int AMX_Detach() { + delete cns; + return(1); +} diff --git a/dlls/pgsql/pgsql_amx.def b/dlls/pgsql/pgsql_amx.def new file mode 100755 index 00000000..283974b1 --- /dev/null +++ b/dlls/pgsql/pgsql_amx.def @@ -0,0 +1,6 @@ +LIBRARY fun_amx +EXPORTS + AMX_Attach @1 + AMX_Detach @3 +SECTIONS + .data READ WRITE diff --git a/dlls/pgsql/pgsql_amx.h b/dlls/pgsql/pgsql_amx.h new file mode 100755 index 00000000..0f799996 --- /dev/null +++ b/dlls/pgsql/pgsql_amx.h @@ -0,0 +1,134 @@ +/* AMX Mod X +* PostgreSQL Module +* +* by David "BAILOPAN" Anderson +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation; either version 2 of the License, or (at +* your option) any later version. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software Foundation, +* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +* +* In addition, as a special exception, the author gives permission to +* link the code of this program with the Half-Life Game Engine ("HL +* Engine") and Modified Game Libraries ("MODs") developed by Valve, +* L.L.C ("Valve"). You must obey the GNU General Public License in all +* respects for all of the code used other than the HL Engine and MODs +* from Valve. If you modify this file, you may extend this exception +* to your version of the file, but you are not obligated to do so. If +* you do not wish to do so, delete this exception statement from your +* version. +*/ +#include +#include +#include +#include +#include + +#define destroy(x) if(x){delete(x);x=0;} +#define destarr(x) if(x){delete[]x;x=0;} + +pfnamx_engine_g* g_engAmxFunc; +pfnmodule_engine_g* g_engModuleFunc; + +#define NAME "PgSQL" +#define AUTHOR "BAILOPAN" +#define VERSION "1.00" +#define URL "http://www.bailopan.com/" +#define LOGTAG "PGSQL" +#define DATE __DATE__ + +module_info_s module_info = { + NAME, + AUTHOR, + VERSION, + AMX_INTERFACE_VERSION, + RELOAD_MODULE, +}; + +class pgs +{ +public: + pgs() + { + } + + pgs(const char *h, const char *u, const char *p, const char *n, int i=1) + { + set(h, u, p, n, i); + } + + void set(const char *h, const char *u, const char *p, const char *n, int i=1) + { + v.host = h; + v.user = u; + v.pass = p; + v.name = n; + v.cn = NULL; + v.row = 0; + next = NULL; + id = i; + } + + pgs* link() + { + return next; + } + + int ii() + { + return id; + } + + void scn(PGconn *cn) + { + v.cn = cn; + } + + void sln(pgs *p) + { + next = p; + } + + void reset() + { + PQclear(v.res); + v.row = 0; + } + + void close() + { + PQfinish(v.cn); + destroy(v.host); + destroy(v.user); + destroy(v.pass); + destroy(v.name); + } + + struct pgsql { + const char *host; + const char *user; + const char *pass; + const char *name; + PGconn *cn; + PGresult *res; + int row; + } v; + + ~pgs() + { + close(); + } + +private: + pgs *next; + int id; +}; \ No newline at end of file diff --git a/dlls/pgsql/pgsql_amx.vcproj b/dlls/pgsql/pgsql_amx.vcproj new file mode 100755 index 00000000..0633c919 --- /dev/null +++ b/dlls/pgsql/pgsql_amx.vcproj @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dlls/pgsql/readme.txt b/dlls/pgsql/readme.txt new file mode 100755 index 00000000..5ee59e6b --- /dev/null +++ b/dlls/pgsql/readme.txt @@ -0,0 +1,32 @@ +PgSQL Module for AMX Mod X +by David "BAILOPAN" Anderson +---------------------------- + +Installation +------------ + +1] Place the pgsql.cfg file in your addons/amxx/configs dir. + + +2] Place the module in the right place: +Linux: + +Place geoip_amx_i386.so into addons/amxx/modules/ +(If you want a glibc2.3 optimized binary, use geoip_amx_i686.so) +Add this line to addons/amxx/modules.ini : +geoip_amx_i386.so + + +Windows: + +Place geoip_amx.dll into addons/ammx/modules/ +Add this line to addons/amxx/modules.ini : +geoip_amx.dll + + +3] Scripters: Place "pgsql.inc" in addons/amxx/scripting/include + +4] If you are using pgsql to store admins: +Place admin_pgsql.amx in addons/amxx/plugins/ +And add this line to addons/amxx/plugins.ini: +admin_pgsql.amx \ No newline at end of file