DELETE command
[rxpd] / src / rxpd.h
index 24ee56d..60dc441 100644 (file)
@@ -38,6 +38,7 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <event.h>
+#include <time.h>
 
 #define RXPD_COMMANDS                                           \
   RXPD_CMD(CHECK,       "data against regular expressions")     \
   RXPD_CMD(PREPEND,     "new rules in front of a list")         \
   RXPD_CMD(REMOVE,      "rules from a list")                    \
   RXPD_CMD(REPLACE,     "a rule in a list with new rules")      \
+  RXPD_CMD(DELETE,      "a list from memory")                   \
   RXPD_CMD(LOAD,        "a list from disk")                     \
   RXPD_CMD(SAVE,        "a list to disk")                       \
   RXPD_CMD(EXPIRE,      "aged rules from a list")               \
   RXPD_CMD(DUMP,        "rules in a list")                      \
   RXPD_CMD(LIST,        "all existing lists")                   \
-  RXPD_CMD(VERSION,     "of this rxpd is "PACKAGE_STRING)       \
+  RXPD_CMD(VERSION,     "of this rxpd is "PACKAGE_VERSION)      \
   RXPD_CMD(HELP,        "is what you see right now")            \
   RXPD_CMD(SHUTDOWN,    "the daemon")
 
@@ -60,9 +62,10 @@ enum rxpd_cmd_e {RXPD_COMMANDS};
 
 /*
  * characters which are absolutely not allowed in rule filenames
- * for finer control use policies
+ * for finer control use policies, note that this are arbitary
+ * decisions also reserving some chars for later extension
  */
-#define RXPD_FILE_ILG_CHARS "/: \t\n*?"
+#define RXPD_FILE_ILG_CHARS "@&?<>|/: \t\n\r*?\\"
 
 struct rxpd_base;
 struct rxpd_file;
@@ -113,6 +116,7 @@ struct rxpd_rule
 {
   llist node;
   char* string;
+  time_t atime;
   regex_t rx;
 };
 
@@ -138,7 +142,7 @@ struct rxpd_file*
 rxpd_file_new (struct rxpd_base* base, const char* filename);
 
 void
-rxpd_file_delete (PSplay file);
+rxpd_file_delete (struct rxpd_file* file);
 
 int
 rxpd_file_load (struct rxpd_file* self);