diff src/syslog2iptables.cpp @ 4:2737ab01659a

initial coding
author carl
date Thu, 01 Dec 2005 17:17:37 -0800
parents 8fe310e5cd44
children 276c4edc8521
line wrap: on
line diff
--- a/src/syslog2iptables.cpp	Sun Nov 27 21:12:01 2005 -0800
+++ b/src/syslog2iptables.cpp	Thu Dec 01 17:17:37 2005 -0800
@@ -30,8 +30,6 @@
 #include <unistd.h>
 #include <pthread.h>
 #include <syslog.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 #include <sys/wait.h>	/* header for waitpid() and various macros */
 #include <signal.h> 	/* header for signal functions */
 #include "includes.h"
@@ -196,14 +194,34 @@
 	if (check) {
 		use_syslog	 = false;
 		debug_syslog = 10;
-		CONFIG *conf = new_conf();
-		if (conf) {
-			conf->dump();
-			for (int i=0; i<2; i++) {
-				conf->read();
-				conf->sleep(5);
+		config = new_conf();
+		if (config) {
+			config->dump();
+			{
+				// just for testing
+				// initialize the thread sync objects
+				pthread_mutex_init(&config_mutex, 0);
+				pthread_mutex_init(&syslog_mutex, 0);
+
+				time_t t = time(NULL);
+				CONFIG *c;
+				pthread_mutex_lock(&config_mutex);
+					c = config;
+					c->reference_count++;
+				pthread_mutex_unlock(&config_mutex);
+				while (true) {
+					if (c != config) {
+						pthread_mutex_lock(&config_mutex);
+							c->reference_count--;
+							c = config;
+							c->reference_count++;
+						pthread_mutex_unlock(&config_mutex);
 			}
-			delete conf;
+					c->read();
+					c->sleep(10, t);
+				}
+			}
+			delete config;
 			return 0;
 		}
 		else {