fixed P10_GLINE protocol violation (expiration has to be the relative time, not a...
authorpk910 <philipp@zoelle1.de>
Tue, 19 Jul 2011 21:22:40 +0000 (23:22 +0200)
committerpk910 <philipp@zoelle1.de>
Tue, 19 Jul 2011 21:22:40 +0000 (23:22 +0200)
src/proto-p10.c

index 29bf7ac7f515cf2f8b14764c47901fdf07fbdb66..00a5165cceea34234be00b17dfe7720d030b4d65 100644 (file)
@@ -702,12 +702,16 @@ irc_introduce(const char *passwd)
 void
 irc_gline(struct server *srv, struct gline *gline)
 {
+    //<prefix> GL <target> [!][+|-|>|<]<mask> [<expiration>] [<lastmod>] [<lifetime>] [:<reason>]
+    //expiration = relative time (seconds)
+    //lastmod = timestamp
+    //livetime = timestamp
     if (gline->lastmod)
-        putsock("%s " P10_GLINE " %s +%s %lu %lu %lu :%s",
-                self->numeric, (srv ? srv->numeric : "*"), gline->target, gline->expires, gline->lastmod, gline->lifetime, gline->reason);
+        putsock("%s " P10_GLINE " %s +%s %lu %lu %lu :%s", self->numeric, (srv ? srv->numeric : "*"), 
+                gline->target, gline->expires-now, gline->lastmod, gline->lifetime, gline->reason);
     else
-        putsock("%s " P10_GLINE " %s +%s %lu :%s",
-                self->numeric, (srv ? srv->numeric : "*"), gline->target, gline->expires, gline->reason);
+        putsock("%s " P10_GLINE " %s +%s %lu :%s", self->numeric, (srv ? srv->numeric : "*"), 
+                gline->target, gline->expires-now, gline->reason);
 }
 
 void