commit 164e15b8c6eb86d4ae640d64a849945e0b4395b0 from: Alexander Barton date: Sun Dec 25 18:12:40 2011 UTC Synchronize G-Lines on server login commit - 32bfafafd9e90f9e224bf95e4f2512cea729aac1 commit + 164e15b8c6eb86d4ae640d64a849945e0b4395b0 blob - ba6c0254f7e32b1890723a9d3a0e0ad4fa0deb6d blob + 0440768c6151ccab7a5d8e3d043c2056e1b6d321 --- src/ngircd/numeric.c +++ src/ngircd/numeric.c @@ -28,6 +28,7 @@ #include "conn.h" #include "conn-func.h" #include "channel.h" +#include "class.h" #include "irc-write.h" #include "lists.h" #include "log.h" @@ -194,8 +195,10 @@ Announce_User(CLIENT * Client, CLIENT * User) #ifdef IRCPLUS /** - * Synchronize invite and ban lists between servers - * @param Client New server + * Synchronize invite, ban, G- and K-Line lists between servers. + * + * @param Client New server. + * @return CONNECTED or DISCONNECTED. */ static bool Synchronize_Lists(CLIENT * Client) @@ -206,6 +209,18 @@ Synchronize_Lists(CLIENT * Client) assert(Client != NULL); + /* g-lines */ + head = Class_GetList(CLASS_GLINE); + elem = Lists_GetFirst(head); + while (elem) { + if (!IRC_WriteStrClient(Client, "GLINE %s %ld :%s", + Lists_GetMask(elem), + Lists_GetValidity(elem) - time(NULL), + Lists_GetReason(elem))) + return DISCONNECTED; + elem = Lists_GetNext(elem); + } + c = Channel_First(); while (c) { /* ban list */