]> jfr.im git - irc/quakenet/newserv.git/blobdiff - lua/luacommands.c
Export the mask matching function to lua (to match bans, ignores, etc.).
[irc/quakenet/newserv.git] / lua / luacommands.c
index 723d4ccdab3bbdacab0eebf11bd956ee1474d6be..222396ad14be7025acf26e12b11d3a177c373028 100644 (file)
@@ -221,7 +221,6 @@ static int lua_gline(lua_State *ps) {
   nick *target;
   char mask[512];
   int duration, usercount = 0;
-  host *hp;
   
   if(!lua_isstring(ps, 1) || !lua_isint(ps, 2) || !lua_isstring(ps, 3))
     LUA_RETURN(ps, LUA_FAIL);
@@ -365,6 +364,21 @@ static int lua_numerictobase64(lua_State *ps) {
   return 1;
 }
 
+static int lua_match(lua_State *ps) {
+  const char *mask, *string;
+
+  if(!lua_isstring(ps, 1) || !lua_isstring(ps, 2))
+    return 0;
+
+  mask = lua_tostring(ps, 1);
+  string = lua_tostring(ps, 2);
+
+  if (!mask || !mask[0] || !string || !string[0])
+    return 0;
+
+  LUA_RETURN(ps, match2strings(mask, string));
+}
+
 static int lua_getuserbyauth(lua_State *l) {
   nick *np;
   int found = 0;
@@ -888,6 +902,7 @@ void lua_registercommands(lua_State *l) {
   lua_register(l, "irc_sethost", lua_sethost);
 
   lua_register(l, "irc_numerictobase64", lua_numerictobase64);
+  lua_register(l, "irc_match", lua_match);
 }
 
 /* --- */