Browse code

Enable SESSION code by default

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

Nigel Horne authored on 2004/10/24 12:54:36
Showing 4 changed files
... ...
@@ -1,3 +1,14 @@
1
+Sun Oct 24 04:52:01 BST 2004 (njh)
2
+----------------------------------
3
+  * libclamav/message.c:	Change encoding guess message from warn to debug
4
+  * clamav-milter:		Validate the length of the server hostnames
5
+				Generate a more useful message than libmilter's
6
+					bind failure message when the two
7
+					sockets are the same named pipe
8
+				SESSION code now on by default
9
+				Use cli_strtokbuf() instead of cli_strtok()
10
+					whereever possible
11
+
1 12
 Fri Oct 22 18:20:03 BST 2004 (njh)
2 13
 ----------------------------------
3 14
   * libclamav/message.c:	Handle broken messages which state
... ...
@@ -519,6 +519,12 @@ Changes
519 519
 		Improved tracing of the infected machine
520 520
 0.80j	8/10/04	SESSION: reset the session if the PORT command fails
521 521
 		Correct --broadcast code if BINDTODEVICE isn't supported
522
+0.80k	24/10/04 Validate the length of the server hostnames
523
+		Die if the name of the sockets are the same. By dying earlier
524
+			we can generate a more useful message than libmilter's
525
+			bind failure message
526
+		SESSION code now on by default
527
+		Use cli_strtokbuf() instead of cli_strtok() whereever possible
522 528
 
523 529
 INTERNATIONALISATION
524 530
 
... ...
@@ -26,6 +26,9 @@
26 26
  *
27 27
  * Change History:
28 28
  * $Log: clamav-milter.c,v $
29
+ * Revision 1.142  2004/10/24 03:49:47  nigelhorne
30
+ * Enable SESSION code by default
31
+ *
29 32
  * Revision 1.141  2004/10/09 22:10:08  nigelhorne
30 33
  * BINDTODEVICE fix was broken
31 34
  *
... ...
@@ -434,9 +437,9 @@
434 434
  * Revision 1.6  2003/09/28 16:37:23  nigelhorne
435 435
  * Added -f flag use MaxThreads if --max-children not set
436 436
  */
437
-static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.141 2004/10/09 22:10:08 nigelhorne Exp $";
437
+static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.142 2004/10/24 03:49:47 nigelhorne Exp $";
438 438
 
439
-#define	CM_VERSION	"0.80j"
439
+#define	CM_VERSION	"0.80k"
440 440
 
441 441
 /*#define	CONFDIR	"/usr/local/etc"*/
442 442
 
... ...
@@ -482,6 +485,7 @@ static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.141 2004/10/09 22:10:08 ni
482 482
 #include <pwd.h>
483 483
 #include <grp.h>
484 484
 #include <netdb.h>
485
+#include <sys/param.h>
485 486
 
486 487
 #ifdef	C_LINUX
487 488
 #include <libintl.h>
... ...
@@ -525,16 +529,7 @@ typedef	unsigned short	in_port_t;
525 525
 typedef	unsigned int	in_addr_t;
526 526
 #endif
527 527
 
528
-/*
529
- * Do not define SESSION in a production environment - it has been known to put
530
- * clamd into a loop when clamav-milter is restarted and sending STREAM often
531
- * returns EPIPE
532
- *
533
- * It is however OK for testing: code is now in place to reopen as session
534
- * that has gone bad, and it would be useful to find out the set of
535
- * circumstances that causes clamd to loop
536
- */
537
-/*#define	SESSION	/*
528
+#define	SESSION	/*
538 529
 		 * Keep one command connection open to clamd, otherwise a new
539 530
 		 * command connection is created for each new email
540 531
 		 */
... ...
@@ -1273,12 +1268,25 @@ main(int argc, char **argv)
1273 1273
 #ifdef	SESSION
1274 1274
 		struct sockaddr_un server;
1275 1275
 #endif
1276
+		char *sockname = NULL;
1276 1277
 
1277 1278
 		if(cfgopt(copt, "TCPSocket") != NULL) {
1278 1279
 			fprintf(stderr, _("%s: You can select one server type only (local/TCP) in %s\n"),
1279 1280
 				argv[0], cfgfile);
1280 1281
 			return EX_CONFIG;
1281 1282
 		}
1283
+		if(strncasecmp(port, "unix:", 5) == 0)
1284
+			sockname = &port[5];
1285
+		else if(strncasecmp(port, "local:", 6) == 0)
1286
+			sockname = &port[6];
1287
+
1288
+		if(sockname && (strcmp(sockname, cpt->strarg) == 0)) {
1289
+		   	fprintf(stderr, _("The connection from sendmail to %s (%s) must not\n"),
1290
+				argv[0], sockname);
1291
+		   	fprintf(stderr, _("be the same as the connection to clamd (%s) in %s\n"),
1292
+				cpt->strarg, cfgfile);
1293
+			return EX_CONFIG;
1294
+		}
1282 1295
 		/*
1283 1296
 		 * TODO: check --server hasn't been set
1284 1297
 		 */
... ...
@@ -1325,6 +1333,10 @@ main(int argc, char **argv)
1325 1325
 			return EX_UNAVAILABLE;
1326 1326
 		}
1327 1327
 #endif
1328
+		/*
1329
+		 * FIXME: Allow connection to remote servers by TCP/IP whilst
1330
+		 * connecting to the localserver via a UNIX domain socket
1331
+		 */
1328 1332
 		numServers = 1;
1329 1333
 	} else if((cpt = cfgopt(copt, "TCPSocket")) != NULL) {
1330 1334
 		int activeServers;
... ...
@@ -1346,6 +1358,13 @@ main(int argc, char **argv)
1346 1346
 			char *hostname = cli_strtok(serverHostNames, numServers, ":");
1347 1347
 			if(hostname == NULL)
1348 1348
 				break;
1349
+#ifdef	MAXHOSTNAMELEN
1350
+			if(strlen(hostname) > MAXHOSTNAMELEN) {
1351
+				fprintf(stderr, _("%s: hostname %s is longer than %d characters\n"),
1352
+					argv[0], hostname, MAXHOSTNAMELEN);
1353
+				return EX_CONFIG;
1354
+			}
1355
+#endif
1349 1356
 			numServers++;
1350 1357
 			free(hostname);
1351 1358
 		}
... ...
@@ -1366,7 +1385,14 @@ main(int argc, char **argv)
1366 1366
 #endif
1367 1367
 
1368 1368
 		for(i = 0; i < numServers; i++) {
1369
+#ifdef	MAXHOSTNAMELEN
1370
+			char hostname[MAXHOSTNAMELEN + 1];
1371
+
1372
+			if(cli_strtokbuf(serverHostNames, i, ":", hostname) == NULL)
1373
+				break;
1374
+#else
1369 1375
 			char *hostname = cli_strtok(serverHostNames, i, ":");
1376
+#endif
1370 1377
 
1371 1378
 			/*
1372 1379
 			 * Translate server's name to IP address
... ...
@@ -1392,7 +1418,10 @@ main(int argc, char **argv)
1392 1392
 					hostname, tcpSocket);
1393 1393
 			}
1394 1394
 #endif
1395
+
1396
+#ifndef	MAXHOSTNAMELEN
1395 1397
 			free(hostname);
1398
+#endif
1396 1399
 		}
1397 1400
 #ifdef	SESSION
1398 1401
 		activeServers = numServers;
... ...
@@ -1580,9 +1609,18 @@ createSession(int session)
1580 1580
 	}
1581 1581
 
1582 1582
 	if(ret != 0) {
1583
+#ifdef	MAXHOSTNAMELEN
1584
+		char hostname[MAXHOSTNAMELEN + 1];
1585
+
1586
+		cli_strtokbuf(serverHostNames, serverNumber, ":", hostname);
1587
+#else
1583 1588
 		char *hostname = cli_strtok(serverHostNames, serverNumber, ":");
1589
+#endif
1590
+
1584 1591
 		cli_warnmsg(_("Check clamd server %s - it may be down\n"), hostname);
1592
+#ifndef	MAXHOSTNAMELEN
1585 1593
 		free(hostname);
1594
+#endif
1586 1595
 
1587 1596
 		broadcast(_("Check clamd server - it may be down\n"));
1588 1597
 
... ...
@@ -1812,14 +1850,22 @@ findServer(void)
1812 1812
 
1813 1813
 		if((connect(sock, (struct sockaddr *)server, sizeof(struct sockaddr)) < 0) ||
1814 1814
 		   (send(sock, "PING\n", 5, 0) < 5)) {
1815
+#ifdef	MAXHOSTNAMELEN
1816
+			char hostname[MAXHOSTNAMELEN + 1];
1817
+
1818
+			cli_strtokbuf(serverHostNames, i, ":", hostname);
1819
+#else
1815 1820
 			char *hostname = cli_strtok(serverHostNames, i, ":");
1821
+#endif
1816 1822
 			cli_warnmsg(_("Check clamd server %s - it may be down\n"), hostname);
1817 1823
 			if(use_syslog)
1818 1824
 				syslog(LOG_WARNING,
1819 1825
 					_("Check clamd server %s - it may be down"),
1820 1826
 					hostname);
1821 1827
 			close(sock);
1828
+#ifndef	MAXHOSTNAMELEN
1822 1829
 			free(hostname);
1830
+#endif
1823 1831
 			broadcast(_("Check clamd server - it may be down\n"));
1824 1832
 			socks[i] = -1;
1825 1833
 			continue;
... ...
@@ -2471,13 +2517,21 @@ clamfi_eom(SMFICTX *ctx)
2471 2471
 			snprintf(buf, sizeof(buf) - 1, "%s\n\ton %s",
2472 2472
 				clamav_version, hostname);
2473 2473
 		} else {
2474
-			char *hostname = cli_strtok(serverHostNames, privdata->serverNumber, ":");
2474
+#ifdef	MAXHOSTNAMELEN
2475
+			char hostname[MAXHOSTNAMELEN + 1];
2475 2476
 
2477
+			if(cli_strtokbuf(serverHostNames, privdata->serverNumber, ":", hostname)) {
2478
+#else
2479
+			char *hostname = cli_strtok(serverHostNames, privdata->serverNumber, ":");
2476 2480
 			if(hostname) {
2481
+#endif
2482
+
2477 2483
 				snprintf(buf, sizeof(buf) - 1, "%s\n\ton %s",
2478 2484
 					clamav_version,
2479 2485
 					hostname);
2486
+#ifndef	MAXHOSTNAMELEN
2480 2487
 				free(hostname);
2488
+#endif
2481 2489
 			} else
2482 2490
 				/* sanity check failed - should issue warning */
2483 2491
 				strcpy(buf, _("Error determining host"));
... ...
@@ -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: 2004-10-07 16:36+0100\n"
11
+"POT-Creation-Date: 2004-10-24 04:42+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,206 +16,206 @@ msgstr ""
16 16
 "Content-Type: text/plain; charset=CHARSET\n"
17 17
 "Content-Transfer-Encoding: 8bit\n"
18 18
 
19
-#: clamav-milter.c:795
19
+#: clamav-milter.c:793
20 20
 msgid "\t--advisory\t\t-A\tFlag viruses rather than deleting them."
21 21
 msgstr ""
22 22
 
23
-#: clamav-milter.c:796
23
+#: clamav-milter.c:794
24 24
 msgid "\t--bounce\t\t-b\tSend a failure message to the sender."
25 25
 msgstr ""
26 26
 
27
-#: clamav-milter.c:797
27
+#: clamav-milter.c:795
28 28
 msgid ""
29 29
 "\t--broadcast\t\t-B [IFACE]\tBroadcast to a network manager when a virus is "
30 30
 "found."
31 31
 msgstr ""
32 32
 
33
-#: clamav-milter.c:798
33
+#: clamav-milter.c:796
34 34
 msgid "\t--config-file=FILE\t-c FILE\tRead configuration from FILE."
35 35
 msgstr ""
36 36
 
37
-#: clamav-milter.c:799
37
+#: clamav-milter.c:797
38 38
 msgid "\t--debug\t\t\t-D\tPrint debug messages."
39 39
 msgstr ""
40 40
 
41
-#: clamav-milter.c:800
41
+#: clamav-milter.c:798
42 42
 msgid ""
43 43
 "\t--dont-log-clean\t-C\tDon't add an entry to syslog that a mail is clean."
44 44
 msgstr ""
45 45
 
46
-#: clamav-milter.c:801
46
+#: clamav-milter.c:799
47 47
 msgid ""
48 48
 "\t--dont-scan-on-error\t-d\tPass e-mails through unscanned if a system error "
49 49
 "occurs."
50 50
 msgstr ""
51 51
 
52
-#: clamav-milter.c:802
52
+#: clamav-milter.c:800
53 53
 msgid "\t--dont-wait\t\t\tAsk remote end to resend if max-children exceeded."
54 54
 msgstr ""
55 55
 
56
-#: clamav-milter.c:803
56
+#: clamav-milter.c:801
57 57
 msgid "\t--from=EMAIL\t\t-a EMAIL\tError messages come from here."
58 58
 msgstr ""
59 59
 
60
-#: clamav-milter.c:804
60
+#: clamav-milter.c:802
61 61
 msgid "\t--force-scan\t\t-f\tForce scan all messages (overrides (-o and -l)."
62 62
 msgstr ""
63 63
 
64
-#: clamav-milter.c:805
64
+#: clamav-milter.c:803
65 65
 msgid "\t--help\t\t\t-h\tThis message."
66 66
 msgstr ""
67 67
 
68
-#: clamav-milter.c:806
68
+#: clamav-milter.c:804
69 69
 msgid "\t--headers\t\t-H\tInclude original message headers in the report."
70 70
 msgstr ""
71 71
 
72
-#: clamav-milter.c:807
72
+#: clamav-milter.c:805
73 73
 msgid "\t--local\t\t\t-l\tScan messages sent from machines on our LAN."
74 74
 msgstr ""
75 75
 
76
-#: clamav-milter.c:808
76
+#: clamav-milter.c:806
77 77
 msgid "\t--max-childen\t\t-m\tMaximum number of concurrent scans."
78 78
 msgstr ""
79 79
 
80
-#: clamav-milter.c:809
80
+#: clamav-milter.c:807
81 81
 msgid "\t--outgoing\t\t-o\tScan outgoing messages from this machine."
82 82
 msgstr ""
83 83
 
84
-#: clamav-milter.c:810
84
+#: clamav-milter.c:808
85 85
 msgid "\t--noreject\t\t-N\tDon't reject viruses, silently throw them away."
86 86
 msgstr ""
87 87
 
88
-#: clamav-milter.c:811
88
+#: clamav-milter.c:809
89 89
 msgid "\t--noxheader\t\t-n\tSuppress X-Virus-Scanned/X-Virus-Status headers."
90 90
 msgstr ""
91 91
 
92
-#: clamav-milter.c:812
92
+#: clamav-milter.c:810
93 93
 msgid "\t--pidfile=FILE\t\t-i FILE\tLocation of pidfile."
94 94
 msgstr ""
95 95
 
96
-#: clamav-milter.c:813
96
+#: clamav-milter.c:811
97 97
 msgid "\t--postmaster\t\t-p EMAIL\tPostmaster address [default=postmaster]."
98 98
 msgstr ""
99 99
 
100
-#: clamav-milter.c:814
100
+#: clamav-milter.c:812
101 101
 msgid "\t--postmaster-only\t-P\tSend warnings only to the postmaster."
102 102
 msgstr ""
103 103
 
104
-#: clamav-milter.c:815
104
+#: clamav-milter.c:813
105 105
 msgid "\t--quiet\t\t\t-q\tDon't send e-mail notifications of interceptions."
106 106
 msgstr ""
107 107
 
108
-#: clamav-milter.c:816
108
+#: clamav-milter.c:814
109 109
 msgid "\t--quarantine=USER\t-Q EMAIL\tQuanrantine e-mail account."
110 110
 msgstr ""
111 111
 
112
-#: clamav-milter.c:817
112
+#: clamav-milter.c:815
113 113
 msgid "\t--quarantine-dir=DIR\t-U DIR\tDirectory to store infected emails."
114 114
 msgstr ""
115 115
 
116
-#: clamav-milter.c:818
116
+#: clamav-milter.c:816
117 117
 msgid ""
118 118
 "\t--server=SERVER\t\t-s SERVER\tHostname/IP address of server(s) running "
119 119
 "clamd (when using TCPsocket)."
120 120
 msgstr ""
121 121
 
122
-#: clamav-milter.c:819
122
+#: clamav-milter.c:817
123 123
 msgid "\t--sign\t\t\t-S\tAdd a hard-coded signature to each scanned message."
124 124
 msgstr ""
125 125
 
126
-#: clamav-milter.c:820
126
+#: clamav-milter.c:818
127 127
 msgid "\t--signature-file=FILE\t-F FILE\tLocation of signature file."
128 128
 msgstr ""
129 129
 
130
-#: clamav-milter.c:821
130
+#: clamav-milter.c:819
131 131
 msgid "\t--template-file=FILE\t-t FILE\tLocation of e-mail template file."
132 132
 msgstr ""
133 133
 
134
-#: clamav-milter.c:822
134
+#: clamav-milter.c:820
135 135
 msgid "\t--timeout=SECS\t\t-T SECS\tTimeout waiting to childen to die."
136 136
 msgstr ""
137 137
 
138
-#: clamav-milter.c:823
138
+#: clamav-milter.c:821
139 139
 msgid "\t--version\t\t-V\tPrint the version number of this software."
140 140
 msgstr ""
141 141
 
142
-#: clamav-milter.c:825
142
+#: clamav-milter.c:823
143 143
 msgid "\t--debug-level=n\t\t-x n\tSets the debug level to 'n'."
144 144
 msgstr ""
145 145
 
146
-#: clamav-milter.c:827
146
+#: clamav-milter.c:825
147 147
 msgid ""
148 148
 "\n"
149 149
 "For more information type \"man clamav-milter\"."
150 150
 msgstr ""
151 151
 
152
-#: clamav-milter.c:828
152
+#: clamav-milter.c:826
153 153
 msgid "Report bugs to bugs@clamav.net."
154 154
 msgstr ""
155 155
 
156
-#: clamav-milter.c:1109
156
+#: clamav-milter.c:1107
157 157
 #, c-format
158 158
 msgid "%s: No socket-addr given\n"
159 159
 msgstr ""
160 160
 
161
-#: clamav-milter.c:1118
161
+#: clamav-milter.c:1116
162 162
 #, c-format
163 163
 msgid "%s: Can't parse the config file %s\n"
164 164
 msgstr ""
165 165
 
166
-#: clamav-milter.c:1158
166
+#: clamav-milter.c:1155
167 167
 #, c-format
168 168
 msgid ""
169 169
 "%s: The iface option to --broadcast is not supported on your operating "
170 170
 "system\n"
171 171
 msgstr ""
172 172
 
173
-#: clamav-milter.c:1162
173
+#: clamav-milter.c:1161
174 174
 #, c-format
175 175
 msgid "%s: Can't get information about user %s\n"
176 176
 msgstr ""
177 177
 
178
-#: clamav-milter.c:1173
178
+#: clamav-milter.c:1172
179 179
 #, c-format
180 180
 msgid "%s: AllowSupplementaryGroups: initgroups not supported.\n"
181 181
 msgstr ""
182 182
 
183
-#: clamav-milter.c:1190
183
+#: clamav-milter.c:1189
184 184
 #, c-format
185 185
 msgid "Running as user %s (UID %d, GID %d)\n"
186 186
 msgstr ""
187 187
 
188
-#: clamav-milter.c:1193
188
+#: clamav-milter.c:1192
189 189
 #, c-format
190 190
 msgid "%s: running as root is not recommended (check \"User\" in clamd.conf)\n"
191 191
 msgstr ""
192 192
 
193
-#: clamav-milter.c:1195
193
+#: clamav-milter.c:1194
194 194
 #, c-format
195 195
 msgid "%s: Only root can set an interface for --broadcast\n"
196 196
 msgstr ""
197 197
 
198
-#: clamav-milter.c:1200
198
+#: clamav-milter.c:1199
199 199
 #, c-format
200 200
 msgid "%s: Advisory mode doesn't work with quarantine mode\n"
201 201
 msgstr ""
202 202
 
203
-#: clamav-milter.c:1207
203
+#: clamav-milter.c:1206
204 204
 #, c-format
205 205
 msgid "%s: Advisory mode doesn't work with quarantine directories\n"
206 206
 msgstr ""
207 207
 
208
-#: clamav-milter.c:1223
208
+#: clamav-milter.c:1222
209 209
 #, c-format
210 210
 msgid "%s: insecure quarantine directory %s (mode 0%o)\n"
211 211
 msgstr ""
212 212
 
213
-#: clamav-milter.c:1249
213
+#: clamav-milter.c:1248
214 214
 #, c-format
215 215
 msgid "%s: ReadTimeout must not be negative in %s\n"
216 216
 msgstr ""
217 217
 
218
-#: clamav-milter.c:1256
218
+#: clamav-milter.c:1255
219 219
 #, c-format
220 220
 msgid "%s: StreamMaxLength must not be negative in %s\n"
221 221
 msgstr ""
... ...
@@ -225,353 +225,368 @@ msgstr ""
225 225
 msgid "%s: You can select one server type only (local/TCP) in %s\n"
226 226
 msgstr ""
227 227
 
228
-#: clamav-milter.c:1281 clamav-milter.c:1304
228
+#: clamav-milter.c:1281
229
+#, c-format
230
+msgid "The connection from sendmail to %s (%s) must not\n"
231
+msgstr ""
232
+
233
+#: clamav-milter.c:1283
234
+#, c-format
235
+msgid "be the same as the connection to clamd (%s) in %s\n"
236
+msgstr ""
237
+
238
+#: clamav-milter.c:1293 clamav-milter.c:1316
229 239
 #, c-format
230 240
 msgid "Can't talk to clamd server via %s\n"
231 241
 msgstr ""
232 242
 
233
-#: clamav-milter.c:1283 clamav-milter.c:1306
243
+#: clamav-milter.c:1295 clamav-milter.c:1318
234 244
 #, c-format
235 245
 msgid "Check your entry for LocalSocket in %s\n"
236 246
 msgstr ""
237 247
 
238
-#: clamav-milter.c:1317
248
+#: clamav-milter.c:1329
239 249
 msgid "Can't create a clamd session"
240 250
 msgstr ""
241 251
 
242
-#: clamav-milter.c:1329
252
+#: clamav-milter.c:1345
243 253
 #, c-format
244 254
 msgid ""
245 255
 "%s: --quarantine-dir not supported for remote scanning - use --quarantine\n"
246 256
 msgstr ""
247 257
 
248
-#: clamav-milter.c:1356
258
+#: clamav-milter.c:1360
259
+#, c-format
260
+msgid "%s: hostname %s is longer than %d characters\n"
261
+msgstr ""
262
+
263
+#: clamav-milter.c:1379
249 264
 #, c-format
250 265
 msgid "%s: Sessions does not multiplex\n"
251 266
 msgstr ""
252 267
 
253
-#: clamav-milter.c:1372
268
+#: clamav-milter.c:1402
254 269
 #, c-format
255 270
 msgid "%s: Unknown host %s\n"
256 271
 msgstr ""
257 272
 
258
-#: clamav-milter.c:1384
273
+#: clamav-milter.c:1414
259 274
 #, c-format
260 275
 msgid "Can't talk to clamd server %s on port %d\n"
261 276
 msgstr ""
262 277
 
263
-#: clamav-milter.c:1399
278
+#: clamav-milter.c:1432
264 279
 msgid "Can't find any clamd servers\n"
265 280
 msgstr ""
266 281
 
267
-#: clamav-milter.c:1400
282
+#: clamav-milter.c:1433
268 283
 #, c-format
269 284
 msgid "Check your entry for TCPSocket in %s\n"
270 285
 msgstr ""
271 286
 
272
-#: clamav-milter.c:1406
287
+#: clamav-milter.c:1439
273 288
 #, c-format
274 289
 msgid "%s: You must select server type (local/TCP) in %s\n"
275 290
 msgstr ""
276 291
 
277
-#: clamav-milter.c:1413
292
+#: clamav-milter.c:1446
278 293
 #, c-format
279 294
 msgid "When debugging it is recommended that you use Foreground mode in %s\n"
280 295
 msgstr ""
281 296
 
282
-#: clamav-milter.c:1414
297
+#: clamav-milter.c:1447
283 298
 msgid "So that you can see all of the messages"
284 299
 msgstr ""
285 300
 
286
-#: clamav-milter.c:1475
301
+#: clamav-milter.c:1508
287 302
 #, c-format
288 303
 msgid "Starting: %s"
289 304
 msgstr ""
290 305
 
291
-#: clamav-milter.c:1480
306
+#: clamav-milter.c:1513
292 307
 msgid "Debugging is on"
293 308
 msgstr ""
294 309
 
295
-#: clamav-milter.c:1484
310
+#: clamav-milter.c:1517
296 311
 #, c-format
297 312
 msgid ""
298 313
 "%s: (-q && !LogSyslog): warning - all interception message methods are off\n"
299 314
 msgstr ""
300 315
 
301
-#: clamav-milter.c:1488
316
+#: clamav-milter.c:1521
302 317
 msgid "Starting clamav-milter"
303 318
 msgstr ""
304 319
 
305
-#: clamav-milter.c:1497
320
+#: clamav-milter.c:1530
306 321
 #, c-format
307 322
 msgid "Can't save PID in file %s"
308 323
 msgstr ""
309 324
 
310
-#: clamav-milter.c:1499
325
+#: clamav-milter.c:1532
311 326
 #, c-format
312 327
 msgid "Can't save PID in file %s\n"
313 328
 msgstr ""
314 329
 
315
-#: clamav-milter.c:1527
330
+#: clamav-milter.c:1560
316 331
 #, c-format
317 332
 msgid "%s: smfi_setconn failed\n"
318 333
 msgstr ""
319 334
 
320
-#: clamav-milter.c:1540
335
+#: clamav-milter.c:1573
321 336
 #, c-format
322 337
 msgid "Started: %s"
323 338
 msgstr ""
324 339
 
325
-#: clamav-milter.c:1577 clamav-milter.c:1809
340
+#: clamav-milter.c:1617 clamav-milter.c:1857
326 341
 #, c-format
327 342
 msgid "Check clamd server %s - it may be down\n"
328 343
 msgstr ""
329 344
 
330
-#: clamav-milter.c:1580 clamav-milter.c:1816
345
+#: clamav-milter.c:1622 clamav-milter.c:1866
331 346
 msgid "Check clamd server - it may be down\n"
332 347
 msgstr ""
333 348
 
334
-#: clamav-milter.c:1741
349
+#: clamav-milter.c:1783
335 350
 msgid "No free clamd sessions\n"
336 351
 msgstr ""
337 352
 
338
-#: clamav-milter.c:1812
353
+#: clamav-milter.c:1860
339 354
 #, c-format
340 355
 msgid "Check clamd server %s - it may be down"
341 356
 msgstr ""
342 357
 
343
-#: clamav-milter.c:1852
358
+#: clamav-milter.c:1902
344 359
 msgid "findServer: select failed"
345 360
 msgstr ""
346 361
 
347
-#: clamav-milter.c:1861
362
+#: clamav-milter.c:1911
348 363
 #, c-format
349 364
 msgid "findServer: using server %d\n"
350 365
 msgstr ""
351 366
 
352
-#: clamav-milter.c:1866
367
+#: clamav-milter.c:1916
353 368
 msgid "findServer: No response from any server\n"
354 369
 msgstr ""
355 370
 
356
-#: clamav-milter.c:1868
371
+#: clamav-milter.c:1918
357 372
 msgid "findServer: No response from any server"
358 373
 msgstr ""
359 374
 
360
-#: clamav-milter.c:1889
375
+#: clamav-milter.c:1939
361 376
 msgid "clamfi_connect: ctx is null"
362 377
 msgstr ""
363 378
 
364
-#: clamav-milter.c:1894
379
+#: clamav-milter.c:1944
365 380
 msgid "clamfi_connect: hostname is null"
366 381
 msgstr ""
367 382
 
368
-#: clamav-milter.c:1915
383
+#: clamav-milter.c:1965
369 384
 msgid "clamfi_connect: remoteIP is null"
370 385
 msgstr ""
371 386
 
372
-#: clamav-milter.c:1923
387
+#: clamav-milter.c:1973
373 388
 #, c-format
374 389
 msgid "clamfi_connect: connection from %s [%s]"
375 390
 msgstr ""
376 391
 
377
-#: clamav-milter.c:1924
392
+#: clamav-milter.c:1974
378 393
 #, c-format
379 394
 msgid "clamfi_connect: connection from %s [%s]\n"
380 395
 msgstr ""
381 396
 
382
-#: clamav-milter.c:1943
397
+#: clamav-milter.c:1993
383 398
 msgid "Can't get sendmail hostname"
384 399
 msgstr ""
385 400
 
386
-#: clamav-milter.c:1948
401
+#: clamav-milter.c:1998
387 402
 #, c-format
388 403
 msgid "Access Denied: Host Unknown (%s)"
389 404
 msgstr ""
390 405
 
391
-#: clamav-milter.c:1958
406
+#: clamav-milter.c:2008
392 407
 #, c-format
393 408
 msgid "Access Denied: Can't get IP address for (%s)"
394 409
 msgstr ""
395 410
 
396
-#: clamav-milter.c:1975
411
+#: clamav-milter.c:2025
397 412
 #, c-format
398 413
 msgid "Access Denied for %s[%s]"
399 414
 msgstr ""
400 415
 
401
-#: clamav-milter.c:1993
416
+#: clamav-milter.c:2043
402 417
 msgid "clamfi_connect: not scanning outgoing messages"
403 418
 msgstr ""
404 419
 
405
-#: clamav-milter.c:1994
420
+#: clamav-milter.c:2044
406 421
 msgid "clamfi_connect: not scanning outgoing messages\n"
407 422
 msgstr ""
408 423
 
409
-#: clamav-milter.c:2002
424
+#: clamav-milter.c:2052
410 425
 msgid "clamfi_connect: not scanning local messages"
411 426
 msgstr ""
412 427
 
413
-#: clamav-milter.c:2003
428
+#: clamav-milter.c:2053
414 429
 msgid "clamfi_connect: not scanning local messages\n"
415 430
 msgstr ""
416 431
 
417
-#: clamav-milter.c:2037
432
+#: clamav-milter.c:2087
418 433
 #, c-format
419 434
 msgid "hit max-children limit (%u >= %u)\n"
420 435
 msgstr ""
421 436
 
422
-#: clamav-milter.c:2038
437
+#: clamav-milter.c:2088
423 438
 #, c-format
424 439
 msgid "hit max-children limit (%u >= %u): waiting for some to exit\n"
425 440
 msgstr ""
426 441
 
427
-#: clamav-milter.c:2044
442
+#: clamav-milter.c:2094
428 443
 #, c-format
429 444
 msgid "hit max-children limit (%u >= %u)"
430 445
 msgstr ""
431 446
 
432
-#: clamav-milter.c:2045
447
+#: clamav-milter.c:2095
433 448
 #, c-format
434 449
 msgid "hit max-children limit (%u >= %u): waiting for some to exit"
435 450
 msgstr ""
436 451
 
437
-#: clamav-milter.c:2050
452
+#: clamav-milter.c:2100
438 453
 msgid "AV system temporarily overloaded - please try later"
439 454
 msgstr ""
440 455
 
441
-#: clamav-milter.c:2080
456
+#: clamav-milter.c:2130
442 457
 #, c-format
443 458
 msgid ">n_children = %d\n"
444 459
 msgstr ""
445 460
 
446
-#: clamav-milter.c:2086
461
+#: clamav-milter.c:2136
447 462
 msgid "Timeout waiting for a child to die"
448 463
 msgstr ""
449 464
 
450
-#: clamav-milter.c:2088
465
+#: clamav-milter.c:2138
451 466
 msgid "Timeout waiting for a child to die\n"
452 467
 msgstr ""
453 468
 
454
-#: clamav-milter.c:2208
469
+#: clamav-milter.c:2258
455 470
 msgid "clamfi_eoh"
456 471
 msgstr ""
457 472
 
458
-#: clamav-milter.c:2211
473
+#: clamav-milter.c:2261
459 474
 msgid "clamfi_eoh\n"
460 475
 msgstr ""
461 476
 
462
-#: clamav-milter.c:2268
477
+#: clamav-milter.c:2318
463 478
 msgid "clamfi_eoh: ignoring whitelisted message"
464 479
 msgstr ""
465 480
 
466
-#: clamav-milter.c:2270
481
+#: clamav-milter.c:2320
467 482
 msgid "clamfi_eoh: not scanning outgoing messages\n"
468 483
 msgstr ""
469 484
 
470
-#: clamav-milter.c:2284
485
+#: clamav-milter.c:2334
471 486
 #, c-format
472 487
 msgid "clamfi_envbody: %u bytes"
473 488
 msgstr ""
474 489
 
475
-#: clamav-milter.c:2286
490
+#: clamav-milter.c:2336
476 491
 #, c-format
477 492
 msgid "clamfi_envbody: %u bytes\n"
478 493
 msgstr ""
479 494
 
480
-#: clamav-milter.c:2296 clamav-milter.c:2487
495
+#: clamav-milter.c:2346 clamav-milter.c:2545
481 496
 #, c-format
482 497
 msgid "%s: Message more than StreamMaxLength (%ld) bytes - not scanned"
483 498
 msgstr ""
484 499
 
485
-#: clamav-milter.c:2300 clamav-milter.c:2490
500
+#: clamav-milter.c:2350 clamav-milter.c:2548
486 501
 msgid "Not Scanned - StreamMaxLength exceeded"
487 502
 msgstr ""
488 503
 
489
-#: clamav-milter.c:2372 clamav-milter.c:2390 clamav-milter.c:3375
490
-#: clamav-milter.c:3382
504
+#: clamav-milter.c:2422 clamav-milter.c:2440 clamav-milter.c:3433
505
+#: clamav-milter.c:3440
491 506
 msgid "send failed to clamd"
492 507
 msgstr ""
493 508
 
494
-#: clamav-milter.c:2407
509
+#: clamav-milter.c:2457
495 510
 #, c-format
496 511
 msgid "clamfi_eom: read %s"
497 512
 msgstr ""
498 513
 
499
-#: clamav-milter.c:2408
514
+#: clamav-milter.c:2458
500 515
 #, c-format
501 516
 msgid "clamfi_eom: read %s\n"
502 517
 msgstr ""
503 518
 
504
-#: clamav-milter.c:2416
519
+#: clamav-milter.c:2466
505 520
 msgid "clamfi_eom: read nothing from clamd"
506 521
 msgstr ""
507 522
 
508
-#: clamav-milter.c:2418
523
+#: clamav-milter.c:2468
509 524
 msgid "clamfi_eom: read nothing from clamd\n"
510 525
 msgstr ""
511 526
 
512
-#: clamav-milter.c:2453 clamav-milter.c:2476
527
+#: clamav-milter.c:2503 clamav-milter.c:2534
513 528
 msgid "Error determining host"
514 529
 msgstr ""
515 530
 
516
-#: clamav-milter.c:2495
531
+#: clamav-milter.c:2553
517 532
 msgid "Not Scanned"
518 533
 msgstr ""
519 534
 
520
-#: clamav-milter.c:2506
535
+#: clamav-milter.c:2564
521 536
 msgid "Clean"
522 537
 msgstr ""
523 538
 
524
-#: clamav-milter.c:2510
539
+#: clamav-milter.c:2568
525 540
 #, c-format
526 541
 msgid "%s: clean message from %s"
527 542
 msgstr ""
528 543
 
529
-#: clamav-milter.c:2512
544
+#: clamav-milter.c:2570
530 545
 msgid "an unknown sender"
531 546
 msgstr ""
532 547
 
533
-#: clamav-milter.c:2546
548
+#: clamav-milter.c:2604
534 549
 msgid "Infected"
535 550
 msgstr ""
536 551
 
537
-#: clamav-milter.c:2564
552
+#: clamav-milter.c:2622
538 553
 #, c-format
539 554
 msgid "Intercepted virus from %s to"
540 555
 msgstr ""
541 556
 
542
-#: clamav-milter.c:2658
557
+#: clamav-milter.c:2716
543 558
 msgid ""
544 559
 "Subject: Virus intercepted\n"
545 560
 "\n"
546 561
 msgstr ""
547 562
 
548
-#: clamav-milter.c:2680
563
+#: clamav-milter.c:2738
549 564
 msgid "A message you sent to\n"
550 565
 msgstr ""
551 566
 
552
-#: clamav-milter.c:2687
567
+#: clamav-milter.c:2745
553 568
 #, c-format
554 569
 msgid "The message %1$s sent from %2$s to\n"
555 570
 msgstr ""
556 571
 
557
-#: clamav-milter.c:2690
572
+#: clamav-milter.c:2748
558 573
 #, c-format
559 574
 msgid "A message sent from %s to\n"
560 575
 msgstr ""
561 576
 
562
-#: clamav-milter.c:2695
577
+#: clamav-milter.c:2753
563 578
 #, c-format
564 579
 msgid "contained %s and has not been delivered.\n"
565 580
 msgstr ""
566 581
 
567
-#: clamav-milter.c:2699
582
+#: clamav-milter.c:2757
568 583
 #, c-format
569 584
 msgid ""
570 585
 "\n"
571 586
 "The message in question has been quarantined as %s\n"
572 587
 msgstr ""
573 588
 
574
-#: clamav-milter.c:2702
589
+#: clamav-milter.c:2760
575 590
 #, c-format
576 591
 msgid ""
577 592
 "\n"
... ...
@@ -579,13 +594,13 @@ msgid ""
579 579
 "\n"
580 580
 msgstr ""
581 581
 
582
-#: clamav-milter.c:2705
582
+#: clamav-milter.c:2763
583 583
 msgid ""
584 584
 "For your information, the original message headers were:\n"
585 585
 "\n"
586 586
 msgstr ""
587 587
 
588
-#: clamav-milter.c:2718
588
+#: clamav-milter.c:2776
589 589
 #, c-format
590 590
 msgid ""
591 591
 "\n"
... ...
@@ -593,180 +608,180 @@ msgid ""
593 593
 "%s\t\n"
594 594
 msgstr ""
595 595
 
596
-#: clamav-milter.c:2731
596
+#: clamav-milter.c:2789
597 597
 #, c-format
598 598
 msgid "Quarantined infected mail as %s"
599 599
 msgstr ""
600 600
 
601
-#: clamav-milter.c:2755
601
+#: clamav-milter.c:2813
602 602
 #, c-format
603 603
 msgid "Can't set quarantine user %s"
604 604
 msgstr ""
605 605
 
606
-#: clamav-milter.c:2757
606
+#: clamav-milter.c:2815
607 607
 #, c-format
608 608
 msgid "Can't set quarantine user %s\n"
609 609
 msgstr ""
610 610
 
611
-#: clamav-milter.c:2770
611
+#: clamav-milter.c:2828
612 612
 #, c-format
613 613
 msgid "virus %s detected by ClamAV - http://www.clamav.net"
614 614
 msgstr ""
615 615
 
616
-#: clamav-milter.c:2851
616
+#: clamav-milter.c:2909
617 617
 #, c-format
618 618
 msgid "Can't remove clean file %s"
619 619
 msgstr ""
620 620
 
621
-#: clamav-milter.c:3017 clamav-milter.c:3020
621
+#: clamav-milter.c:3075 clamav-milter.c:3078
622 622
 #, c-format
623 623
 msgid "write failure (%u bytes) to %s: %s"
624 624
 msgstr ""
625 625
 
626
-#: clamav-milter.c:3034 clamav-milter.c:3037
626
+#: clamav-milter.c:3092 clamav-milter.c:3095
627 627
 #, c-format
628 628
 msgid "write failure (%u bytes) to clamd: %s"
629 629
 msgstr ""
630 630
 
631
-#: clamav-milter.c:3103
631
+#: clamav-milter.c:3161
632 632
 #, c-format
633 633
 msgid "No data received from clamd in %d seconds\n"
634 634
 msgstr ""
635 635
 
636
-#: clamav-milter.c:3125
636
+#: clamav-milter.c:3183
637 637
 #, c-format
638 638
 msgid "Can't stat %s"
639 639
 msgstr ""
640 640
 
641
-#: clamav-milter.c:3136 clamav-milter.c:3517
641
+#: clamav-milter.c:3194 clamav-milter.c:3580
642 642
 #, c-format
643 643
 msgid "Can't open %s"
644 644
 msgstr ""
645 645
 
646
-#: clamav-milter.c:3274
646
+#: clamav-milter.c:3332
647 647
 #, c-format
648 648
 msgid "mkdir %s failed"
649 649
 msgstr ""
650 650
 
651
-#: clamav-milter.c:3287
651
+#: clamav-milter.c:3345
652 652
 #, c-format
653 653
 msgid "mktemp %s failed"
654 654
 msgstr ""
655 655
 
656
-#: clamav-milter.c:3297
656
+#: clamav-milter.c:3355
657 657
 #, c-format
658 658
 msgid "Temporary quarantine file %s creation failed"
659 659
 msgstr ""
660 660
 
661
-#: clamav-milter.c:3394
661
+#: clamav-milter.c:3452
662 662
 msgid "failed to create TCPSocket to talk to clamd"
663 663
 msgstr ""
664 664
 
665
-#: clamav-milter.c:3408
665
+#: clamav-milter.c:3466
666 666
 msgid "recv failed from clamd getting PORT"
667 667
 msgstr ""
668 668
 
669
-#: clamav-milter.c:3418
669
+#: clamav-milter.c:3476
670 670
 #, c-format
671 671
 msgid "Expected port information from clamd, got '%s'"
672 672
 msgstr ""
673 673
 
674
-#: clamav-milter.c:3421
674
+#: clamav-milter.c:3479
675 675
 #, c-format
676 676
 msgid "Expected port information from clamd, got '%s'\n"
677 677
 msgstr ""
678 678
 
679
-#: clamav-milter.c:3436
679
+#: clamav-milter.c:3499
680 680
 #, c-format
681 681
 msgid "Connecting to local port %d\n"
682 682
 msgstr ""
683 683
 
684
-#: clamav-milter.c:3447 clamav-milter.c:3450
684
+#: clamav-milter.c:3510 clamav-milter.c:3513
685 685
 #, c-format
686 686
 msgid "Failed to connect to port %d given by clamd: %s"
687 687
 msgstr ""
688 688
 
689
-#: clamav-milter.c:3529
689
+#: clamav-milter.c:3592
690 690
 #, c-format
691 691
 msgid "Clamd (pid %d) seems to have died"
692 692
 msgstr ""
693 693
 
694
-#: clamav-milter.c:3555
694
+#: clamav-milter.c:3618
695 695
 #, c-format
696 696
 msgid "Can't open e-mail template file %s"
697 697
 msgstr ""
698 698
 
699
-#: clamav-milter.c:3564
699
+#: clamav-milter.c:3627
700 700
 #, c-format
701 701
 msgid "Can't stat e-mail template file %s"
702 702
 msgstr ""
703 703
 
704
-#: clamav-milter.c:3573
704
+#: clamav-milter.c:3636
705 705
 msgid "Out of memory"
706 706
 msgstr ""
707 707
 
708
-#: clamav-milter.c:3600
708
+#: clamav-milter.c:3663
709 709
 #, c-format
710 710
 msgid "%s: Unknown clamAV variable \"%c\"\n"
711 711
 msgstr ""
712 712
 
713
-#: clamav-milter.c:3611
713
+#: clamav-milter.c:3674
714 714
 #, c-format
715 715
 msgid "%s: Unterminated sendmail variable \"%s\"\n"
716 716
 msgstr ""
717 717
 
718
-#: clamav-milter.c:3622
718
+#: clamav-milter.c:3685
719 719
 #, c-format
720 720
 msgid "%s: Unknown sendmail variable \"%s\"\n"
721 721
 msgstr ""
722 722
 
723
-#: clamav-milter.c:3688
723
+#: clamav-milter.c:3751
724 724
 #, c-format
725 725
 msgid "Can't rename %1$s to %2$s"
726 726
 msgstr ""
727 727
 
728
-#: clamav-milter.c:3711
728
+#: clamav-milter.c:3774
729 729
 #, c-format
730 730
 msgid "[Virus] %s"
731 731
 msgstr ""
732 732
 
733
-#: clamav-milter.c:3801
733
+#: clamav-milter.c:3864
734 734
 msgid ""
735 735
 "No response from any clamd server - your AV system is not scanning emails\n"
736 736
 msgstr ""
737 737
 
738
-#: clamav-milter.c:3804
738
+#: clamav-milter.c:3867
739 739
 msgid ""
740 740
 "No response from any clamd server - your AV system is not scanning emails"
741 741
 msgstr ""
742 742
 
743
-#: clamav-milter.c:3822
743
+#: clamav-milter.c:3885
744 744
 msgid "Subject: ClamAV Down\n"
745 745
 msgstr ""
746 746
 
747
-#: clamav-milter.c:3825
747
+#: clamav-milter.c:3888
748 748
 msgid ""
749 749
 "This is an automatic message\n"
750 750
 "\n"
751 751
 msgstr ""
752 752
 
753
-#: clamav-milter.c:3828
753
+#: clamav-milter.c:3891
754 754
 msgid "The clamd program cannot be contacted.\n"
755 755
 msgstr ""
756 756
 
757
-#: clamav-milter.c:3830
757
+#: clamav-milter.c:3893
758 758
 msgid "No clamd server can be contacted.\n"
759 759
 msgstr ""
760 760
 
761
-#: clamav-milter.c:3832
761
+#: clamav-milter.c:3895
762 762
 msgid "Emails may not be being scanned, please check your servers.\n"
763 763
 msgstr ""
764 764
 
765
-#: clamav-milter.c:4043 clamav-milter.c:4072
765
+#: clamav-milter.c:4106 clamav-milter.c:4135
766 766
 #, c-format
767 767
 msgid "Stopping %s"
768 768
 msgstr ""
769 769
 
770
-#: clamav-milter.c:4074
770
+#: clamav-milter.c:4137
771 771
 msgid "Stopping clamav-milter"
772 772
 msgstr ""