Author: DNB
Date: Wed Mar 30 13:47:23 2005
New Revision: 20
Modified:
trunk/ChangeLog
trunk/seen.c
trunk/seenserv.c
trunk/seenserv.h
trunk/seenserv_help.c
Log:
add record expiry by number of days
Modified: trunk/ChangeLog
==============================================================================
--- trunk/ChangeLog (original)
+++ trunk/ChangeLog Wed Mar 30 13:47:23 2005
@@ -2,6 +2,7 @@
Fish (F), Mark (M), DeadNotBuried (D)
==============================================================================
3.0.a3-dev
+ - Add EXPIRETIME setting, to expire records after # days (D)
- Ensure memory is free when unloading module (D)
- Add Enable/Disable options for each event (D)
- Use Nick only on connection Event output for non Opers, as Vhosts are
Modified: trunk/seen.c
==============================================================================
--- trunk/seen.c (original)
+++ trunk/seen.c Wed Mar 30 13:47:23 2005
@@ -58,13 +58,15 @@
lnode_t *ln;
SeenData *sd;
- while (list_count(seenlist) > SeenServ.maxseenentries) {
- ln = list_first(seenlist);
- sd = lnode_get(ln);
+ ln = list_first(seenlist);
+ sd = lnode_get(ln);
+ while ((list_count(seenlist) > SeenServ.maxentries) || (SeenServ.expiretime > 0 && (me.now - (SeenServ.expiretime * 86400)) > sd->seentime)) {
DBADelete( "seendata", sd->nick);
ns_free(sd);
list_delete(seenlist, ln);
lnode_destroy(ln);
+ ln = list_first(seenlist);
+ sd = lnode_get(ln);
}
}
Modified: trunk/seenserv.c
==============================================================================
--- trunk/seenserv.c (original)
+++ trunk/seenserv.c Wed Mar 30 13:47:23 2005
@@ -56,7 +56,7 @@
{"ENABLE", &SeenServ.enable, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, sns_help_set_enable, NULL, (void *)0 },
{"ENABLESEENCHAN", &SeenServ.enableseenchan, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, sns_help_set_enableseenchan, NULL, (void *)0 },
{"SEENCHANNAME", &SeenServ.seenchan, SET_TYPE_CHANNEL, 0, MAXCHANLEN, NS_ULEVEL_ADMIN, NULL, sns_help_set_seenchan, sns_set_seenchan, (void *)"#Seen" },
- {"MAXSEENENTRIES", &SeenServ.maxseenentries, SET_TYPE_INT, 100, 100000, NS_ULEVEL_ADMIN, NULL, sns_help_set_maxentries, sns_set_maxentries, (void *)2000 },
+ {"MAXENTRIES", &SeenServ.maxentries, SET_TYPE_INT, 100, 100000, NS_ULEVEL_ADMIN, NULL, sns_help_set_maxentries, sns_set_maxentries, (void *)2000 },
{"EVENTSIGNON", &SeenServ.eventsignon, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, sns_help_set_eventsignon, sns_set_eventsignon, (void *)1 },
{"EVENTQUIT", &SeenServ.eventquit, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, sns_help_set_eventquit, sns_set_eventquit, (void *)1 },
{"EVENTKILL", &SeenServ.eventkill, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, sns_help_set_eventkill, sns_set_eventkill, (void *)1 },
@@ -64,6 +64,7 @@
{"EVENTJOIN", &SeenServ.eventjoin, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, sns_help_set_eventjoin, sns_set_eventjoin, (void *)1 },
{"EVENTPART", &SeenServ.eventpart, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, sns_help_set_eventpart, sns_set_eventpart, (void *)1 },
{"EVENTKICK", &SeenServ.eventkick, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN, NULL, sns_help_set_eventkick, sns_set_eventkick, (void *)1 },
+ {"EXPIRETIME", &SeenServ.expiretime, SET_TYPE_INT, 0, 1000, NS_ULEVEL_ADMIN, NULL, sns_help_set_expiretime, sns_set_expiretime, (void *)0 },
{NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL },
};
@@ -178,7 +179,7 @@
* Change Max Entries Saved
*/
static int sns_set_maxentries (CmdParams *cmdparams, SET_REASON reason) {
- if (reason == SET_VALIDATE) {
+ if (reason == SET_CHANGE) {
checkseenlistlimit();
return NS_SUCCESS;
}
@@ -298,3 +299,15 @@
}
return NS_SUCCESS;
}
+
+/*
+ * Check Entry Saved Time
+*/
+static int sns_set_expiretime (CmdParams *cmdparams, SET_REASON reason) {
+ if (reason == SET_CHANGE && SeenServ.expiretime > 0) {
+ checkseenlistlimit();
+ return NS_SUCCESS;
+ }
+ return NS_SUCCESS;
+}
+
Modified: trunk/seenserv.h
==============================================================================
--- trunk/seenserv.h (original)
+++ trunk/seenserv.h Wed Mar 30 13:47:23 2005
@@ -44,7 +44,7 @@
int enable;
int enableseenchan;
char seenchan[MAXCHANLEN];
- int maxseenentries;
+ int maxentries;
int eventsignon;
int eventquit;
int eventkill;
@@ -52,6 +52,7 @@
int eventjoin;
int eventpart;
int eventkick;
+ int expiretime;
} SeenServ;
typedef struct SeenData {
@@ -77,6 +78,7 @@
extern const char *sns_help_set_eventjoin[];
extern const char *sns_help_set_eventpart[];
extern const char *sns_help_set_eventkick[];
+extern const char *sns_help_set_expiretime[];
extern const char sns_help_seen_oneline[];
extern const char sns_help_seennick_oneline[];
extern const char sns_help_del_oneline[];
@@ -106,6 +108,7 @@
static int sns_set_eventjoin( CmdParams *cmdparams, SET_REASON reason );
static int sns_set_eventpart( CmdParams *cmdparams, SET_REASON reason );
static int sns_set_eventkick( CmdParams *cmdparams, SET_REASON reason );
+static int sns_set_expiretime (CmdParams *cmdparams, SET_REASON reason);
/* seen.c */
void addseenentry(char *nick, char *host, char *vhost, char *message, int type);
Modified: trunk/seenserv_help.c
==============================================================================
--- trunk/seenserv_help.c (original)
+++ trunk/seenserv_help.c Wed Mar 30 13:47:23 2005
@@ -106,6 +106,13 @@
NULL
};
+const char *sns_help_set_expiretime[] = {
+ "\2EXPIRETIME <days>\2",
+ "expire records older than set days.",
+ "NOTE: 0 Days expires on MAXENTRIES only.",
+ NULL
+};
+
const char sns_help_seen_oneline[] = "Displays Last Seen Nicks";
const char sns_help_seennick_oneline[] = "Displays Last Seen Nicks";
const char sns_help_del_oneline[] = "Deletes Seen Entries that match nick!user@host";
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.