]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_geo_maxmind.cpp
Fix cloaking not ignoring the case of a user's hostname.
[user/henk/code/inspircd.git] / src / modules / extra / m_geo_maxmind.cpp
index f249ecf9154c642daf68cba679e1faa4eec26da2..b964a393ceb561f64438124149a519b3bf8f0581 100644 (file)
@@ -19,6 +19,7 @@
 /// $CompilerFlags: find_compiler_flags("libmaxminddb" "")
 /// $LinkerFlags: find_linker_flags("libmaxminddb" "-lmaxminddb")
 
+/// $PackageInfo: require_system("arch") libmaxminddb pkgconf
 /// $PackageInfo: require_system("darwin") libmaxminddb pkg-config
 /// $PackageInfo: require_system("debian" "9.0") libmaxminddb-dev pkg-config
 /// $PackageInfo: require_system("ubuntu" "16.04") libmaxminddb-dev pkg-config
 # pragma comment(lib, "libmaxminddb.lib")
 #endif
 
-#include <maxminddb.h>
 #include "inspircd.h"
 #include "modules/geolocation.h"
+#include <maxminddb.h>
 
-class GeolocationExtItem : public LocalExtItem
+class GeolocationExtItem : public ExtensionItem
 {
  public:
        GeolocationExtItem(Module* parent)
-               : LocalExtItem("geolocation", ExtensionItem::EXT_USER, parent)
+               : ExtensionItem("geolocation", ExtensionItem::EXT_USER, parent)
        {
        }
 
@@ -97,6 +98,10 @@ class GeolocationAPIImpl : public Geolocation::APIBase
 
        Geolocation::Location* GetLocation(irc::sockets::sockaddrs& sa) CXX11_OVERRIDE
        {
+               // Skip trying to look up a UNIX socket.
+               if (sa.family() != AF_INET && sa.family() != AF_INET6)
+                       return NULL;
+
                // Attempt to look up the socket address.
                int result;
                MMDB_lookup_result_s lookup = MMDB_lookup_sockaddr(&mmdb, &sa.sa, &result);