]> code.citadel.org Git - citadel.git/blobdiff - citadel/database.c
antiexpire 0 for rss
[citadel.git] / citadel / database.c
index aec4a61f6f0806edba3766977cbca0dcc5aa77b7..b55ec5fd646037cb87467943dba936dd768d01ef 100644 (file)
@@ -49,6 +49,7 @@
 #include "control.h"
 #include "citserver.h"
 #include "config.h"
+#pragma GCC diagnostic ignored "-Wcast-qual"
 
 static DB *dbp[MAXCDB];                /* One DB handle for each Citadel database */
 static DB_ENV *dbenv;          /* The DB environment (global) */
@@ -510,14 +511,12 @@ int cdb_store(int cdb, const void *ckey, int ckeylen, void *cdata, int cdatalen)
        memset(&dkey, 0, sizeof(DBT));
        memset(&ddata, 0, sizeof(DBT));
        dkey.size = ckeylen;
-       /* no, we don't care for this error. */
-       dkey.data = ckey;
-
+       dkey.data = (void *)ckey;
        ddata.size = cdatalen;
        ddata.data = cdata;
 
-       /* Only compress Visit records.  Everything else is uncompressed. */
-       if (cdb == CDB_VISIT) {
+       /* Only compress Visit and UseTable records.  Everything else is uncompressed. */
+       if ( (cdb == CDB_VISIT) || (cdb == CDB_USETABLE) ) {
                compressing = 1;
                zheader.magic = COMPRESS_MAGIC;
                zheader.uncompressed_len = cdatalen;
@@ -657,8 +656,7 @@ struct cdbdata *cdb_fetch(int cdb, const void *key, int keylen)
 
        memset(&dkey, 0, sizeof(DBT));
        dkey.size = keylen;
-       /* no we don't care about this error. */
-       dkey.data = key;
+       dkey.data = (void *)key;
 
        if (TSD->tid != NULL) {
                memset(&dret, 0, sizeof(DBT));
@@ -871,28 +869,21 @@ void cdb_trunc(int cdb)
        }
 }
 
-int SeentDebugEnabled = 0;
 
-time_t CheckIfAlreadySeen(const char *Facility,
-                         StrBuf *guid,
-                         time_t now,
-                         time_t antiexpire,
-                         eCheckType cType,
-                         long ccid,
-                         long ioid)
+time_t CheckIfAlreadySeen(StrBuf *guid, time_t now, time_t antiexpire, eCheckType cType)
 {
        time_t InDBTimeStamp = 0;
        struct UseTable ut;
        struct cdbdata *cdbut;
 
+       memset(&ut, 0, sizeof(struct UseTable));        // zeroing it out makes it compress better
+
        if (cType != eWrite)
        {
                syslog(LOG_DEBUG, "Loading [%s]", ChrPtr(guid));
                cdbut = cdb_fetch(CDB_USETABLE, SKEY(guid));
                if ((cdbut != NULL) && (cdbut->ptr != NULL)) {
-                       memcpy(&ut, cdbut->ptr,
-                              ((cdbut->len > sizeof(struct UseTable)) ?
-                               sizeof(struct UseTable) : cdbut->len));
+                       memcpy(&ut, cdbut->ptr, ((cdbut->len > sizeof(struct UseTable)) ?  sizeof(struct UseTable) : cdbut->len));
                        InDBTimeStamp = now - ut.ut_timestamp;
 
                        if (InDBTimeStamp < antiexpire)
@@ -923,13 +914,9 @@ time_t CheckIfAlreadySeen(const char *Facility,
        memcpy(ut.ut_msgid, SKEY(guid));
        ut.ut_timestamp = now;
 
-       syslog(LOG_DEBUG, "Saving new Timestamp");
        /* rewrite the record anyway, to update the timestamp */
-       cdb_store(CDB_USETABLE,
-                 SKEY(guid),
-                 &ut, sizeof(struct UseTable) );
-
-       syslog(LOG_DEBUG, "Done Saving");
+       syslog(LOG_DEBUG, "(re)writing usetable record");
+       cdb_store(CDB_USETABLE, SKEY(guid), &ut, sizeof(struct UseTable));
        return InDBTimeStamp;
 }
 
@@ -980,16 +967,11 @@ void cmd_rsen(char *argbuf) {
        }
 
 }
-void LogDebugEnableSeenEnable(const int n)
-{
-       SeentDebugEnabled = n;
-}
 
 CTDL_MODULE_INIT(database)
 {
        if (!threading)
        {
-               CtdlRegisterDebugFlagHook(HKEY("SeenDebug"), LogDebugEnableSeenEnable, &SeentDebugEnabled);
                CtdlRegisterProtoHook(cmd_rsen, "RSEN", "manipulate Aggregators seen database");
        }