git-svn: trunk@2103

Nigel Horne authored on 2006/07/19 21:55:44
Showing 4 changed files
... ...
@@ -1,3 +1,7 @@
1
+Wed Jul 19 13:55:10 BST 2006 (njh)
2
+----------------------------------
3
+  * libclamav/table.c, clamav-milter:	General tidy
4
+
1 5
 Wed Jul 19 10:42:32 BST 2006 (njh)
2 6
 ----------------------------------
3 7
   * clamav-milter:	Use LogClean from clamd.conf, removed --dont-log-clean
... ...
@@ -23,7 +23,7 @@
23 23
  *
24 24
  * For installation instructions see the file INSTALL that came with this file
25 25
  */
26
-static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.262 2006/07/19 09:44:06 njh Exp $";
26
+static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.263 2006/07/19 12:54:42 njh Exp $";
27 27
 
28 28
 #define	CM_VERSION	"devel-190706"
29 29
 
... ...
@@ -429,8 +429,9 @@ static	short	use_syslog = 0;
429 429
 				 * NOTE: first character of strings to logg():
430 430
 				 *	! Error
431 431
 				 *	^ Warning
432
-				 *	* Debug
433
-				 *	# or no special character Info
432
+				 *	* Verbose
433
+				 *	# Info, but not logged in foreground
434
+				 *	Default Info
434 435
 				 */
435 436
 static	const	char	*pidFile;
436 437
 static	int	logVerbose = 0;
... ...
@@ -518,8 +519,8 @@ static	void	mx(void);
518 518
 static	void	resolve(const char *host);
519 519
 static	sfsistat	black_hole(const struct privdata *privdata);
520 520
 
521
-short	logg_time, logg_lock;
522
-int	logg_size;
521
+extern	short	logg_time, logg_lock, logg_verbose, logg_foreground;
522
+extern	int	logg_size;
523 523
 
524 524
 static void
525 525
 help(void)
... ...
@@ -1192,14 +1193,17 @@ main(int argc, char **argv)
1192 1192
 	if(cfgopt(copt, "LogSyslog")->enabled) {
1193 1193
 		int fac = LOG_LOCAL6;
1194 1194
 
1195
+		if(cfgopt(copt, "LogVerbose")->enabled) {
1196
+			logg_verbose = 1;
1195 1197
 #ifdef	CL_DEBUG
1196
-		if((debug_level >= 15) && cfgopt(copt, "LogVerbose")->enabled) {
1197
-			logVerbose = 1;
1198
+			if(debug_level >= 15) {
1199
+				logVerbose = 1;
1198 1200
 #if	((SENDMAIL_VERSION_A > 8) || ((SENDMAIL_VERSION_A == 8) && (SENDMAIL_VERSION_B >= 13)))
1199
-			smfi_setdbg(6);
1201
+				smfi_setdbg(6);
1200 1202
 #endif
1201
-		}
1203
+			}
1202 1204
 #endif
1205
+		}
1203 1206
 		logg_syslog = use_syslog = 1;
1204 1207
 
1205 1208
 		if(((cpt = cfgopt(copt, "LogFacility")) != NULL) && cpt->enabled)
... ...
@@ -1363,6 +1367,12 @@ main(int argc, char **argv)
1363 1363
 		}
1364 1364
 #endif
1365 1365
 
1366
+		if(numServers > max_children) {
1367
+			fprintf(stderr, _("%1$s: --max-children (%2$d) is lower than the number of servers you have (%3$d)\n"),
1368
+				argv[0], max_children, numServers);
1369
+			return EX_CONFIG;
1370
+		}
1371
+
1366 1372
 		for(i = 0; i < numServers; i++) {
1367 1373
 #ifdef	MAXHOSTNAMELEN
1368 1374
 			char hostname[MAXHOSTNAMELEN + 1];
... ...
@@ -1498,7 +1508,9 @@ main(int argc, char **argv)
1498 1498
 	} else
1499 1499
 		tmpdir = NULL;
1500 1500
 
1501
-	if(!cfgopt(copt, "Foreground")->enabled) {
1501
+	if(cfgopt(copt, "Foreground")->enabled)
1502
+		logg_foreground = 1;
1503
+	else {
1502 1504
 #ifdef	CL_DEBUG
1503 1505
 		printf(_("When debugging it is recommended that you use Foreground mode in %s\n"), cfgfile);
1504 1506
 		puts(_("\tso that you can see all of the messages"));
... ...
@@ -1559,13 +1571,6 @@ main(int argc, char **argv)
1559 1559
 
1560 1560
 #endif	/*!CL_DEBUG*/
1561 1561
 
1562
-		if(cfgopt(copt, "LogTime")->enabled)
1563
-			logg_time = 1;
1564
-		if(cfgopt(copt, "LogFileUnlock")->enabled)
1565
-			logg_lock = 0;
1566
-		if((cpt = cfgopt(copt, "LogFileMaxSize")) != NULL)
1567
-			logg_size = cpt->numarg;
1568
-
1569 1562
 #ifdef HAVE_SETPGRP
1570 1563
 #ifdef SETPGRP_VOID
1571 1564
 		setpgrp();
... ...
@@ -1579,8 +1584,17 @@ main(int argc, char **argv)
1579 1579
 #endif
1580 1580
 	}
1581 1581
 
1582
-	if(cfgopt(copt, "LogClean")->enabled)
1583
-		logClean = 1;
1582
+	logg_lock = cfgopt(copt, "LogFileUnlock")->enabled;
1583
+	logg_time = cfgopt(copt, "LogTime")->enabled;
1584
+	logClean = cfgopt(copt, "LogClean")->enabled;
1585
+	logg_size = cfgopt(copt, "LogFileMaxSize")->numarg;
1586
+	logg_verbose = mprintf_verbose = cfgopt(copt, "LogVerbose")->enabled;
1587
+
1588
+	if(cfgopt(copt, "Debug")->enabled)
1589
+		/*
1590
+		 * enable debug messages in libclamav, --debug also does this
1591
+		 */
1592
+		cl_debug();
1584 1593
 
1585 1594
 	atexit(quit);
1586 1595
 
... ...
@@ -2057,7 +2071,7 @@ findServer(void)
2057 2057
 		 * Don't worry about no lock - it's doesn't matter if it's
2058 2058
 		 * not really accurate
2059 2059
 		 */
2060
-		j = n_children;	/* look at the next free one */
2060
+		j = n_children - 1;	/* look at the next free one */
2061 2061
 	} else
2062 2062
 		/*
2063 2063
 		 * cli_rndnum returns 0..(max-1) - the max argument is not
... ...
@@ -2068,8 +2082,9 @@ findServer(void)
2068 2068
 
2069 2069
 	for(i = 0, server = servers; i < numServers; i++, server++) {
2070 2070
 		int sock;
2071
+		int server_index = (i + j) % numServers;
2071 2072
 
2072
-		if(((i + j) % numServers) >= numServers) {
2073
+		if(server_index >= numServers) {
2073 2074
 			/*
2074 2075
 			 * FIXME: "can't happen" but for some reason, the line
2075 2076
 			 * server->sin_addr.s_addr =
... ...
@@ -2077,7 +2092,7 @@ findServer(void)
2077 2077
 			 * gives occasional valgrind errors
2078 2078
 			 */
2079 2079
 			logg(_("!FindServer: looking for %1$d from %2$d - report to bugs@clamav.net\n"),
2080
-				(i + j) % numServers, numServers);
2080
+				server_index, numServers);
2081 2081
 			free(servers);
2082 2082
 			free(socks);
2083 2083
 			return 0;
... ...
@@ -2085,9 +2100,9 @@ findServer(void)
2085 2085
 
2086 2086
 		server->sin_family = AF_INET;
2087 2087
 		server->sin_port = (in_port_t)htons(tcpSocket);
2088
-		server->sin_addr.s_addr = serverIPs[(i + j) % numServers];
2088
+		server->sin_addr.s_addr = serverIPs[server_index];
2089 2089
 
2090
-		logg("*findServer: try server %d\n", (i + j) % numServers);
2090
+		logg("*findServer: try server %d\n", server_index);
2091 2091
 
2092 2092
 		sock = socks[i] = socket(AF_INET, SOCK_STREAM, 0);
2093 2093
 
... ...
@@ -2107,11 +2122,11 @@ findServer(void)
2107 2107
 #ifdef	MAXHOSTNAMELEN
2108 2108
 			char hostname[MAXHOSTNAMELEN + 1];
2109 2109
 
2110
-			cli_strtokbuf(serverHostNames, i, ":", hostname);
2110
+			cli_strtokbuf(serverHostNames, server_index, ":", hostname);
2111 2111
 			if(strcmp(hostname, "127.0.0.1") == 0)
2112 2112
 				gethostname(hostname, sizeof(hostname));
2113 2113
 #else
2114
-			char *hostname = cli_strtok(serverHostNames, i, ":");
2114
+			char *hostname = cli_strtok(serverHostNames, server_index, ":");
2115 2115
 #endif
2116 2116
 			logg(_("^Check clamd server %s - it may be down\n"), hostname);
2117 2117
 			close(sock);
... ...
@@ -2163,7 +2178,7 @@ findServer(void)
2163 2163
 			const int s = (i + j) % numServers;
2164 2164
 
2165 2165
 			free(socks);
2166
-			cli_dbgmsg(_("findServer: using server %d\n"), s);
2166
+			logg("*findServer: use server %d\n", s);
2167 2167
 			return s;
2168 2168
 		}
2169 2169
 
... ...
@@ -2393,8 +2408,7 @@ clamfi_connect(SMFICTX *ctx, char *hostname, _SOCK_ADDR *hostaddr)
2393 2393
 		return cl_error;
2394 2394
 
2395 2395
 	if(smfi_setpriv(ctx, privdata) == MI_SUCCESS) {
2396
-		if(blacklist_time)
2397
-			privdata->ip = strdup(remoteIP);
2396
+		privdata->ip = strdup(remoteIP);
2398 2397
 		return SMFIS_CONTINUE;
2399 2398
 	}
2400 2399
 
... ...
@@ -2900,10 +2914,6 @@ clamfi_eom(SMFICTX *ctx)
2900 2900
 		const char *virname;
2901 2901
 		unsigned long int scanned = 0L;
2902 2902
 
2903
-		/*
2904
-		 * TODO: consider using cl_scandesc and not using a temporary
2905
-		 *	file from the mail being read in
2906
-		 */
2907 2903
 		pthread_mutex_lock(&root_mutex);
2908 2904
 		privdata->root = cl_dup(root);
2909 2905
 		pthread_mutex_unlock(&root_mutex);
... ...
@@ -5507,7 +5517,7 @@ isBlacklisted(const char *ip_address)
5507 5507
 	if((time((time_t *)0) - t) <= blacklist_time)
5508 5508
 		return 1;
5509 5509
 
5510
-	/* remove the certificate */
5510
+	/* timedout: remove the IP from the blacklist */
5511 5511
 	pthread_mutex_unlock(&blacklist_mutex);
5512 5512
 	tableRemove(blacklist, ip_address);
5513 5513
 	pthread_mutex_unlock(&blacklist_mutex);
... ...
@@ -8,7 +8,7 @@ msgid ""
8 8
 msgstr ""
9 9
 "Project-Id-Version: PACKAGE VERSION\n"
10 10
 "Report-Msgid-Bugs-To: bugs@clamav.net\n"
11
-"POT-Creation-Date: 2006-06-06 16:35+0100\n"
11
+"POT-Creation-Date: 2006-07-19 13:54+0100\n"
12 12
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 13
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 14
 "Language-Team: LANGUAGE <LL@li.org>\n"
... ...
@@ -16,755 +16,802 @@ msgstr ""
16 16
 "Content-Type: text/plain; charset=CHARSET\n"
17 17
 "Content-Transfer-Encoding: 8bit\n"
18 18
 
19
-#: clamav-milter.c:479
19
+#: clamav-milter.c:531
20 20
 msgid "\t--advisory\t\t-A\tFlag viruses rather than deleting them."
21 21
 msgstr ""
22 22
 
23
-#: clamav-milter.c:480
23
+#: clamav-milter.c:532
24
+msgid "\t--blacklist=time\t-k\tTime (in seconds) to blacklist an IP."
25
+msgstr ""
26
+
27
+#: clamav-milter.c:533
28
+msgid "\t--black-hole-mode\t\tDon't scan messages aliased to /dev/null."
29
+msgstr ""
30
+
31
+#: clamav-milter.c:534
24 32
 msgid "\t--bounce\t\t-b\tSend a failure message to the sender."
25 33
 msgstr ""
26 34
 
27
-#: clamav-milter.c:481
35
+#: clamav-milter.c:535
28 36
 msgid ""
29 37
 "\t--broadcast\t\t-B [IFACE]\tBroadcast to a network manager when a virus is "
30 38
 "found."
31 39
 msgstr ""
32 40
 
33
-#: clamav-milter.c:482
41
+#: clamav-milter.c:536
34 42
 msgid "\t--config-file=FILE\t-c FILE\tRead configuration from FILE."
35 43
 msgstr ""
36 44
 
37
-#: clamav-milter.c:483
45
+#: clamav-milter.c:537
38 46
 msgid "\t--debug\t\t\t-D\tPrint debug messages."
39 47
 msgstr ""
40 48
 
41
-#: clamav-milter.c:484
49
+#: clamav-milter.c:538
42 50
 msgid ""
43 51
 "\t--detect-forged-local-address\t-L\tReject mails that claim to be from us."
44 52
 msgstr ""
45 53
 
46
-#: clamav-milter.c:485
47
-msgid ""
48
-"\t--dont-log-clean\t-C\tDon't add an entry to syslog that a mail is clean."
49
-msgstr ""
50
-
51
-#: clamav-milter.c:486
54
+#: clamav-milter.c:539
52 55
 msgid ""
53 56
 "\t--dont-scan-on-error\t-d\tPass e-mails through unscanned if a system error "
54 57
 "occurs."
55 58
 msgstr ""
56 59
 
57
-#: clamav-milter.c:487
60
+#: clamav-milter.c:540
58 61
 msgid "\t--dont-wait\t\t\tAsk remote end to resend if max-children exceeded."
59 62
 msgstr ""
60 63
 
61
-#: clamav-milter.c:488
64
+#: clamav-milter.c:541
62 65
 msgid "\t--external\t\t-e\tUse an external scanner (usually clamd)."
63 66
 msgstr ""
64 67
 
65
-#: clamav-milter.c:489
68
+#: clamav-milter.c:542
66 69
 msgid ""
67 70
 "\t--freshclam-monitor=SECS\t-M SECS\tHow often to check for database update."
68 71
 msgstr ""
69 72
 
70
-#: clamav-milter.c:490
73
+#: clamav-milter.c:543
71 74
 msgid "\t--from=EMAIL\t\t-a EMAIL\tError messages come from here."
72 75
 msgstr ""
73 76
 
74
-#: clamav-milter.c:491
77
+#: clamav-milter.c:544
75 78
 msgid "\t--force-scan\t\t-f\tForce scan all messages (overrides (-o and -l)."
76 79
 msgstr ""
77 80
 
78
-#: clamav-milter.c:492
81
+#: clamav-milter.c:545
79 82
 msgid "\t--help\t\t\t-h\tThis message."
80 83
 msgstr ""
81 84
 
82
-#: clamav-milter.c:493
85
+#: clamav-milter.c:546
83 86
 msgid "\t--headers\t\t-H\tInclude original message headers in the report."
84 87
 msgstr ""
85 88
 
86
-#: clamav-milter.c:494
89
+#: clamav-milter.c:547
90
+msgid ""
91
+"\t--ignore IPaddr\t\t-I IPaddr\tAdd IPaddr to LAN IP list (see --local)."
92
+msgstr ""
93
+
94
+#: clamav-milter.c:548
87 95
 msgid "\t--local\t\t\t-l\tScan messages sent from machines on our LAN."
88 96
 msgstr ""
89 97
 
90
-#: clamav-milter.c:495
98
+#: clamav-milter.c:549
91 99
 msgid "\t--max-childen\t\t-m\tMaximum number of concurrent scans."
92 100
 msgstr ""
93 101
 
94
-#: clamav-milter.c:496
102
+#: clamav-milter.c:550
95 103
 msgid "\t--outgoing\t\t-o\tScan outgoing messages from this machine."
96 104
 msgstr ""
97 105
 
98
-#: clamav-milter.c:497
106
+#: clamav-milter.c:551
99 107
 msgid "\t--noreject\t\t-N\tDon't reject viruses, silently throw them away."
100 108
 msgstr ""
101 109
 
102
-#: clamav-milter.c:498
110
+#: clamav-milter.c:552
103 111
 msgid "\t--noxheader\t\t-n\tSuppress X-Virus-Scanned/X-Virus-Status headers."
104 112
 msgstr ""
105 113
 
106
-#: clamav-milter.c:499
114
+#: clamav-milter.c:553
107 115
 msgid "\t--pidfile=FILE\t\t-i FILE\tLocation of pidfile."
108 116
 msgstr ""
109 117
 
110
-#: clamav-milter.c:500
118
+#: clamav-milter.c:554
111 119
 msgid "\t--postmaster\t\t-p EMAIL\tPostmaster address [default=postmaster]."
112 120
 msgstr ""
113 121
 
114
-#: clamav-milter.c:501
122
+#: clamav-milter.c:555
115 123
 msgid "\t--postmaster-only\t-P\tSend warnings only to the postmaster."
116 124
 msgstr ""
117 125
 
118
-#: clamav-milter.c:502
126
+#: clamav-milter.c:556
119 127
 msgid "\t--quiet\t\t\t-q\tDon't send e-mail notifications of interceptions."
120 128
 msgstr ""
121 129
 
122
-#: clamav-milter.c:503
130
+#: clamav-milter.c:557
123 131
 msgid "\t--quarantine=USER\t-Q EMAIL\tQuanrantine e-mail account."
124 132
 msgstr ""
125 133
 
126
-#: clamav-milter.c:504
134
+#: clamav-milter.c:558
127 135
 msgid "\t--quarantine-dir=DIR\t-U DIR\tDirectory to store infected emails."
128 136
 msgstr ""
129 137
 
130
-#: clamav-milter.c:505
138
+#: clamav-milter.c:559
131 139
 msgid ""
132 140
 "\t--server=SERVER\t\t-s SERVER\tHostname/IP address of server(s) running "
133 141
 "clamd (when using TCPsocket)."
134 142
 msgstr ""
135 143
 
136
-#: clamav-milter.c:506
144
+#: clamav-milter.c:560
137 145
 msgid "\t--sendmail-cf=FILE\t\tLocation of the sendmail.cf file to verify"
138 146
 msgstr ""
139 147
 
140
-#: clamav-milter.c:507
148
+#: clamav-milter.c:561
141 149
 msgid "\t--sign\t\t\t-S\tAdd a hard-coded signature to each scanned message."
142 150
 msgstr ""
143 151
 
144
-#: clamav-milter.c:508
152
+#: clamav-milter.c:562
145 153
 msgid "\t--signature-file=FILE\t-F FILE\tLocation of signature file."
146 154
 msgstr ""
147 155
 
148
-#: clamav-milter.c:509
156
+#: clamav-milter.c:563
149 157
 msgid "\t--template-file=FILE\t-t FILE\tLocation of e-mail template file."
150 158
 msgstr ""
151 159
 
152
-#: clamav-milter.c:510
160
+#: clamav-milter.c:564
153 161
 msgid ""
154 162
 "\t--template-headers=FILE\t\tLocation of e-mail headers for template file."
155 163
 msgstr ""
156 164
 
157
-#: clamav-milter.c:511
165
+#: clamav-milter.c:565
158 166
 msgid "\t--timeout=SECS\t\t-T SECS\tTimeout waiting to childen to die."
159 167
 msgstr ""
160 168
 
161
-#: clamav-milter.c:512
169
+#: clamav-milter.c:566
162 170
 msgid ""
163 171
 "\t--whitelist-file=FILE\t-W FILE\tLocation of the file of whitelisted "
164 172
 "addresses"
165 173
 msgstr ""
166 174
 
167
-#: clamav-milter.c:513
175
+#: clamav-milter.c:567
168 176
 msgid "\t--version\t\t-V\tPrint the version number of this software."
169 177
 msgstr ""
170 178
 
171
-#: clamav-milter.c:515
179
+#: clamav-milter.c:569
172 180
 msgid "\t--debug-level=n\t\t-x n\tSets the debug level to 'n'."
173 181
 msgstr ""
174 182
 
175
-#: clamav-milter.c:517
183
+#: clamav-milter.c:571
176 184
 msgid ""
177 185
 "\n"
178 186
 "For more information type \"man clamav-milter\"."
179 187
 msgstr ""
180 188
 
181
-#: clamav-milter.c:518
189
+#: clamav-milter.c:572
182 190
 msgid ""
183 191
 "For bug reports, please refer to http://www.clamav.net/bugs.html#pagestart"
184 192
 msgstr ""
185 193
 
186
-#: clamav-milter.c:853
194
+#: clamav-milter.c:827
195
+#, c-format
196
+msgid "%s: %s, -I may only be given once"
197
+msgstr ""
198
+
199
+#: clamav-milter.c:833
200
+#, c-format
201
+msgid "%s: Cannot convert -I%s to IPaddr"
202
+msgstr ""
203
+
204
+#: clamav-milter.c:946
187 205
 #, c-format
188 206
 msgid "%s: No socket-addr given\n"
189 207
 msgstr ""
190 208
 
191
-#: clamav-milter.c:859
209
+#: clamav-milter.c:952
192 210
 #, c-format
193 211
 msgid "%s: socket-addr (%s) doesn't agree with sendmail.cf\n"
194 212
 msgstr ""
195 213
 
196
-#: clamav-milter.c:874
214
+#: clamav-milter.c:967
197 215
 #, c-format
198 216
 msgid "%s: when using inet: connection to sendmail you must enable --local\n"
199 217
 msgstr ""
200 218
 
201
-#: clamav-milter.c:886
219
+#: clamav-milter.c:979
202 220
 #, c-format
203 221
 msgid "%s: Can't parse the config file %s\n"
204 222
 msgstr ""
205 223
 
206
-#: clamav-milter.c:893
224
+#: clamav-milter.c:986
207 225
 #, c-format
208 226
 msgid "%s: --detect-forged-local-addresses is not compatible with --outgoing\n"
209 227
 msgstr ""
210 228
 
211
-#: clamav-milter.c:897
229
+#: clamav-milter.c:990
212 230
 #, c-format
213 231
 msgid "%s: --detect-forged-local-addresses is not compatible with --local\n"
214 232
 msgstr ""
215 233
 
216
-#: clamav-milter.c:901
234
+#: clamav-milter.c:994
217 235
 #, c-format
218 236
 msgid "%s: --detect-forged-local-addresses is not compatible with --force\n"
219 237
 msgstr ""
220 238
 
221
-#: clamav-milter.c:945
239
+#: clamav-milter.c:1038
222 240
 #, c-format
223 241
 msgid ""
224 242
 "%s: The iface option to --broadcast is not supported on your operating "
225 243
 "system\n"
226 244
 msgstr ""
227 245
 
228
-#: clamav-milter.c:954
246
+#: clamav-milter.c:1047
229 247
 #, c-format
230 248
 msgid "%s: Can't get information about user %s\n"
231 249
 msgstr ""
232 250
 
233
-#: clamav-milter.c:965
251
+#: clamav-milter.c:1058
234 252
 #, c-format
235 253
 msgid "%s: AllowSupplementaryGroups: initgroups not supported.\n"
236 254
 msgstr ""
237 255
 
238
-#: clamav-milter.c:982
256
+#: clamav-milter.c:1072
257
+#, c-format
258
+msgid "%s: You cannot use black hole mode unless you are root\n"
259
+msgstr ""
260
+
261
+#: clamav-milter.c:1082
239 262
 #, c-format
240 263
 msgid "Running as user %s (UID %d, GID %d)\n"
241 264
 msgstr ""
242 265
 
243
-#: clamav-milter.c:985
266
+#: clamav-milter.c:1085
244 267
 #, c-format
245 268
 msgid "%s: running as root is not recommended (check \"User\" in %s)\n"
246 269
 msgstr ""
247 270
 
248
-#: clamav-milter.c:987
271
+#: clamav-milter.c:1088
249 272
 #, c-format
250 273
 msgid "%s: Only root can set an interface for --broadcast\n"
251 274
 msgstr ""
252 275
 
253
-#: clamav-milter.c:992
276
+#: clamav-milter.c:1093
254 277
 #, c-format
255 278
 msgid "%s: Advisory mode doesn't work with quarantine mode\n"
256 279
 msgstr ""
257 280
 
258
-#: clamav-milter.c:1000
281
+#: clamav-milter.c:1101
259 282
 #, c-format
260 283
 msgid "%s: Advisory mode doesn't work with quarantine directories\n"
261 284
 msgstr ""
262 285
 
263
-#: clamav-milter.c:1006
286
+#: clamav-milter.c:1107
264 287
 #, c-format
265 288
 msgid "%s: the quarantine directory must not contain the string 'ERROR'\n"
266 289
 msgstr ""
267 290
 
268
-#: clamav-milter.c:1012
291
+#: clamav-milter.c:1113
269 292
 #, c-format
270 293
 msgid "%s: the quarantine directory must not contain the string 'FOUND'\n"
271 294
 msgstr ""
272 295
 
273
-#: clamav-milter.c:1018
296
+#: clamav-milter.c:1119
274 297
 #, c-format
275 298
 msgid "%s: the quarantine directory must not contain the string 'OK'\n"
276 299
 msgstr ""
277 300
 
278
-#: clamav-milter.c:1035
301
+#: clamav-milter.c:1136
279 302
 #, c-format
280 303
 msgid "%s: insecure quarantine directory %s (mode 0%o)\n"
281 304
 msgstr ""
282 305
 
283
-#: clamav-milter.c:1076
306
+#: clamav-milter.c:1177
284 307
 #, c-format
285 308
 msgid "%s: ReadTimeout must not be negative in %s\n"
286 309
 msgstr ""
287 310
 
288
-#: clamav-milter.c:1085
311
+#: clamav-milter.c:1186
289 312
 #, c-format
290 313
 msgid "%s: StreamMaxLength must not be negative in %s\n"
291 314
 msgstr ""
292 315
 
293
-#: clamav-milter.c:1112
316
+#: clamav-milter.c:1218
294 317
 #, c-format
295 318
 msgid ""
296 319
 "%s: (-q && !LogSyslog): warning - all interception message methods are off\n"
297 320
 msgstr ""
298 321
 
299
-#: clamav-milter.c:1122
322
+#: clamav-milter.c:1228
300 323
 #, c-format
301 324
 msgid "%s: --max-children must be given if --external is not given\n"
302 325
 msgstr ""
303 326
 
304
-#: clamav-milter.c:1126
327
+#: clamav-milter.c:1232
305 328
 #, c-format
306 329
 msgid "%s: --freshclam_monitor must be at least one second\n"
307 330
 msgstr ""
308 331
 
309
-#: clamav-milter.c:1131
332
+#: clamav-milter.c:1237
310 333
 #, c-format
311 334
 msgid "%s: --timeout must not be given if --external is not given\n"
312 335
 msgstr ""
313 336
 
314
-#: clamav-milter.c:1145
337
+#: clamav-milter.c:1251
315 338
 #, c-format
316 339
 msgid "%s: You can select one server type only (local/TCP) in %s\n"
317 340
 msgstr ""
318 341
 
319
-#: clamav-milter.c:1155
342
+#: clamav-milter.c:1256
343
+#, c-format
344
+msgid "%s: You cannot use the --server option when using LocalSocket in %s\n"
345
+msgstr ""
346
+
347
+#: clamav-milter.c:1266
320 348
 #, c-format
321 349
 msgid "The connection from sendmail to %s (%s) must not\n"
322 350
 msgstr ""
323 351
 
324
-#: clamav-milter.c:1157
352
+#: clamav-milter.c:1268
325 353
 #, c-format
326 354
 msgid "be the same as the connection to clamd (%s) in %s\n"
327 355
 msgstr ""
328 356
 
329
-#: clamav-milter.c:1167 clamav-milter.c:1190
357
+#: clamav-milter.c:1278 clamav-milter.c:1301
330 358
 #, c-format
331 359
 msgid "Can't talk to clamd server via %s\n"
332 360
 msgstr ""
333 361
 
334
-#: clamav-milter.c:1169 clamav-milter.c:1192
362
+#: clamav-milter.c:1280 clamav-milter.c:1303
335 363
 #, c-format
336 364
 msgid "Check your entry for LocalSocket in %s\n"
337 365
 msgstr ""
338 366
 
339
-#: clamav-milter.c:1203
367
+#: clamav-milter.c:1314
340 368
 msgid "Can't create a clamd session"
341 369
 msgstr ""
342 370
 
343
-#: clamav-milter.c:1220
371
+#: clamav-milter.c:1331
344 372
 #, c-format
345 373
 msgid "%s: --quarantine-dir not supported for TCPSocket - use --quarantine\n"
346 374
 msgstr ""
347 375
 
348
-#: clamav-milter.c:1235
376
+#: clamav-milter.c:1346
349 377
 #, c-format
350 378
 msgid "%s: hostname %s is longer than %d characters\n"
351 379
 msgstr ""
352 380
 
353
-#: clamav-milter.c:1254 clamav-milter.c:1344
381
+#: clamav-milter.c:1365 clamav-milter.c:1465
354 382
 #, c-format
355 383
 msgid "%s: --max-children must be given in sessions mode\n"
356 384
 msgstr ""
357 385
 
358
-#: clamav-milter.c:1277
386
+#: clamav-milter.c:1371
387
+#, c-format
388
+msgid ""
389
+"%1$s: --max-children (%2$d) is lower than the number of servers you have (%3"
390
+"$d)\n"
391
+msgstr ""
392
+
393
+#: clamav-milter.c:1394
359 394
 #, c-format
360 395
 msgid "%s: Unknown host %s\n"
361 396
 msgstr ""
362 397
 
363
-#: clamav-milter.c:1289
398
+#: clamav-milter.c:1406
364 399
 #, c-format
365 400
 msgid "Can't talk to clamd server %s on port %d\n"
366 401
 msgstr ""
367 402
 
368
-#: clamav-milter.c:1293
403
+#: clamav-milter.c:1410
369 404
 #, c-format
370 405
 msgid "Check the value for TCPAddr in %s\n"
371 406
 msgstr ""
372 407
 
373
-#: clamav-milter.c:1295
408
+#: clamav-milter.c:1412
374 409
 #, c-format
375 410
 msgid "Check the value for TCPAddr in clamd.conf on %s\n"
376 411
 msgstr ""
377 412
 
378
-#: clamav-milter.c:1311
413
+#: clamav-milter.c:1428
379 414
 msgid "Can't find any active clamd servers\n"
380 415
 msgstr ""
381 416
 
382
-#: clamav-milter.c:1312 clamav-milter.c:1318
417
+#: clamav-milter.c:1429 clamav-milter.c:1435
383 418
 #, c-format
384 419
 msgid "Check your entry for TCPSocket in %s\n"
385 420
 msgstr ""
386 421
 
387
-#: clamav-milter.c:1317
422
+#: clamav-milter.c:1434
388 423
 msgid "Can't find any clamd servers\n"
389 424
 msgstr ""
390 425
 
391
-#: clamav-milter.c:1324
426
+#: clamav-milter.c:1438
427
+msgid "Can't find any clamd server"
428
+msgstr ""
429
+
430
+#: clamav-milter.c:1445
392 431
 #, c-format
393 432
 msgid "%s: You must select server type (local/TCP) in %s\n"
394 433
 msgstr ""
395 434
 
396
-#: clamav-milter.c:1392
435
+#: clamav-milter.c:1515
397 436
 #, c-format
398 437
 msgid "When debugging it is recommended that you use Foreground mode in %s\n"
399 438
 msgstr ""
400 439
 
401
-#: clamav-milter.c:1393
440
+#: clamav-milter.c:1516
402 441
 msgid "\tso that you can see all of the messages"
403 442
 msgstr ""
404 443
 
405
-#: clamav-milter.c:1479
444
+#: clamav-milter.c:1605
406 445
 #, c-format
407 446
 msgid "%s: ScanMail not defined in %s (needed without --external), enabling\n"
408 447
 msgstr ""
409 448
 
410
-#: clamav-milter.c:1540
449
+#: clamav-milter.c:1662
411 450
 msgid "Starting clamav-milter"
412 451
 msgstr ""
413 452
 
414
-#: clamav-milter.c:1550
453
+#: clamav-milter.c:1672
415 454
 #, c-format
416 455
 msgid "pidfile: '%s' must be a full pathname"
417 456
 msgstr ""
418 457
 
419
-#: clamav-milter.c:1552
458
+#: clamav-milter.c:1674
420 459
 #, c-format
421 460
 msgid "pidfile '%s' must be a full pathname\n"
422 461
 msgstr ""
423 462
 
424
-#: clamav-milter.c:1566
463
+#: clamav-milter.c:1688
425 464
 #, c-format
426 465
 msgid "Can't save PID in file %s"
427 466
 msgstr ""
428 467
 
429
-#: clamav-milter.c:1568
468
+#: clamav-milter.c:1690
430 469
 #, c-format
431 470
 msgid "Can't save PID in file %s\n"
432 471
 msgstr ""
433 472
 
434
-#: clamav-milter.c:1630
473
+#: clamav-milter.c:1752
435 474
 #, c-format
436 475
 msgid "Starting %s"
437 476
 msgstr ""
438 477
 
439
-#: clamav-milter.c:1633
478
+#: clamav-milter.c:1755
440 479
 msgid "Debugging is on"
441 480
 msgstr ""
442 481
 
443
-#: clamav-milter.c:1703 clamav-milter.c:1963
482
+#: clamav-milter.c:1832
444 483
 #, c-format
445 484
 msgid "Check clamd server %s - it may be down\n"
446 485
 msgstr ""
447 486
 
448
-#: clamav-milter.c:1708
487
+#: clamav-milter.c:1837
449 488
 msgid "Check clamd server - it may be down"
450 489
 msgstr ""
451 490
 
452
-#: clamav-milter.c:1884
491
+#: clamav-milter.c:2038
453 492
 msgid "No free clamd sessions\n"
454 493
 msgstr ""
455 494
 
456
-#: clamav-milter.c:1966
495
+#: clamav-milter.c:2094
457 496
 #, c-format
458
-msgid "Check clamd server %s - it may be down"
497
+msgid "!FindServer: looking for %1$d from %2$d - report to bugs@clamav.net\n"
459 498
 msgstr ""
460 499
 
461
-#: clamav-milter.c:1972
462
-msgid "Check clamd server - it may be down\n"
500
+#: clamav-milter.c:2131
501
+#, c-format
502
+msgid "^Check clamd server %s - it may be down\n"
463 503
 msgstr ""
464 504
 
465
-#: clamav-milter.c:2008
466
-msgid "findServer: select failed"
505
+#: clamav-milter.c:2136
506
+msgid "Check clamd server - it may be down\n"
467 507
 msgstr ""
468 508
 
469
-#: clamav-milter.c:2017
470
-#, c-format
471
-msgid "findServer: using server %d\n"
509
+#: clamav-milter.c:2172
510
+msgid "findServer: select failed"
472 511
 msgstr ""
473 512
 
474
-#: clamav-milter.c:2022
513
+#: clamav-milter.c:2186
475 514
 msgid "findServer: No response from any server\n"
476 515
 msgstr ""
477 516
 
478
-#: clamav-milter.c:2024
517
+#: clamav-milter.c:2188
479 518
 msgid "findServer: No response from any server"
480 519
 msgstr ""
481 520
 
482
-#: clamav-milter.c:2045
521
+#: clamav-milter.c:2211
483 522
 msgid "clamfi_connect: ctx is null"
484 523
 msgstr ""
485 524
 
486
-#: clamav-milter.c:2050
525
+#: clamav-milter.c:2216
487 526
 msgid "clamfi_connect: hostname is null"
488 527
 msgstr ""
489 528
 
490
-#: clamav-milter.c:2071
529
+#: clamav-milter.c:2237
491 530
 msgid "clamfi_connect: remoteIP is null"
492 531
 msgstr ""
493 532
 
494
-#: clamav-milter.c:2080
533
+#: clamav-milter.c:2246
495 534
 #, c-format
496 535
 msgid "clamfi_connect: connection from %s"
497 536
 msgstr ""
498 537
 
499
-#: clamav-milter.c:2081
538
+#: clamav-milter.c:2247
500 539
 #, c-format
501 540
 msgid "clamfi_connect: connection from %s\n"
502 541
 msgstr ""
503 542
 
504
-#: clamav-milter.c:2084
543
+#: clamav-milter.c:2250
505 544
 #, c-format
506 545
 msgid "clamfi_connect: connection from %s [%s]"
507 546
 msgstr ""
508 547
 
509
-#: clamav-milter.c:2085
548
+#: clamav-milter.c:2251
510 549
 #, c-format
511 550
 msgid "clamfi_connect: connection from %s [%s]\n"
512 551
 msgstr ""
513 552
 
514
-#: clamav-milter.c:2105
553
+#: clamav-milter.c:2271
515 554
 msgid "Can't get sendmail hostname"
516 555
 msgstr ""
517 556
 
518
-#: clamav-milter.c:2114
557
+#: clamav-milter.c:2280
519 558
 #, c-format
520 559
 msgid "Access Denied: Host Unknown (%s)"
521 560
 msgstr ""
522 561
 
523
-#: clamav-milter.c:2123
562
+#: clamav-milter.c:2289
524 563
 #, c-format
525 564
 msgid "Can't find entry for IP address %s in DNS - check your DNS setting\n"
526 565
 msgstr ""
527 566
 
528
-#: clamav-milter.c:2134
567
+#: clamav-milter.c:2300
529 568
 #, c-format
530 569
 msgid "Access Denied: Can't get IP address for (%s)"
531 570
 msgstr ""
532 571
 
533
-#: clamav-milter.c:2151
572
+#: clamav-milter.c:2317
534 573
 #, c-format
535 574
 msgid "Access Denied for %s[%s]"
536 575
 msgstr ""
537 576
 
538
-#: clamav-milter.c:2169
577
+#: clamav-milter.c:2335
539 578
 msgid "clamfi_connect: not scanning outgoing messages"
540 579
 msgstr ""
541 580
 
542
-#: clamav-milter.c:2170
581
+#: clamav-milter.c:2336
543 582
 msgid "clamfi_connect: not scanning outgoing messages\n"
544 583
 msgstr ""
545 584
 
546
-#: clamav-milter.c:2178
585
+#: clamav-milter.c:2344
547 586
 msgid "clamfi_connect: not scanning local messages"
548 587
 msgstr ""
549 588
 
550
-#: clamav-milter.c:2179
589
+#: clamav-milter.c:2345
551 590
 msgid "clamfi_connect: not scanning local messages\n"
552 591
 msgstr ""
553 592
 
554
-#: clamav-milter.c:2193
593
+#: clamav-milter.c:2359
555 594
 msgid "clamfi_connect: gethostname failed"
556 595
 msgstr ""
557 596
 
558
-#: clamav-milter.c:2198
597
+#: clamav-milter.c:2364
559 598
 msgid "Rejected email falsely claiming to be from here"
560 599
 msgstr ""
561 600
 
562
-#: clamav-milter.c:2199
601
+#: clamav-milter.c:2365
563 602
 msgid "You have claimed to be me, but you are not"
564 603
 msgstr ""
565 604
 
566
-#: clamav-milter.c:2200 clamav-milter.c:2504
605
+#: clamav-milter.c:2366 clamav-milter.c:2718
567 606
 msgid "Forged local address detected"
568 607
 msgstr ""
569 608
 
570
-#: clamav-milter.c:2233
609
+#: clamav-milter.c:2378
610
+msgid "Your IP is blacklisted"
611
+msgstr ""
612
+
613
+#: clamav-milter.c:2379
614
+msgid "Blacklisted IP detected"
615
+msgstr ""
616
+
617
+#: clamav-milter.c:2443
571 618
 msgid "Rejected email with empty from field"
572 619
 msgstr ""
573 620
 
574
-#: clamav-milter.c:2234
621
+#: clamav-milter.c:2444
575 622
 msgid "You have not said who the email is from"
576 623
 msgstr ""
577 624
 
578
-#: clamav-milter.c:2235
625
+#: clamav-milter.c:2445
579 626
 msgid "Reject email with empty from field"
580 627
 msgstr ""
581 628
 
582
-#: clamav-milter.c:2268
629
+#: clamav-milter.c:2482
583 630
 #, c-format
584 631
 msgid "hit max-children limit (%u >= %u)\n"
585 632
 msgstr ""
586 633
 
587
-#: clamav-milter.c:2269
634
+#: clamav-milter.c:2483
588 635
 #, c-format
589 636
 msgid "hit max-children limit (%u >= %u): waiting for some to exit\n"
590 637
 msgstr ""
591 638
 
592
-#: clamav-milter.c:2275
639
+#: clamav-milter.c:2489
593 640
 #, c-format
594 641
 msgid "hit max-children limit (%u >= %u)"
595 642
 msgstr ""
596 643
 
597
-#: clamav-milter.c:2276
644
+#: clamav-milter.c:2490
598 645
 #, c-format
599 646
 msgid "hit max-children limit (%u >= %u): waiting for some to exit"
600 647
 msgstr ""
601 648
 
602
-#: clamav-milter.c:2282
649
+#: clamav-milter.c:2495
603 650
 msgid "AV system temporarily overloaded - please try later"
604 651
 msgstr ""
605 652
 
606
-#: clamav-milter.c:2301
653
+#: clamav-milter.c:2518
607 654
 #, c-format
608 655
 msgid "n_children %u: waiting %d seconds for some to exit"
609 656
 msgstr ""
610 657
 
611
-#: clamav-milter.c:2317
658
+#: clamav-milter.c:2534
612 659
 #, c-format
613 660
 msgid "Finished waiting, n_children = %u"
614 661
 msgstr ""
615 662
 
616
-#: clamav-milter.c:2328
663
+#: clamav-milter.c:2545
617 664
 msgid "Timeout waiting for a child to die"
618 665
 msgstr ""
619 666
 
620
-#: clamav-milter.c:2330
667
+#: clamav-milter.c:2547
621 668
 msgid "Timeout waiting for a child to die\n"
622 669
 msgstr ""
623 670
 
624
-#: clamav-milter.c:2469
671
+#: clamav-milter.c:2683
625 672
 msgid "clamfi_eoh"
626 673
 msgstr ""
627 674
 
628
-#: clamav-milter.c:2472
675
+#: clamav-milter.c:2686
629 676
 msgid "clamfi_eoh\n"
630 677
 msgstr ""
631 678
 
632
-#: clamav-milter.c:2496
679
+#: clamav-milter.c:2710
633 680
 msgid "clamfi_eoh: gethostname failed"
634 681
 msgstr ""
635 682
 
636
-#: clamav-milter.c:2502
683
+#: clamav-milter.c:2716
637 684
 #, c-format
638 685
 msgid "Rejected email falsely claiming to be from %s"
639 686
 msgstr ""
640 687
 
641
-#: clamav-milter.c:2503
688
+#: clamav-milter.c:2717
642 689
 msgid "You have claimed to be from me, but you are not"
643 690
 msgstr ""
644 691
 
645
-#: clamav-milter.c:2540
692
+#: clamav-milter.c:2764
646 693
 msgid "clamfi_eoh: ignoring whitelisted message"
647 694
 msgstr ""
648 695
 
649
-#: clamav-milter.c:2542
696
+#: clamav-milter.c:2766
650 697
 msgid "clamfi_eoh: ignoring whitelisted message\n"
651 698
 msgstr ""
652 699
 
653
-#: clamav-milter.c:2556
700
+#: clamav-milter.c:2780
654 701
 #, c-format
655 702
 msgid "clamfi_envbody: %u bytes"
656 703
 msgstr ""
657 704
 
658
-#: clamav-milter.c:2558
705
+#: clamav-milter.c:2782
659 706
 #, c-format
660 707
 msgid "clamfi_envbody: %u bytes\n"
661 708
 msgstr ""
662 709
 
663
-#: clamav-milter.c:2607 clamav-milter.c:2919
710
+#: clamav-milter.c:2839 clamav-milter.c:3143
664 711
 #, c-format
665 712
 msgid "%s: Message more than StreamMaxLength (%ld) bytes - not scanned"
666 713
 msgstr ""
667 714
 
668
-#: clamav-milter.c:2611 clamav-milter.c:2922
715
+#: clamav-milter.c:2843 clamav-milter.c:3146
669 716
 msgid "Not Scanned - StreamMaxLength exceeded"
670 717
 msgstr ""
671 718
 
672
-#: clamav-milter.c:2664
719
+#: clamav-milter.c:2896
673 720
 #, c-format
674 721
 msgid "Failed to delete X-Virus-Status header %d"
675 722
 msgstr ""
676 723
 
677
-#: clamav-milter.c:2741
724
+#: clamav-milter.c:2965
678 725
 #, c-format
679 726
 msgid "failed to send SCAN %s command to clamd"
680 727
 msgstr ""
681 728
 
682
-#: clamav-milter.c:2763
729
+#: clamav-milter.c:2987
683 730
 msgid "failed to send SCAN command to clamd"
684 731
 msgstr ""
685 732
 
686
-#: clamav-milter.c:2780
733
+#: clamav-milter.c:3004
687 734
 #, c-format
688 735
 msgid "Waiting to read status from fd %d\n"
689 736
 msgstr ""
690 737
 
691
-#: clamav-milter.c:2793
738
+#: clamav-milter.c:3017
692 739
 #, c-format
693 740
 msgid "clamfi_eom: read %s"
694 741
 msgstr ""
695 742
 
696
-#: clamav-milter.c:2794
743
+#: clamav-milter.c:3018
697 744
 #, c-format
698 745
 msgid "clamfi_eom: read %s\n"
699 746
 msgstr ""
700 747
 
701
-#: clamav-milter.c:2811
748
+#: clamav-milter.c:3035
702 749
 #, c-format
703 750
 msgid "clamfi_eom: read nothing from clamd on %s"
704 751
 msgstr ""
705 752
 
706
-#: clamav-milter.c:2813
753
+#: clamav-milter.c:3037
707 754
 #, c-format
708 755
 msgid "clamfi_eom: read nothing from clamd on %s\n"
709 756
 msgstr ""
710 757
 
711
-#: clamav-milter.c:2858 clamav-milter.c:2904
758
+#: clamav-milter.c:3082 clamav-milter.c:3128
712 759
 msgid "Error determining host"
713 760
 msgstr ""
714 761
 
715
-#: clamav-milter.c:2927
762
+#: clamav-milter.c:3151
716 763
 msgid "Not Scanned"
717 764
 msgstr ""
718 765
 
719
-#: clamav-milter.c:2956
766
+#: clamav-milter.c:3180
720 767
 msgid "Infected with"
721 768
 msgstr ""
722 769
 
723
-#: clamav-milter.c:2980
770
+#: clamav-milter.c:3204
724 771
 #, c-format
725 772
 msgid "Intercepted virus from %s to"
726 773
 msgstr ""
727 774
 
728
-#: clamav-milter.c:3074
775
+#: clamav-milter.c:3298
729 776
 msgid "Subject: Virus intercepted\n"
730 777
 msgstr ""
731 778
 
732
-#: clamav-milter.c:3090
779
+#: clamav-milter.c:3314
733 780
 #, c-format
734 781
 msgid "Can't open e-mail template header file %s"
735 782
 msgstr ""
736 783
 
737
-#: clamav-milter.c:3105 clamav-milter.c:3109
784
+#: clamav-milter.c:3329 clamav-milter.c:3333
738 785
 msgid "\n"
739 786
 msgstr ""
740 787
 
741
-#: clamav-milter.c:3117
788
+#: clamav-milter.c:3341
742 789
 msgid "A message you sent to\n"
743 790
 msgstr ""
744 791
 
745
-#: clamav-milter.c:3124
792
+#: clamav-milter.c:3348
746 793
 #, c-format
747 794
 msgid "The message %1$s sent from %2$s to\n"
748 795
 msgstr ""
749 796
 
750
-#: clamav-milter.c:3127
797
+#: clamav-milter.c:3351
751 798
 #, c-format
752 799
 msgid "A message sent from %s to\n"
753 800
 msgstr ""
754 801
 
755
-#: clamav-milter.c:3132
802
+#: clamav-milter.c:3356
756 803
 #, c-format
757 804
 msgid "contained %s and has not been accepted for delivery.\n"
758 805
 msgstr ""
759 806
 
760
-#: clamav-milter.c:3135
807
+#: clamav-milter.c:3359
761 808
 #, c-format
762 809
 msgid ""
763 810
 "\n"
764 811
 "The message in question has been quarantined as %s\n"
765 812
 msgstr ""
766 813
 
767
-#: clamav-milter.c:3138
814
+#: clamav-milter.c:3362
768 815
 #, c-format
769 816
 msgid ""
770 817
 "\n"
... ...
@@ -772,13 +819,13 @@ msgid ""
772 772
 "\n"
773 773
 msgstr ""
774 774
 
775
-#: clamav-milter.c:3141
775
+#: clamav-milter.c:3365
776 776
 msgid ""
777 777
 "For your information, the original message headers were:\n"
778 778
 "\n"
779 779
 msgstr ""
780 780
 
781
-#: clamav-milter.c:3154
781
+#: clamav-milter.c:3378
782 782
 #, c-format
783 783
 msgid ""
784 784
 "\n"
... ...
@@ -786,262 +833,270 @@ msgid ""
786 786
 "%s\t\n"
787 787
 msgstr ""
788 788
 
789
-#: clamav-milter.c:3162
789
+#: clamav-milter.c:3386
790 790
 #, c-format
791 791
 msgid "%s: Failed to notify clamAV interception - see dead.letter"
792 792
 msgstr ""
793 793
 
794
-#: clamav-milter.c:3164
794
+#: clamav-milter.c:3388
795 795
 #, c-format
796 796
 msgid "Can't execute '%s' to send virus notice"
797 797
 msgstr ""
798 798
 
799
-#: clamav-milter.c:3195
799
+#: clamav-milter.c:3419
800 800
 #, c-format
801 801
 msgid "Reported phishing to %s"
802 802
 msgstr ""
803 803
 
804
-#: clamav-milter.c:3199
804
+#: clamav-milter.c:3423
805 805
 msgid "Can't set anti-phish header"
806 806
 msgstr ""
807 807
 
808
-#: clamav-milter.c:3201
808
+#: clamav-milter.c:3425
809 809
 msgid "Can't set anti-phish header\n"
810 810
 msgstr ""
811 811
 
812
-#: clamav-milter.c:3227
812
+#: clamav-milter.c:3451
813 813
 #, c-format
814 814
 msgid "Can't set quarantine user %s"
815 815
 msgstr ""
816 816
 
817
-#: clamav-milter.c:3229
817
+#: clamav-milter.c:3453
818 818
 #, c-format
819 819
 msgid "Can't set quarantine user %s\n"
820 820
 msgstr ""
821 821
 
822
-#: clamav-milter.c:3258
822
+#: clamav-milter.c:3482
823 823
 #, c-format
824 824
 msgid "virus %s detected by ClamAV - http://www.clamav.net"
825 825
 msgstr ""
826 826
 
827
-#: clamav-milter.c:3263
827
+#: clamav-milter.c:3496
828 828
 msgid "Unknown"
829 829
 msgstr ""
830 830
 
831
-#: clamav-milter.c:3265
831
+#: clamav-milter.c:3498
832 832
 #, c-format
833 833
 msgid "%s: incorrect message \"%s\" from clamd"
834 834
 msgstr ""
835 835
 
836
-#: clamav-milter.c:3271
836
+#: clamav-milter.c:3504
837 837
 msgid "Clean"
838 838
 msgstr ""
839 839
 
840
-#: clamav-milter.c:3275
840
+#: clamav-milter.c:3508
841 841
 #, c-format
842 842
 msgid "%s: clean message from %s"
843 843
 msgstr ""
844 844
 
845
-#: clamav-milter.c:3277
845
+#: clamav-milter.c:3510
846 846
 msgid "an unknown sender"
847 847
 msgstr ""
848 848
 
849
-#: clamav-milter.c:3378
849
+#: clamav-milter.c:3606
850 850
 #, c-format
851 851
 msgid "Can't remove clean file %s"
852 852
 msgstr ""
853 853
 
854
-#: clamav-milter.c:3571 clamav-milter.c:3574
854
+#: clamav-milter.c:3804 clamav-milter.c:3807
855 855
 #, c-format
856 856
 msgid "write failure (%u bytes) to %s: %s"
857 857
 msgstr ""
858 858
 
859
-#: clamav-milter.c:3588 clamav-milter.c:3591
859
+#: clamav-milter.c:3821 clamav-milter.c:3824
860 860
 #, c-format
861 861
 msgid "write failure (%u bytes) to clamd: %s"
862 862
 msgstr ""
863 863
 
864
-#: clamav-milter.c:3668
864
+#: clamav-milter.c:3902
865 865
 #, c-format
866 866
 msgid "No data received from clamd in %d seconds\n"
867 867
 msgstr ""
868 868
 
869
-#: clamav-milter.c:3697
869
+#: clamav-milter.c:3931
870 870
 #, c-format
871 871
 msgid "Can't stat %s"
872 872
 msgstr ""
873 873
 
874
-#: clamav-milter.c:3708 clamav-milter.c:4155
874
+#: clamav-milter.c:3942 clamav-milter.c:4389
875 875
 #, c-format
876 876
 msgid "Can't open %s"
877 877
 msgstr ""
878 878
 
879
-#: clamav-milter.c:3833 clamav-milter.c:4332
879
+#: clamav-milter.c:4067 clamav-milter.c:4569
880 880
 #, c-format
881 881
 msgid "mkdir %s failed"
882 882
 msgstr ""
883 883
 
884
-#: clamav-milter.c:3848
884
+#: clamav-milter.c:4082
885 885
 #, c-format
886 886
 msgid "mktemp %s failed"
887 887
 msgstr ""
888 888
 
889
-#: clamav-milter.c:3858
889
+#: clamav-milter.c:4092
890 890
 #, c-format
891 891
 msgid "Temporary quarantine file %s creation failed"
892 892
 msgstr ""
893 893
 
894
-#: clamav-milter.c:3963
894
+#: clamav-milter.c:4197
895 895
 #, c-format
896 896
 msgid "failed to send STREAM command clamd server %d"
897 897
 msgstr ""
898 898
 
899
-#: clamav-milter.c:3972
899
+#: clamav-milter.c:4206
900 900
 msgid "failed to send STREAM command clamd"
901 901
 msgstr ""
902 902
 
903
-#: clamav-milter.c:3984
903
+#: clamav-milter.c:4218
904 904
 msgid "failed to create TCPSocket to talk to clamd"
905 905
 msgstr ""
906 906
 
907
-#: clamav-milter.c:3996 clamav-milter.c:4012
907
+#: clamav-milter.c:4230 clamav-milter.c:4246
908 908
 msgid "recv failed from clamd getting PORT"
909 909
 msgstr ""
910 910
 
911
-#: clamav-milter.c:4000 clamav-milter.c:4014
911
+#: clamav-milter.c:4234 clamav-milter.c:4248
912 912
 msgid "EOF from clamd getting PORT"
913 913
 msgstr ""
914 914
 
915
-#: clamav-milter.c:4025
915
+#: clamav-milter.c:4259
916 916
 #, c-format
917 917
 msgid "Expected port information from clamd, got '%s'"
918 918
 msgstr ""
919 919
 
920
-#: clamav-milter.c:4028
920
+#: clamav-milter.c:4262
921 921
 #, c-format
922 922
 msgid "Expected port information from clamd, got '%s'\n"
923 923
 msgstr ""
924 924
 
925
-#: clamav-milter.c:4048 clamav-milter.c:4051
925
+#: clamav-milter.c:4282 clamav-milter.c:4285
926 926
 #, c-format
927 927
 msgid "Connecting to local port %d - data %d cmd %d\n"
928 928
 msgstr ""
929 929
 
930
-#: clamav-milter.c:4066 clamav-milter.c:4069
930
+#: clamav-milter.c:4300 clamav-milter.c:4303
931 931
 #, c-format
932 932
 msgid "Failed to connect to port %d given by clamd: %s"
933 933
 msgstr ""
934 934
 
935
-#: clamav-milter.c:4167
935
+#: clamav-milter.c:4401
936 936
 #, c-format
937 937
 msgid "Clamd (pid %d) seems to have died"
938 938
 msgstr ""
939 939
 
940
-#: clamav-milter.c:4193
940
+#: clamav-milter.c:4427
941 941
 #, c-format
942 942
 msgid "Can't open e-mail template file %s"
943 943
 msgstr ""
944 944
 
945
-#: clamav-milter.c:4202
945
+#: clamav-milter.c:4436
946 946
 #, c-format
947 947
 msgid "Can't stat e-mail template file %s"
948 948
 msgstr ""
949 949
 
950
-#: clamav-milter.c:4211
950
+#: clamav-milter.c:4445
951 951
 msgid "Out of memory"
952 952
 msgstr ""
953 953
 
954
-#: clamav-milter.c:4217
954
+#: clamav-milter.c:4451
955 955
 #, c-format
956 956
 msgid "Error reading e-mail template file %s"
957 957
 msgstr ""
958 958
 
959
-#: clamav-milter.c:4246
959
+#: clamav-milter.c:4480
960 960
 #, c-format
961 961
 msgid "%s: Unknown clamAV variable \"%c\"\n"
962 962
 msgstr ""
963 963
 
964
-#: clamav-milter.c:4257
964
+#: clamav-milter.c:4491
965 965
 #, c-format
966 966
 msgid "%s: Unterminated sendmail variable \"%s\"\n"
967 967
 msgstr ""
968 968
 
969
-#: clamav-milter.c:4268
969
+#: clamav-milter.c:4502
970 970
 #, c-format
971 971
 msgid "%s: Unknown sendmail variable \"%s\"\n"
972 972
 msgstr ""
973 973
 
974
-#: clamav-milter.c:4358
974
+#: clamav-milter.c:4595
975 975
 #, c-format
976 976
 msgid "Can't rename %1$s to %2$s"
977 977
 msgstr ""
978 978
 
979
-#: clamav-milter.c:4367
979
+#: clamav-milter.c:4604
980 980
 #, c-format
981 981
 msgid "Email quarantined as %s"
982 982
 msgstr ""
983 983
 
984
-#: clamav-milter.c:4472
984
+#: clamav-milter.c:4708
985 985
 #, c-format
986 986
 msgid "[Virus] %s"
987 987
 msgstr ""
988 988
 
989
-#: clamav-milter.c:4569
990
-msgid ""
991
-"No response from any clamd server - your AV system is not scanning emails\n"
992
-msgstr ""
993
-
994
-#: clamav-milter.c:4572
989
+#: clamav-milter.c:4805
995 990
 msgid ""
996
-"No response from any clamd server - your AV system is not scanning emails"
991
+"!No response from any clamd server - your AV system is not scanning emails\n"
997 992
 msgstr ""
998 993
 
999
-#: clamav-milter.c:4590
994
+#: clamav-milter.c:4823
1000 995
 msgid "Subject: ClamAV Down\n"
1001 996
 msgstr ""
1002 997
 
1003
-#: clamav-milter.c:4593
998
+#: clamav-milter.c:4826
1004 999
 msgid ""
1005 1000
 "This is an automatic message\n"
1006 1001
 "\n"
1007 1002
 msgstr ""
1008 1003
 
1009
-#: clamav-milter.c:4596
1004
+#: clamav-milter.c:4829
1010 1005
 msgid "The clamd program cannot be contacted.\n"
1011 1006
 msgstr ""
1012 1007
 
1013
-#: clamav-milter.c:4598
1008
+#: clamav-milter.c:4831
1014 1009
 msgid "No clamd server can be contacted.\n"
1015 1010
 msgstr ""
1016 1011
 
1017
-#: clamav-milter.c:4600
1012
+#: clamav-milter.c:4833
1018 1013
 msgid "Emails may not be being scanned, please check your servers.\n"
1019 1014
 msgstr ""
1020 1015
 
1021
-#: clamav-milter.c:4667 clamav-milter.c:4825
1016
+#: clamav-milter.c:5066
1022 1017
 msgid "Loading new database"
1023 1018
 msgstr ""
1024 1019
 
1025
-#: clamav-milter.c:4939
1020
+#: clamav-milter.c:5103
1026 1021
 #, c-format
1027 1022
 msgid "Stopping %s"
1028 1023
 msgstr ""
1029 1024
 
1030
-#: clamav-milter.c:4987
1025
+#: clamav-milter.c:5151
1031 1026
 msgid "Stopping clamav-milter"
1032 1027
 msgstr ""
1033 1028
 
1034
-#: clamav-milter.c:5114
1029
+#: clamav-milter.c:5278
1035 1030
 #, c-format
1036 1031
 msgid "Loaded %s"
1037 1032
 msgstr ""
1038 1033
 
1039
-#: clamav-milter.c:5118
1034
+#: clamav-milter.c:5282
1040 1035
 #, c-format
1041 1036
 msgid "ClamAV: Protecting against %u viruses"
1042 1037
 msgstr ""
1043 1038
 
1044
-#: clamav-milter.c:5272
1039
+#: clamav-milter.c:5436
1040
+#, c-format
1041
+msgid "Can't open whitelist file %s"
1042
+msgstr ""
1043
+
1044
+#: clamav-milter.c:5444
1045
+msgid "Can't create whitelist table"
1046
+msgstr ""
1047
+
1048
+#: clamav-milter.c:5503
1049
+msgid "Can't create blacklist table"
1050
+msgstr ""
1051
+
1052
+#: clamav-milter.c:5753
1045 1053
 #, c-format
1046
-msgid "Can't open white-list file %s"
1054
+msgid "Can't execute '%s' to expand '%s'"
1047 1055
 msgstr ""
... ...
@@ -80,28 +80,31 @@ tableInsert(table_t *table, const char *key, int value)
80 80
 
81 81
 	assert(value != -1);	/* that would confuse us */
82 82
 
83
-	/*
84
-	 * Re-use deleted items
85
-	 */
86
-	if(table->flags&TABLE_HAS_DELETED_ENTRIES) {
87
-		tableEntry *tableItem;
88
-
89
-		for(tableItem = table->tableHead; tableItem; tableItem = tableItem->next)
90
-			if(tableItem->key == NULL) {
91
-				/* This item has been deleted */
92
-				tableItem->key = strdup(key);
93
-				tableItem->value = value;
94
-				return value;
95
-			}
96
-
97
-		table->flags &= ~TABLE_HAS_DELETED_ENTRIES;
98
-	}
99
-
100 83
 	if(table->tableHead == NULL)
101 84
 		table->tableLast = table->tableHead = (tableEntry *)cli_malloc(sizeof(tableEntry));
102
-	else
85
+	else {
86
+		/*
87
+		 * Re-use deleted items
88
+		 */
89
+		if(table->flags&TABLE_HAS_DELETED_ENTRIES) {
90
+			tableEntry *tableItem;
91
+
92
+			assert(table->tableHead != NULL);
93
+
94
+			for(tableItem = table->tableHead; tableItem; tableItem = tableItem->next)
95
+				if(tableItem->key == NULL) {
96
+					/* This item has been deleted */
97
+					tableItem->key = strdup(key);
98
+					tableItem->value = value;
99
+					return value;
100
+				}
101
+
102
+			table->flags &= ~TABLE_HAS_DELETED_ENTRIES;
103
+		}
104
+
103 105
 		table->tableLast = table->tableLast->next =
104 106
 			(tableEntry *)cli_malloc(sizeof(tableEntry));
107
+	}
105 108
 
106 109
 	if(table->tableLast == NULL)
107 110
 		return -1;
... ...
@@ -130,9 +133,6 @@ tableFind(const table_t *table, const char *key)
130 130
 	if(key == NULL)
131 131
 		return -1;	/* not treated as a fatal error */
132 132
 
133
-	if(table->tableHead == NULL)
134
-		return -1;	/* not populated yet */
135
-
136 133
 #ifdef	CL_DEBUG
137 134
 	cost = 0;
138 135
 #endif
... ...
@@ -166,10 +166,6 @@ tableUpdate(table_t *table, const char *key, int new_value)
166 166
 	if(key == NULL)
167 167
 		return -1;	/* not treated as a fatal error */
168 168
 
169
-	if(table->tableHead == NULL)
170
-		/* not populated yet */
171
-		return tableInsert(table, key, new_value);
172
-
173 169
 	for(tableItem = table->tableHead; tableItem; tableItem = tableItem->next)
174 170
 		if(tableItem->key && (strcasecmp(tableItem->key, key) == 0)) {
175 171
 			tableItem->value = new_value;
... ...
@@ -193,10 +189,6 @@ tableRemove(table_t *table, const char *key)
193 193
 	if(key == NULL)
194 194
 		return;	/* not treated as a fatal error */
195 195
 
196
-	if(table->tableHead == NULL)
197
-		/* not populated yet */
198
-		return;
199
-
200 196
 	for(tableItem = table->tableHead; tableItem; tableItem = tableItem->next)
201 197
 		if(tableItem->key && (strcasecmp(tableItem->key, key) == 0)) {
202 198
 			free(tableItem->key);
... ...
@@ -214,11 +206,7 @@ tableIterate(table_t *table, void(*callback)(char *key, int value))
214 214
 	if(table == NULL)
215 215
 		return;
216 216
 
217
-	if(table->tableHead == NULL)
218
-		/* not populated yet */
219
-		return;
220
-
221 217
 	for(tableItem = table->tableHead; tableItem; tableItem = tableItem->next)
222
-		if(tableItem->key)	/* check leaf is not deleted */
218
+		if(tableItem->key)	/* check node has not been deleted */
223 219
 			(*callback)(tableItem->key, tableItem->value);
224 220
 }