From 0adbf810b8580fd064a20a5b83c6dcfdf2043f0c Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 9 Aug 2007 19:48:46 +0000 Subject: [PATCH] fixed silly design decisions in geoip that were copied over from amxmodx. natives now return true/false and the buffer is zeroed instead of filled with "ERROR" --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401299 --- extensions/geoip/extension.cpp | 13 +++++++------ plugins/include/geoip.inc | 12 ++++++------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/extensions/geoip/extension.cpp b/extensions/geoip/extension.cpp index 72e179de..718c800e 100644 --- a/extensions/geoip/extension.cpp +++ b/extensions/geoip/extension.cpp @@ -90,9 +90,10 @@ static cell_t sm_Geoip_Code2(IPluginContext *pCtx, const cell_t *params) StripPort(ip); ccode = GeoIP_country_code_by_addr(gi, ip); - pCtx->StringToLocal(params[2], 3, (ccode) ? ccode : "er"); - return 1; + pCtx->StringToLocal(params[2], 3, ccode ? ccode : ""); + + return ccode ? 1 : 0; } static cell_t sm_Geoip_Code3(IPluginContext *pCtx, const cell_t *params) @@ -104,9 +105,9 @@ static cell_t sm_Geoip_Code3(IPluginContext *pCtx, const cell_t *params) StripPort(ip); ccode = GeoIP_country_code3_by_addr(gi, ip); - pCtx->StringToLocal(params[2], 4, (ccode) ? ccode : "err"); + pCtx->StringToLocal(params[2], 4, ccode ? ccode : ""); - return 1; + return ccode ? 1 : 0; } static cell_t sm_Geoip_Country(IPluginContext *pCtx, const cell_t *params) @@ -118,9 +119,9 @@ static cell_t sm_Geoip_Country(IPluginContext *pCtx, const cell_t *params) StripPort(ip); ccode = GeoIP_country_name_by_addr(gi, ip); - pCtx->StringToLocal(params[2], params[3], (ccode) ? ccode : "error"); + pCtx->StringToLocal(params[2], params[3], (ccode) ? ccode : ""); - return 1; + return ccode ? 1 : 0; } const sp_nativeinfo_t geoip_natives[] = diff --git a/plugins/include/geoip.inc b/plugins/include/geoip.inc index ad28ef0f..6c320630 100644 --- a/plugins/include/geoip.inc +++ b/plugins/include/geoip.inc @@ -29,18 +29,18 @@ * * @param ip Ip to determine the country code. * @param ccode Destination string buffer to store the code. - * @noreturn + * @return True on success, false if no country found. */ -native GeoipCode2(const String:ip[], String:ccode[3]); +native bool:GeoipCode2(const String:ip[], String:ccode[3]); /** * Gets the three character country code from an IP address. (USA, CAN, etc) * * @param ip Ip to determine the country code. * @param ccode Destination string buffer to store the code. - * @noreturn + * @return True on success, false if no country found. */ -native GeoipCode3(const String:ip[], String:ccode[4]); +native bool:GeoipCode3(const String:ip[], String:ccode[4]); /** * Gets the full country name. (max length of output string is 45) @@ -48,9 +48,9 @@ native GeoipCode3(const String:ip[], String:ccode[4]); * @param ip Ip to determine the country code. * @param ccode Destination string buffer to store the country name. * @param len Maximum length of output string buffer. - * @noreturn + * @return True on success, false if no country found. */ -native GeoipCountry(const String:ip[], String:name[], len=45); +native bool:GeoipCountry(const String:ip[], String:name[], maxlength); /** * @endsection