Raised This Month: $ Target: $400
 0% 

Fixing "SQL_QuoteString"


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
SeToY
SourceMod Donor
Join Date: Jul 2006
Location: Germany
Old 05-25-2010 , 12:38   Fixing "SQL_QuoteString"
Reply With Quote #1

Soo... okay, anybody any ideas?

Code:
L 05/25/2010 - 18:17:03: Start of error session.
L 05/25/2010 - 18:17:03: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20100525.log")
L 05/25/2010 - 18:17:03: [MySQL] Invalid database handle: 0
L 05/25/2010 - 18:17:03: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 05/25/2010 - 18:17:03: [AMXX] Run time error 10: native error (native "SQL_QuoteString")
L 05/25/2010 - 18:17:03: [AMXX]    [0] amxbans_main.sma::mysql_get_servername_safe (line 393)
L 05/25/2010 - 18:17:03: [AMXX]    [1] init_functions.inl::banmod_online_ (line 53)
meta list
Code:
18:17:56 Currently loaded plugins:
               description      stat pend  file              vers      src   load  unlod
          [ 1] AMX Mod X        RUN   -    amxmodx_mm_i386.  v1.8.1.3  ini   Start ANY  
          [ 2] Fun              RUN   -    fun_amxx_i386.so  v1.8.1.3  pl1   ANY   ANY  
          [ 3] CStrike          RUN   -    cstrike_amxx_i38  v1.8.1.3  pl1   ANY   ANY  
          [ 4] CSX              RUN   -    csx_amxx_i386.so  v1.8.1.3  pl1   ANY   ANY  
          [ 5] MySQL            RUN   -    mysql_amxx_i386.  v1.8.1.3  pl1   ANY   ANY  
         5 plugins, 5 running
amx_plugins
Code:
18:18:26 Currently loaded plugins:
                name                    version     author            file             status   
          [  1] AMXBans Core            6.0.0       AMXBans Dev Team  amxbans_core.am  debug    
          [  2] AMXBans Main            6.0.0       AMXBans Dev Team  amxbans_main.am  debug    
          [  3] Admin Commands          1.8.1.3746  AMXX Dev Team     admincmd.amxx    running  
          [  4] Admin Help              1.8.1.3746  AMXX Dev Team     adminhelp.amxx   running  
          [  5] Slots Reservation       1.8.1.3746  AMXX Dev Team     adminslots.amxx  running  
          [  6] Multi-Lingual System    1.8.1.3746  AMXX Dev Team     multilingual.am  running  
          [  7] Menus Front-End         1.8.1.3746  AMXX Dev Team     menufront.amxx   running  
          [  8] Commands Menu           1.8.1.3746  AMXX Dev Team     cmdmenu.amxx     running  
          [  9] Players Menu            1.8.1.3746  AMXX Dev Team     plmenu.amxx      running  
          [ 10] Maps Menu               1.8.1.3746  AMXX Dev Team     mapsmenu.amxx    running  
          [ 11] Plugin Menu             1.8.1.3746  AMXX Dev Team     pluginmenu.amxx  running  
          [ 12] Admin Chat              1.8.1.3746  AMXX Dev Team     adminchat.amxx   running  
          [ 13] Anti Flood              1.8.1.3746  AMXX Dev Team     antiflood.amxx   running  
          [ 14] Scrolling Message       1.8.1.3746  AMXX Dev Team     scrollmsg.amxx   running  
18:18:26  [ 15] Info. Messages          1.8.1.3746  AMXX Dev Team     imessage.amxx    running  
          [ 16] Admin Votes             1.8.1.3746  AMXX Dev Team     adminvote.amxx   running  
          [ 17] NextMap                 1.8.1.3746  AMXX Dev Team     nextmap.amxx     running  
          [ 18] Nextmap Chooser         1.8.1.3746  AMXX Dev Team     mapchooser.amxx  running  
          [ 19] TimeLeft                1.8.1.3746  AMXX Dev Team     timeleft.amxx    running  
          [ 20] Pause Plugins           1.8.1.3746  AMXX Dev Team     pausecfg.amxx    running  
          [ 21] Stats Configuration     1.8.1.3746  AMXX Dev Team     statscfg.amxx    running  
          [ 22] StatsX                  1.8.1.3746  AMXX Dev Team     statsx.amxx      running  
         22 plugins, 22 running
amxbans_main.sma:
Code:
/*

	AMXBans, managing bans for Half-Life modifications
	Copyright (C) 2003, 2004  Ronald Renes / Jeroen de Rover
	
	Copyright (C) 2009, 2010  Thomas Kurz

	Amxbans Main Plugin
*/
// Rev 2010/04/13

new AUTHOR[] = "AMXBans Dev Team"
new PLUGIN_NAME[] = "AMXBans Main"
new VERSION[] = "6.0.0" // This is used in the plugins name

new amxbans_version[] = "6.0.0" // This is for the DB

#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#include <time>

// Amxbans Core natives
#include "include/amxbans_core.inc"

// Amxbans .inl files
#include "amxbans/global_vars.inl"
#include "amxbans/color_chat.inl"
#include "amxbans/init_functions.inl"
#include "amxbans/check_player.inl"
#include "amxbans/check_flag.inl"
#include "amxbans/menu_stocks.inl"
#include "amxbans/menu_ban.inl"
#include "amxbans/menu_disconnected.inl"
#include "amxbans/menu_history.inl"
#include "amxbans/menu_flag.inl"
#include "amxbans/cmdBan.inl"
//#include "amxbans/cmdUnban.inl"
#include "amxbans/web_handshake.inl"


// 16k * 4 = 64k stack size
#pragma dynamic 16384 		// Give the plugin some extra memory to use


public plugin_init() {
	register_plugin(PLUGIN_NAME, VERSION, AUTHOR)
	register_cvar("amxbans_version", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
	
	register_dictionary("amxbans.txt")
	register_dictionary("common.txt")
	register_dictionary("time.txt")
	
	register_event("HLTV", "event_new_round", "a", "1=0", "2=0") 
	
	register_clcmd("amx_banmenu", "cmdBanMenu", ADMIN_BAN, "- displays ban menu")
	register_clcmd("amxbans_custombanreason", "setCustomBanReason", ADMIN_BAN, "- configures custom ban message")
	register_clcmd("amx_banhistorymenu", "cmdBanhistoryMenu", ADMIN_BAN, "- displays banhistorymenu")
	register_clcmd("amx_bandisconnectedmenu", "cmdBanDisconnectedMenu", ADMIN_BAN, "- displays bandisconnectedmenu")
	register_clcmd("amx_flaggingmenu","cmdFlaggingMenu",ADMIN_BAN,"- displays flagging menu")
	
	register_srvcmd("amx_sethighbantimes", "setHighBantimes")
	register_srvcmd("amx_setlowbantimes", "setLowBantimes")
	register_srvcmd("amx_setflagtimes","setFlagTimes")
	
	register_concmd("amx_reloadreasons", "cmdFetchReasons", ADMIN_CFG)
	
	pcvar_serverip		=	register_cvar("amxbans_server_address","")
	pcvar_server_nick 	= 	register_cvar("amxbans_servernick", "")
	pcvar_discon_in_banlist	=	register_cvar("amxbans_discon_players_saved","10")
	pcvar_complainurl	= 	register_cvar("amxbans_complain_url", "www.yoursite.com") // Dont use http:// then the url will not show
	pcvar_debug 		= 	register_cvar("amxbans_debug", "0") // Set this to 1 to enable debug
	pcvar_newbancmd		=	register_cvar("amxbans_use_newbancmd","1")
	pcvar_add_mapname	=	register_cvar("amxbans_add_mapname_in_servername", "0")
	pcvar_flagged_all	=	register_cvar("amxbans_flagged_all_server","1")
	pcvar_show_in_hlsw 	= 	register_cvar("amxbans_show_in_hlsw", "1")
	pcvar_show_hud_messages	= 	register_cvar("amxbans_show_hud_messages", "1")
	pcvar_higher_ban_time_admin = 	register_cvar("amxbans_higher_ban_time_admin", "n")
	pcvar_admin_mole_access = 	register_cvar("amxbans_admin_mole_access", "r")
	pcvar_show_name_evenif_mole = 	register_cvar("amxbans_show_name_evenif_mole", "1")
	pcvar_custom_statictime =	register_cvar("amxbans_custom_statictime","1440")
	pcvar_show_prebanned 	=	register_cvar("amxbans_show_prebanned","1")
	pcvar_show_prebanned_num =	register_cvar("amxbans_show_prebanned_num","2")
	pcvar_default_banreason	=	register_cvar("amxbans_default_ban_reason","unknown")
	
	register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<steamID or nickname or #authid or IP> <time in mins> <reason>")
	register_srvcmd("amx_ban", "cmdBan", -1, "<steamID or nickname or #authid or IP> <time in mins> <reason>")
	register_concmd("amx_banip", "cmdBan", ADMIN_BAN, "<steamID or nickname or #authid or IP> <time in mins> <reason>")
	register_srvcmd("amx_banip", "cmdBan", -1, "<steamID or nickname or #authid or IP> <time in mins> <reason>")
	
	register_srvcmd("amx_list", "cmdLst", ADMIN_RCON, "sends playerinfos to web")
	
	g_coloredMenus 		= 	colored_menus()
	g_MyMsgSync 		= 	CreateHudSyncObj()
	
	g_banReasons		=	ArrayCreate(128,7)
	g_banReasons_Bantime 	=	ArrayCreate(1,7)
	
	g_disconPLname		=	ArrayCreate(32,1)
	g_disconPLauthid	=	ArrayCreate(35,1)
	g_disconPLip		=	ArrayCreate(22,1)
	
	
	new configsDir[64]
	get_configsdir(configsDir, 63)
	
	server_cmd("exec %s/sql.cfg", configsDir)
	server_cmd("exec %s/amxbans.cfg", configsDir)
	
	color_chat_init()
}
create_forwards() {
	MFHandle[Ban_MotdOpen]=CreateMultiForward("amxbans_ban_motdopen",ET_IGNORE,FP_CELL)
	MFHandle[Player_Flagged]=CreateMultiForward("amxbans_player_flagged",ET_IGNORE,FP_CELL,FP_CELL,FP_STRING)
	MFHandle[Player_UnFlagged]=CreateMultiForward("amxbans_player_unflagged",ET_IGNORE,FP_CELL)
}
public addMenus() {
	new szKey[64]
	format(szKey,charsmax(szKey),"%L",LANG_SERVER,"ADMMENU_FLAGGING")
	AddMenuItem(szKey,"amx_flaggingmenu",ADMIN_BAN,PLUGIN_NAME)
	format(szKey,charsmax(szKey),"%L",LANG_SERVER,"ADMMENU_DISCONNECTED")
	AddMenuItem(szKey,"amx_bandisconnectedmenu",ADMIN_BAN,PLUGIN_NAME)
	format(szKey,charsmax(szKey),"%L",LANG_SERVER,"ADMMENU_HISTORY")
	AddMenuItem(szKey,"amx_banhistorymenu",ADMIN_BAN,PLUGIN_NAME)
}
//forward from amxbans_core
public amxbans_sql_initialized(Handle:sqlTuple,dbPrefix[]) {
	
	copy(g_dbPrefix,charsmax(g_dbPrefix),dbPrefix)
	//db was already initialized, second init can be caused by a second forward from main plugin
	//this should never happen!!
	if(g_SqlX != Empty_Handle) {
		log_amx("[AMXBans Error] DB Info Tuple from amxbans_core initialized twice!!")
		return PLUGIN_HANDLED
	}
	
	g_SqlX=sqlTuple
	if ( get_pcvar_num(pcvar_debug) >= 1 )
		log_amx("[AMXBans] Received DB Info Tuple from amxbans_core: %d | %s", sqlTuple,g_dbPrefix)
	if(g_SqlX==Empty_Handle) {
		log_amx("[AMXBans Error] DB Info Tuple from amxbans_main is empty! Trying to get a valid one")
		new host[64], user[64], pass[64], db[64]

		get_cvar_string("amx_sql_host", host, 63)
		get_cvar_string("amx_sql_user", user, 63)
		get_cvar_string("amx_sql_pass", pass, 63)
		get_cvar_string("amx_sql_db", db, 63)
		
		g_SqlX = SQL_MakeDbTuple(host, user, pass, db)
		
		get_cvar_string("amx_sql_prefix",g_dbPrefix,charsmax(g_dbPrefix))
	}
	create_forwards()
	set_task(0.1, "banmod_online")
	set_task(0.2, "fetchReasons")
	set_task(2.0, "addMenus")
	
	return PLUGIN_HANDLED
}
/*
public plugin_cfg() {
	//set_task(0.1, "sql_init")
}
public sql_init() {
	new host[64], user[64], pass[64], db[64]

	get_cvar_string("amx_sql_host", host, 63)
	get_cvar_string("amx_sql_user", user, 63)
	get_cvar_string("amx_sql_pass", pass, 63)
	get_cvar_string("amx_sql_db", db, 63)
	
	get_cvar_string("amx_sql_prefix",g_dbPrefix,charsmax(g_dbPrefix))
	//amxbans_get_db_prefix(g_dbPrefix,charsmax(g_dbPrefix))
	
	g_SqlX = SQL_MakeDbTuple(host, user, pass, db)
	
	create_forwards()
	set_task(0.1, "banmod_online")
	set_task(0.2, "fetchReasons")
	set_task(2.0, "addMenus")
}
*/
//////////////////////////////////////////////////////////////////
public get_higher_ban_time_admin_flag() {
	new flags[24]
	get_pcvar_string(pcvar_higher_ban_time_admin, flags, 23)
	
	return(read_flags(flags))
}
public get_admin_mole_access_flag() {
	new flags[24]
	get_pcvar_string(pcvar_admin_mole_access, flags, 23)
	
	return(read_flags(flags))
}
public delayed_kick(player_id) {
	
	player_id-=200
	new userid = get_user_userid(player_id)
	new kick_message[128]
	
	format(kick_message,127,"%L", player_id,"KICK_MESSAGE")

	if ( get_pcvar_num(pcvar_debug) >= 1 )
		log_amx("[AMXBANS DEBUG] Delayed Kick ID: <%d>", player_id)

	server_cmd("kick #%d  %s",userid, kick_message)
	
	g_kicked_by_amxbans[player_id]=true
	g_being_banned[player_id] = false
	
	return PLUGIN_CONTINUE
}
public event_new_round() {
	new plnum=get_maxplayers()
	for(new i=1;i <= plnum; i++) {
		if(g_nextround_kick[i]) {
			if ( get_pcvar_num(pcvar_debug) >= 1 )
				log_amx("[AMXBans] New Round Kick ID: <%d> | bid:%d",i,g_nextround_kick_bid[i])
			
			if(!is_user_connected(i) || is_user_bot(i)) continue
			//player is banned, so select motd and kick him
			select_amxbans_motd(0,i,g_nextround_kick_bid[i])
		}
	}
}
/*********  Error handler  ***************/
MySqlX_ThreadError(szQuery[], error[], errnum, failstate, id) {
	if (failstate == TQUERY_CONNECT_FAILED) {
		log_amx("%L", LANG_SERVER, "TCONNECTION_FAILED")
	} else if (failstate == TQUERY_QUERY_FAILED) {
		log_amx("%L", LANG_SERVER, "TQUERY_FAILED")
	}
	log_amx("%L", LANG_SERVER, "TQUERY_ERROR", id)
	log_amx("%L", LANG_SERVER, "TQUERY_MSG", error, errnum)
	log_amx("%L", LANG_SERVER, "TQUERY_STATEMENT", szQuery)
}
/*********    client functions     ************/
public client_authorized(id) {
	//fix for the invalid tuple error at mapchange, only a fast fix now
	if(g_SqlX==Empty_Handle) {
		set_task(2.0,"client_authorized",id)
		return PLUGIN_HANDLED
	}
	//check if an activ ban exists
	check_player(id)
	return PLUGIN_CONTINUE
}
public client_putinserver(id) {
	//fix for the invalid tuple error at mapchange, only a fast fix now
	if(g_SqlX==Empty_Handle) {
		set_task(5.0,"client_putinserver",id)
		return PLUGIN_HANDLED
	}
	//check if the player was banned before
	prebanned_check(id)
	//remove the player from the disconnect player list because he is already connected ;-)
	disconnect_remove_player(id)
	return PLUGIN_CONTINUE
}
public client_disconnect(id) {
	
	g_being_banned[id]=false
	
	if(!g_kicked_by_amxbans[id]) {
		//only add players to disconnect list if not kicked by amxbans
		disconnected_add_player(id)
	} else if(g_being_flagged[id]) {
		// if kicked by amxbans maybe remove the flagged, not added yet
		/*****///remove_flagged_by_steam(0,id,0)
	}
	//reset some vars
	g_kicked_by_amxbans[id]=false
	g_being_flagged[id]=false
	g_nextround_kick[id]=false
}
/*********    timecmd functions     ************/
public setHighBantimes() {
	new arg[32]
	new argc = read_argc() - 1
	g_highbantimesnum = argc

	if(argc < 1 || argc > 14) {
		log_amx("[AMXBANS] You have more than 14 or less than 1 bantimes set in amx_sethighbantimes")
		log_amx("[AMXBANS] Loading default bantimes")
		loadDefaultBantimes(1)

		return PLUGIN_HANDLED
	}

	new i = 0
	new num[32], flag[32]
	while (i < argc)	{
		read_argv(i + 1, arg, 31)
		parse(arg, num, 31, flag, 31)

		if(equali(flag, "m")) { 
			g_HighBanMenuValues[i] = str_to_num(num)
		} else if(equali(flag, "h")) {
			g_HighBanMenuValues[i] = (str_to_num(num) * 60)
		} else if(equali(flag, "d")) {
			g_HighBanMenuValues[i] = (str_to_num(num) * 1440)
		} else if(equali(flag, "w")) {
			g_HighBanMenuValues[i] = (str_to_num(num) * 10080)
		}
		i++
	}
	return PLUGIN_HANDLED
}
public setLowBantimes() {
	new arg[32]
	new argc = read_argc() - 1
	g_lowbantimesnum = argc
	
	if(argc < 1 || argc > 14) {
		log_amx("[AMXBANS] You have more than 14 or less than 1 bantimes set in amx_setlowbantimes")
		log_amx("[AMXBANS] Loading default bantimes")
		loadDefaultBantimes(2)
		
		return PLUGIN_HANDLED
	}

	new i = 0
	new num[32], flag[32]
	while (i < argc) {
		read_argv(i + 1, arg, 31)
		parse(arg, num, 31, flag, 31)

		if(equali(flag, "m")) { 
			g_LowBanMenuValues[i] = str_to_num(num)
		} else if(equali(flag, "h")) {
			g_LowBanMenuValues[i] = (str_to_num(num) * 60)
		} else if(equali(flag, "d")) {
			g_LowBanMenuValues[i] = (str_to_num(num) * 1440)
		} else if(equali(flag, "w")) {
			g_LowBanMenuValues[i] = (str_to_num(num) * 10080)
		}
		i++
	}
	return PLUGIN_HANDLED
}
public setFlagTimes() {
	new arg[32]
	new argc = read_argc() - 1
	g_flagtimesnum = argc
	if(argc < 1 || argc > 14) {
		log_amx("[AMXBANS] You have more than 14 or less than 1 flagtimes set in amx_setflagtimes")
		log_amx("[AMXBANS] Loading default flagtimes")
		loadDefaultBantimes(3)
		
		return PLUGIN_HANDLED
	}
	
	new i = 0
	new num[32], flag[32]
	while (i < argc) {
		read_argv(i + 1, arg, 31)
		parse(arg, num, 31, flag, 31)

		if(equali(flag, "m")) { 
			g_FlagMenuValues[i] = str_to_num(num)
		} else if(equali(flag, "h")) {
			g_FlagMenuValues[i] = (str_to_num(num) * 60)
		} else if(equali(flag, "d")) {
			g_FlagMenuValues[i] = (str_to_num(num) * 1440)
		} else if(equali(flag, "w")) {
			g_FlagMenuValues[i] = (str_to_num(num) * 10080)
		}
		i++
	}
	return PLUGIN_HANDLED
}
loadDefaultBantimes(num) {
	if(num == 1 || num == 0)
		server_cmd("amx_sethighbantimes 5 60 240 600 6000 0")
	if(num == 2 || num == 0)
		server_cmd("amx_setlowbantimes 5 30 60 480 600 1440")
	if(num == 3 || num == 0)
		server_cmd("amx_setflagtimes 60 240 600 1440 10080 40320 90720 0")
}
/*********    mysql escape functions     ************/
mysql_escape_string(const source[],dest[],len) {
	SQL_QuoteString(Empty_Handle,dest,len,source)
}
mysql_get_username_safe(id,dest[],len) {
	new name[128]
	get_user_name(id,name,127)
	SQL_QuoteString(Empty_Handle,dest,len,name)
}
mysql_get_servername_safe(dest[],len) {
	new server_name[256]
	get_cvar_string("hostname", server_name, charsmax(server_name))
	SQL_QuoteString(Empty_Handle,dest,len,server_name)
}
Code:
L 05/25/2010 - 18:17:03: [AMXX] Run time error 10: native error (native "SQL_QuoteString")

I have to admit.. i don't know how i should fix this issue and make my plugin running smooth with 1.8.1 ;)
__________________
Success is a lousy teacher. It seduces smart people into thinking they can't lose.
- Bill Gates

Quote:
Originally Posted by Hawk552
SeToY is a retard, scumbag and asshole and you shouldn't pretend that he isn't.
SeToY is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 05:27.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode