-using irc::sockets::MatchCIDR;
-
-// Wed 27 Apr 2005 - Brain
-// I've taken our our old wildcard routine -
-// although comprehensive, it was topheavy and very
-// slow, and ate masses of cpu when doing lots of
-// comparisons. This is the 'de-facto' routine used
-// by many, nobody really knows who wrote it first
-// or what license its under, i've seen examples of it
-// (unattributed to any author) all over the 'net.
-// For now, we'll just consider this public domain.
-
-bool match(const char *str, const char *mask)
+/*
+ * Wildcard matching!
+ *
+ * Iteration 1)
+ * Slow, horrible, etc.
+ * Iteration 2)
+ * The vastly available 'public domain' one
+ * Iteration 3)
+ * ZNC's, thought to be faster than ours, but it turned out that we could do better ;-)
+ * Iteration 4)
+ * Largely from work by peavey and myself (w00t) :)
+ * Iteration 5)
+ * peavey: Fix glob scan similar to 1.1, but scan ahead on glob in inner loop to retain speedup
+ * this fixes another case which we forgot to test. Add early return for obvious fail condition.
+ */
+static bool match_internal(const unsigned char *string, const unsigned char *wild, unsigned const char *map)