mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2025-01-12 23:08:03 +03:00
Geoip: Add a fallback to default language (en) in case of unsuccessful lookup with user's language.
This commit is contained in:
parent
ec3ff1deb9
commit
6babcafbec
@ -73,7 +73,7 @@ bool lookupByIp(const char *ip, const char **path, MMDB_entry_data_s *result)
|
|||||||
int gai_error = 0, mmdb_error = 0;
|
int gai_error = 0, mmdb_error = 0;
|
||||||
MMDB_lookup_result_s lookup = MMDB_lookup_string(&HandleDB, ip, &gai_error, &mmdb_error);
|
MMDB_lookup_result_s lookup = MMDB_lookup_string(&HandleDB, ip, &gai_error, &mmdb_error);
|
||||||
|
|
||||||
if (gai_error != 0 || MMDB_SUCCESS != mmdb_error || !lookup.found_entry)
|
if (gai_error != 0 || mmdb_error != MMDB_SUCCESS || !lookup.found_entry)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -82,10 +82,33 @@ bool lookupByIp(const char *ip, const char **path, MMDB_entry_data_s *result)
|
|||||||
MMDB_aget_value(&lookup.entry, &entry_data, path);
|
MMDB_aget_value(&lookup.entry, &entry_data, path);
|
||||||
|
|
||||||
if (!entry_data.has_data)
|
if (!entry_data.has_data)
|
||||||
|
{
|
||||||
|
size_t i = 0;
|
||||||
|
|
||||||
|
// Dirty fall back to default language ("en") in case provided user's language is not localized.
|
||||||
|
|
||||||
|
// Searh "names" position.
|
||||||
|
while (strcmp(path[i++], "names"));
|
||||||
|
|
||||||
|
// No localized entry or we use already default language.
|
||||||
|
if (!*path[i] || !strcmp(path[i], "en"))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Overwrite user's language.
|
||||||
|
path[i] = "en";
|
||||||
|
|
||||||
|
// Try again.
|
||||||
|
gai_error = mmdb_error = 0;
|
||||||
|
MMDB_aget_value(&lookup.entry, &entry_data, path);
|
||||||
|
|
||||||
|
if (!entry_data.has_data)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*result = entry_data;
|
*result = entry_data;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user