]> jfr.im git - irc/quakenet/newserv.git/blobdiff - lua/luacommands.c
Add documentation files.
[irc/quakenet/newserv.git] / lua / luacommands.c
index e961a9982855ca914f8727dd628de5d61181ed9f..1d96ac66d9c4d2283be5dff26bb60a55c0cf95fd 100644 (file)
@@ -17,6 +17,7 @@
 #include "../lib/irc_string.h"
 #include "../lib/flags.h"
 #include "../authext/authext.h"
+#include "../glines/glines.h"
 
 #include "lua.h"
 #include "luabot.h"
@@ -220,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);
@@ -237,31 +237,10 @@ static int lua_gline(lua_State *ps) {
   if(!target || (IsOper(target) || IsXOper(target) || IsService(target)))
     LUA_RETURN(ps, LUA_FAIL);
 
-  hp = target->host;
-  if(!hp)
+  if(glinebynick(target, duration, reason, GLINE_SIMULATE, "lua") > 50)
     LUA_RETURN(ps, LUA_FAIL);
 
-  usercount = hp->clonecount;
-  if(usercount > 10) { /* (decent) trusted host */
-    int j;
-    nick *np;
-
-    usercount = 0;
-
-    for (j=0;j<NICKHASHSIZE;j++)
-      for (np=nicktable[j];np;np=np->next)
-        if (np && (np->host == hp) && (!ircd_strcmp(np->ident, target->ident)))
-          usercount++;
-
-    if(usercount > 50)
-      LUA_RETURN(ps, LUA_FAIL);
-
-    snprintf(mask, sizeof(mask), "*%s@%s", target->ident, IPtostr(target->p_ipaddr));
-  } else {
-    snprintf(mask, sizeof(mask), "*@%s", IPtostr(target->p_ipaddr));
-  }
-
-  irc_send("%s GL * +%s %d %jd :%s", mynumeric->content, mask, duration, (intmax_t)getnettime(), reason);
+  usercount = glinebynick(target, duration, reason, 0, "lua");
   LUA_RETURN(ps, lua_cmsg(LUA_PUKECHAN, "lua-GLINE: %s (%d users, %d seconds -- %s)", mask, usercount, duration, reason));
 }