Improve channel merging and restrict channel age display.
authorMichael Poole <mdpoole@troilus.org>
Sun, 14 Aug 2005 01:34:04 +0000 (01:34 +0000)
committerMichael Poole <mdpoole@troilus.org>
Sun, 14 Aug 2005 01:34:04 +0000 (01:34 +0000)
src/chanserv.c (merge_data): Merge registered and owner-transfer
    timestamps, may_opchan flag, and max visitor count.
  (cmd_info): Only show channel age if the user is privileged.
git-archimport-id: srvx@srvx.net--2005-srvx/srvx--devo--1.3--patch-26

ChangeLog
src/chanserv.c

index c016eb1c3a66d65d7e6eebdae92ade89449ad014..92a822f3ce04772e2eb2186f47e503ff2548bf73 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,21 @@
 # arch-tag: automatic-ChangeLog--srvx@srvx.net--2005-srvx/srvx--devo--1.3
 #
 
+2005-08-14 01:34:04 GMT        Michael Poole <mdpoole@troilus.org>     patch-26
+
+    Summary:
+      Improve channel merging and restrict channel age display.
+    Revision:
+      srvx--devo--1.3--patch-26
+
+    src/chanserv.c (merge_data): Merge registered and owner-transfer
+        timestamps, may_opchan flag, and max visitor count.
+      (cmd_info): Only show channel age if the user is privileged.
+
+    modified files:
+     ChangeLog src/chanserv.c
+
+
 2005-07-19 18:31:26 GMT        Michael Poole <mdpoole@troilus.org>     patch-25
 
     Summary:
index 84ea68c9691434107eb9aa8170368ab8f1d4ea23..1d7bff97dfec4fea33cfbc3ae752e56d55104cb4 100644 (file)
@@ -2108,8 +2108,20 @@ merge_bans(struct chanData *source, struct chanData *target)
 static void
 merge_data(struct chanData *source, struct chanData *target)
 {
+    /* Use more recent visited and owner-transfer time; use older
+     * registered time.  Bitwise or may_opchan.  Use higher max.
+     * Do not touch last_refresh, ban count or user counts.
+     */
     if(source->visited > target->visited)
        target->visited = source->visited;
+    if(source->registered < target->registered)
+        target->registered = source->registered;
+    if(source->ownerTransfer > target->ownerTransfer)
+        target->ownerTransfer = source->ownerTransfer;
+    if(source->may_opchan)
+        target->may_opchan = 1;
+    if(source->max > target->max)
+        target->max = source->max;
 }
 
 static void
@@ -3944,9 +3956,10 @@ static CHANSERV_FUNC(cmd_info)
     reply("CSMSG_CHANNEL_USERS", cData->userCount);
     reply("CSMSG_CHANNEL_BANS", cData->banCount);
     reply("CSMSG_CHANNEL_VISITED", intervalString(buffer, now - cData->visited, user->handle_info));
-    reply("CSMSG_CHANNEL_REGISTERED", intervalString(buffer, now - cData->registered, user->handle_info));
 
     privileged = IsStaff(user);
+    if(privileged)
+        reply("CSMSG_CHANNEL_REGISTERED", intervalString(buffer, now - cData->registered, user->handle_info));
     if(((uData && uData->access >= UL_COOWNER) || privileged) && cData->registrar)
         reply("CSMSG_CHANNEL_REGISTRAR", cData->registrar);