summaryrefslogtreecommitdiff
path: root/sysutils/monitord/files/patch-monitord.c
blob: 5414bc88092e08b05bc0d320f43c883721ad7520 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
--- monitord.c.orig	2003-01-16 21:39:44 UTC
+++ monitord.c
@@ -30,6 +30,8 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  */
 #include "monitord.h"
 #include "config.h"
 
+static int HUP;
+
 int main (int argc, char *arga[]) {
 
 	int i, num, interval;
@@ -69,7 +71,7 @@ int main (int argc, char *arga[]) {
 	// init the *file[];
 	for ( i = 0; i < _MAXLINE; i++ ) {		
 		file[i] = (char *) malloc ( (size_t) sizeof(char) * _BUFSIZE );
-		bzero ( file[i], sizeof (file[i]) );
+		bzero ( file[i], sizeof (*file[i]) );
 	}
 
 //	file = (char **) calloc (1000, (size_t) sizeof(char) * _BUFSIZE );
@@ -85,8 +87,8 @@ int main (int argc, char *arga[]) {
 			setsid ();
 			break;
 		}
-		default: 
-		exit(1);
+		default: // The parent exits
+		exit(0);
 	}
 
 	/* Read the configuration file, saving it in *file[] and return the number of lines
@@ -119,7 +121,7 @@ int read_conf ( char ***file, char *filename ) {
 	char *buf;
 
         buf = (char *) malloc ( (size_t) _BUFSIZE ); // init & zero the buffer
-        bzero (buf, sizeof (buf) );
+        bzero (buf, sizeof (*buf) );
 
 	line_count = 0;
 
@@ -146,7 +148,7 @@ int read_conf ( char ***file, char *filename ) {
 			strncpy ( (char *) file[line_count], buf, _BUFSIZE );
 //			realloc ( & file[1], (size_t) sizeof(char) * _BUFSIZE * (line_count + 1) );
 			// zero out the buffer so we don't have it hold old garbage
-			bzero (buf, sizeof (buf));
+			bzero (buf, sizeof (*buf));
 
 			line_count++; // Advance the counter
 	
@@ -197,9 +199,9 @@ int loop ( char **file, char *filename, int max_proc, 
 	buf = (char *) malloc ( (size_t) _BUFSIZE ); // init the all purpose buffer
 	buf2 = (char *) malloc ( (size_t) _BUFSIZE ); // init another all purpose buffer
 	token = (char *) malloc ( (size_t) _BUFSIZE ); // init the token buffer
-	bzero (buf, sizeof (buf) );
-	bzero (buf2, sizeof (buf) );
-	bzero (token, sizeof (token) );
+	bzero (buf, sizeof (*buf) );
+	bzero (buf2, sizeof (*buf) );
+	bzero (token, sizeof (*token) );
 
 	FOUND = 0;
 	
@@ -290,8 +292,8 @@ int loop ( char **file, char *filename, int max_proc, 
 
 			bzero (param, sizeof(param));
 			while ((token = strtok(NULL, " \t"))) {
-				strncat (param, " ", sizeof(param));
-				strncat (param, token, sizeof(param));
+				strncat (param, " ", sizeof(*param));
+				strncat (param, token, sizeof(*param));
 			}
 
 			/* Each line has a \n at the end which must be removed
@@ -355,7 +357,7 @@ int loop ( char **file, char *filename, int max_proc, 
 //					printf("Couldn't open %s\n", buf);
 				}
 				// Set the FOUND flag if the process we're checking for is found
-				if (!strncmp (buf, proc, sizeof(buf))) FOUND = TRUE;
+				if (!strncmp (buf, proc, sizeof(*buf))) FOUND = TRUE;
 			}
 			closedir (dirp);   // Close the /proc directory
 
@@ -365,8 +367,8 @@ int loop ( char **file, char *filename, int max_proc, 
 				/* Email admin that the service has died, if the "mail"
 				option has been set in the options */
 				if (options.alert) {
-					bzero (buf, sizeof(buf));
-					bzero (buf2, sizeof(buf2));
+					bzero (buf, sizeof(*buf));
+					bzero (buf2, sizeof(*buf2));
 					sprintf (buf, "[%s] Service \"%s\" has died\n", getdate(), proc);
 					sprintf (buf2, "(monitord) SYSTEM ALERT, \"%s\" has died\n", proc);
 					mail (email, eserver, buf2, buf);
@@ -405,7 +407,7 @@ int loop ( char **file, char *filename, int max_proc, 
 						/* Email the admin that the service has been
 						restarted if "mail" option is set */
 						if (options.alert) {
-							bzero (buf, sizeof(buf));
+							bzero (buf, sizeof(*buf));
 							sprintf (buf, "[%s] restarted \"%s\" using \"%s %s\"\n", getdate(), proc, script_path, param);
 							sprintf (buf2, "(monitord) \"%s\" restarted\n", proc);
 							mail (email, eserver, buf2, buf);
@@ -418,7 +420,7 @@ int loop ( char **file, char *filename, int max_proc, 
 						been able to be	restarted if "mail" option
 						is set */
 						if (options.alert) {
-							bzero (buf, sizeof(buf));
+							bzero (buf, sizeof(*buf));
 							sprintf (buf, "[%s] unable to restart \"%s\"\n", getdate(), proc);
 							sprintf (buf2, "(monitord) SYSTEM ALERT: \"%s\" unable to restart\n", proc);
 							mail (email, eserver, buf2, buf);
@@ -454,13 +456,13 @@ char *getdate () {
 
 	struct timeval *tp;
 	struct timezone *tzp;
-	const time_t *time;
+	time_t *time;
 	char *buf;
 
 	buf = (char *) malloc ( (size_t) _BUFSIZE ); // init the time buffer
 	tp = (struct timeval *) malloc ( (size_t) sizeof (struct timeval) ); // init the time buffer
 	tzp = (struct timezone *) malloc ( (size_t) sizeof (struct timezone) ); // init the timezone buffer
-	time = (const time_t *) malloc ( (size_t) sizeof (time_t) ); // init the timezone buffer
+	time = (time_t *) malloc ( (size_t) sizeof (time_t) ); // init the timezone buffer
 
 	/* Get time of day in seconds since Epoch */
 	gettimeofday (tp, tzp);