Merge branch 'u2_10_12_branch' of git://git.code.sf.net/p/undernet-ircu/ircu2
[ircu2.10.12-pk.git] / include / match.h
diff --git a/include/match.h b/include/match.h
new file mode 100644 (file)
index 0000000..a2d7542
--- /dev/null
@@ -0,0 +1,34 @@
+/** @file match.h
+ * @brief Interface for matching strings to IRC masks.
+ * @version $Id$
+ */
+#ifndef INCLUDED_match_h
+#define INCLUDED_match_h
+#ifndef INCLUDED_sys_types_h
+#include <sys/types.h>         /* XXX - broken BSD system headers */
+#define INCLUDED_sys_types_h
+#endif
+#ifndef INCLUDED_res_h
+#include "res.h"
+#endif
+
+/*
+ * Prototypes
+ */
+
+/*
+ * XXX - match returns 0 if a match is found. Smelly interface
+ * needs to be fixed. --Bleep
+ */
+extern int mmatch(const char *old_mask, const char *new_mask);
+extern int match(const char *ma, const char *na);
+extern char *collapse(char *pattern);
+
+extern int matchcomp(char *cmask, int *minlen, int *charset, const char *mask);
+extern int matchexec(const char *string, const char *cmask, int minlen);
+extern int matchdecomp(char *mask, const char *cmask);
+extern int mmexec(const char *wcm, int wminlen, const char *rcm, int rminlen);
+
+extern int ipmask_check(const struct irc_in_addr *addr, const struct irc_in_addr *mask, unsigned char bits);
+
+#endif /* INCLUDED_match_h */