Index: trunk/docs/Changelog
===================================================================
--- trunk/docs/Changelog	(revision 332)
+++ trunk/docs/Changelog	(revision 333)
@@ -1,3 +1,9 @@
 2.8.4:
+	* Add unit tests for IgnoreAdded/IgnoreDeleted configuration directives
+	* Fix deadlock after reload when compiled with --enable-login-watch
+	  (reported by M. Teege and O. Cobanoglu)
+	* Fix compile error for samhain_hide.ko with recent kernel
+	* Include patch by J. Graumann to specify the location of the 
+	  secret keyring with samhainadmin.pl
 	* Fix potential timeout problem in sh_sub_stat_int() and propagate the
 	  error (issue reported by mtg)
@@ -7,9 +13,9 @@
 	  check
 
-2.8.3a:
+2.8.3a (23-03-2011):
 	* Fix two 'label at end of compound statement' errors on FreeBSD
 	  (reported by David E. Thiel)
 
-2.8.3:
+2.8.3 (22-03-2011):
 	* init scripts: load samhain_kmem.ko before samhain starts
 	* slib.c: eliminate mutex from sl_create_ticket()
@@ -30,5 +36,5 @@
 	* fix Windows/Cygwin compile error (reported by A. Schmidt)
 
-2.8.2:
+2.8.2 (16-02-2011):
 	* add function to skip checksumming
 	* Fix missing check for recursion depth >= 0 if not IgnoreAll
@@ -37,5 +43,5 @@
 	* Fix minor bug in check_samhain.pl (pointed out by J.-S. Eon long ago)
 
-2.8.1:
+2.8.1 (17-11-2010):
 	* Document handling of missing files with secondary schedule
 	* Fix incorrect handling of missing files when secondary schedule
Index: trunk/src/sh_ignore.c
===================================================================
--- trunk/src/sh_ignore.c	(revision 332)
+++ trunk/src/sh_ignore.c	(revision 333)
@@ -39,4 +39,6 @@
 #define FIL__ _("sh_ignore.c")
 
+#if defined(SH_WITH_CLIENT) || defined(SH_STANDALONE)
+
 struct sh_ignore_list {
 #ifdef HAVE_REGEX_H
@@ -191,8 +193,59 @@
   return 0;
 }
-
-
-
-
-
-
+#endif
+
+#ifdef SH_CUTEST
+#include "CuTest.h"
+
+void Test_ignore_ok (CuTest *tc) {
+#if defined(SH_WITH_CLIENT) || defined(SH_STANDALONE)
+
+  int ret; 
+
+  CuAssertTrue(tc, NULL == sh_del_ign);
+  CuAssertTrue(tc, NULL == sh_new_ign);
+ 
+  ret = sh_ignore_add_del ("/var/log/foo/.*");
+  CuAssertTrue(tc, 0 == ret);
+  CuAssertPtrNotNull(tc, sh_del_ign);
+
+  ret = sh_ignore_chk_del ("/var/log/foo/test");
+  CuAssertTrue(tc, S_TRUE == ret);
+  CuAssertTrue(tc, NULL == sh_new_ign);
+  
+  ret = sh_ignore_chk_del ("/var/log/footest");
+  CuAssertTrue(tc, S_FALSE == ret);
+
+  ret = sh_ignore_chk_del ("/my/var/log/footest");
+  CuAssertTrue(tc, S_FALSE == ret);
+
+  sh_ignore_clean();
+  CuAssertTrue(tc, NULL == sh_del_ign);
+  CuAssertTrue(tc, NULL == sh_new_ign);
+ 
+  ret = sh_ignore_add_new ("/var/log/foo/.*");
+  CuAssertTrue(tc, 0 == ret);
+  CuAssertPtrNotNull(tc, sh_new_ign);
+  CuAssertTrue(tc, NULL == sh_del_ign);
+
+  ret = sh_ignore_chk_new ("/var/log/foo/test");
+  CuAssertTrue(tc, S_TRUE == ret);
+  
+  ret = sh_ignore_chk_new ("/var/log/footest");
+  CuAssertTrue(tc, S_FALSE == ret);
+
+  ret = sh_ignore_chk_new ("/my/var/log/footest");
+  CuAssertTrue(tc, S_FALSE == ret);
+
+  sh_ignore_clean();
+  CuAssertTrue(tc, NULL == sh_new_ign);
+  CuAssertTrue(tc, NULL == sh_del_ign);
+
+#else
+  (void) tc; /* fix compiler warning */
+#endif
+  return;
+}
+/* #ifdef SH_CUTEST */
+#endif
+
