Browse code

Tue Feb 17 17:09:24 GMT 2004 (trog) ----------------------------------- * clamd: SIGHUP re-open log file support

git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@298 77e5149b-7576-45b1-b177-96237e5ba77b

Trog authored on 2004/02/18 02:07:50
Showing 5 changed files
... ...
@@ -1,3 +1,7 @@
1
+Tue Feb 17 17:09:24 GMT 2004 (trog)
2
+-----------------------------------
3
+  * clamd: SIGHUP re-open log file support
4
+
1 5
 Tue Feb 17 09:59:03 GMT 2004 (njh)
2 6
 ----------------------------------
3 7
   * libclamav: Added a new bounce delimeter
... ...
@@ -29,7 +33,7 @@ Sun Feb 15 14:10:19 CET 2004 (tk)
29 29
 
30 30
 Sun Feb 15 12:06:12 GMT 2004 (trog)
31 31
 -----------------------------------
32
- * libclamav/vba_extract.c: Fix memory leak
32
+  * libclamav/vba_extract.c: Fix memory leak
33 33
 
34 34
 Sun Feb 15 12:52:25 CET 2004 (tk)
35 35
 ---------------------------------
... ...
@@ -60,6 +60,7 @@ void logg_close(void) {
60 60
     pthread_mutex_lock(&logg_mutex);
61 61
     if (log_fd) {
62 62
 	fclose(log_fd);
63
+	log_fd = NULL;
63 64
     }
64 65
     pthread_mutex_unlock(&logg_mutex);
65 66
 #if defined(CLAMD_USE_SYSLOG) && !defined(C_AIX)
... ...
@@ -122,6 +123,7 @@ int logg(const char *str, ...)
122 122
 		    fprintf(log_fd, "Log size = %d, maximal = %d\n", (int) sb.st_size, logsize);
123 123
 		    fprintf(log_fd, "LOGGING DISABLED (Maximal log file size exceeded).\n");
124 124
 		    fclose(log_fd);
125
+		    log_fd = NULL;
125 126
 		    pthread_mutex_unlock(&logg_mutex);
126 127
 		    return 0;
127 128
 		}
... ...
@@ -28,7 +28,7 @@ void *mmalloc(size_t size);
28 28
 void *mcalloc(size_t nmemb, size_t size);
29 29
 void chomp(char *string);
30 30
 
31
-short int logverbose, logcompressed, loglock, logtime, sighup, logok, debug_mode;
31
+short int logverbose, logcompressed, loglock, logtime, logok, debug_mode;
32 32
 int logsize;
33 33
 const char *logfile;
34 34
 int logg(const char *str, ...);
... ...
@@ -39,6 +39,8 @@
39 39
 #include "clamuko.h"
40 40
 #include "tests.h"
41 41
 
42
+int sighup = 0;
43
+
42 44
 #define CMD1 "SCAN"
43 45
 #define CMD2 "RAWSCAN"
44 46
 #define CMD3 "QUIT"
... ...
@@ -38,6 +38,7 @@ int progexit = 0;
38 38
 pthread_mutex_t exit_mutex;
39 39
 int reload = 0;
40 40
 pthread_mutex_t reload_mutex;
41
+int sighup = 0;
41 42
 
42 43
 typedef struct client_conn_tag {
43 44
     int sd;
... ...
@@ -101,8 +102,8 @@ void sighandler_th(int sig)
101 101
 		break; /* not reached */
102 102
 
103 103
 	    case SIGHUP:
104
-		/* sighup = 1;
105
-		logg("SIGHUP catched: log file re-opened.\n"); */
104
+		sighup = 1;
105
+		//logg("SIGHUP caught: log file re-opened.\n");
106 106
 		break;
107 107
     }
108 108
 }
... ...
@@ -384,13 +385,21 @@ int acceptloop_th(int socketd, struct cl_node *root, const struct cfgstruct *cop
384 384
 	    continue;
385 385
 	}
386 386
 
387
-	client_conn = (client_conn_t *) mmalloc(sizeof(struct client_conn_tag));
388
-	client_conn->sd = new_sd;
389
-	client_conn->options = options;
390
-	client_conn->copt = copt;
391
-	client_conn->root = root;
392
-	client_conn->limits = &limits;
393
-	thrmgr_add(&thrmgr, client_conn);
387
+	if (sighup) {
388
+		logg("SIGHUP caught: re-opening log file.\n");
389
+		logg_close();
390
+		sighup = 0;
391
+	}
392
+
393
+	if (new_sd >= 0) {
394
+		client_conn = (client_conn_t *) mmalloc(sizeof(struct client_conn_tag));
395
+		client_conn->sd = new_sd;
396
+		client_conn->options = options;
397
+		client_conn->copt = copt;
398
+		client_conn->root = root;
399
+		client_conn->limits = &limits;
400
+		thrmgr_add(&thrmgr, client_conn);
401
+	}
394 402
 
395 403
 	pthread_mutex_lock(&exit_mutex);
396 404
 	if(progexit) {