More aggressive zeroing of visit records so they compress better
authorArt Cancro <ajc@citadel.org>
Sat, 4 Mar 2023 17:59:42 +0000 (12:59 -0500)
committerArt Cancro <ajc@citadel.org>
Sat, 4 Mar 2023 17:59:42 +0000 (12:59 -0500)
citadel/server/modules/ctdlproto/serv_user.c
citadel/server/msgbase.c
citadel/server/user_ops.c

index 96c5a2620381e2d3dd678a88e73f16b5bee27c8a..b1b5f8fa065f01a5295567078659b68cecf3aaa5 100644 (file)
@@ -297,8 +297,7 @@ void cmd_seen(char *argbuf) {
        target_msgnum = extract_long(argbuf, 0);
        target_setting = extract_int(argbuf, 1);
 
-       CtdlSetSeen(&target_msgnum, 1, target_setting,
-                       ctdlsetseen_seen, NULL, NULL);
+       CtdlSetSeen(&target_msgnum, 1, target_setting, ctdlsetseen_seen, NULL, NULL);
        cprintf("%d OK\n", CIT_OK);
 }
 
index 43481ad2c80705faf03488c01df1dfa478e67167..3858d5a491ae5771493c37a9393d142c8667208e 100644 (file)
@@ -599,12 +599,14 @@ void CtdlSetSeen(long *target_msgnums, int num_target_msgnums,
                vset = new_set;
        }
 
-       // Decide which message set we're manipulating
+       // Decide which message set we're manipulating.  Zero the buffers so they compress well.
        switch (which_set) {
                case ctdlsetseen_seen:
+                       memset(vbuf.v_seen, 0, sizeof vbuf.v_seen);
                        safestrncpy(vbuf.v_seen, ChrPtr(vset), sizeof vbuf.v_seen);
                        break;
                case ctdlsetseen_answered:
+                       memset(vbuf.v_answered, 0, sizeof vbuf.v_seen);
                        safestrncpy(vbuf.v_answered, ChrPtr(vset), sizeof vbuf.v_answered);
                        break;
        }
index 5ee1da4a6c56b7d2e467e2a0ddd4bacc4e39c620..84cc69023bfb8c077f0370c3d15b121a9c453fc2 100644 (file)
@@ -250,14 +250,12 @@ void put_visit(struct visit *newvisit) {
        char IndexBuf[32];
        int IndexLen = 0;
 
-       memset (IndexBuf, 0, sizeof (IndexBuf));
+       memset(IndexBuf, 0, sizeof (IndexBuf));
        // Generate an index
        IndexLen = GenerateRelationshipIndex(IndexBuf, newvisit->v_roomnum, newvisit->v_roomgen, newvisit->v_usernum);
 
        // Store the record
-       cdb_store(CDB_VISIT, IndexBuf, IndexLen,
-                 newvisit, sizeof(struct visit)
-       );
+       cdb_store(CDB_VISIT, IndexBuf, IndexLen, newvisit, sizeof(struct visit));
 }