Browse code

Always send 451 when reloading

git-svn: trunk@1516

Nigel Horne authored on 2005/05/05 04:17:01
Showing 4 changed files
... ...
@@ -1,3 +1,10 @@
1
+Wed May  4 20:15:33 BST 2005 (njh)
2
+----------------------------------
3
+  * libclamav/mbox.c:	Remove old unused RFC1341 parts
4
+  * clamav-milter:	Better handling of log file errors
5
+  			Always send 451 when loading a new database when
6
+				--external is not set
7
+
1 8
 Wed May  4 13:58:59 BST 2005 (njh)
2 9
 ----------------------------------
3 10
   * libclamav/tnef.c:	If a parse fails and debugging is on, the file being
... ...
@@ -16,7 +16,8 @@ Fails to compile on Linux/x86 with icc6.0 (complains about stdio.h...)
16 16
 Fails to build on Linux/x86 with icc7.1 with -ipo (fails on libclamav.a - keeps saying run ranlib). Otherwise it builds and runs OK.
17 17
 	icc -O2 -tpp7 -xiMKW -parallel -i_dynamic -w2 -march=pentium4 -mcpu=pentium4 clamav-milter.c...
18 18
 
19
-Tested with Electric Fence 2.2.2
19
+Tested with Electric Fence 2.2.2, and the bounds checking C compiler from
20
+	http://web.inter.nl.net/hcc/Haj.Ten.Brugge/
20 21
 
21 22
 Compiles OK on Linux/ppc (YDL2.3) with gcc2.95.4. Needs -lsmutil to link.
22 23
 	cc -O3 -pedantic -Wuninitialized -Wall -pipe -fomit-frame-pointer -ffast-math -finline-functions -funroll-loop -pthread -lmilter ../libclamav/.libs/libclamav.a ../clamd/cfgfile.o ../clamd/others.o -lsmutil
... ...
@@ -761,6 +762,9 @@ Changes
761 761
 0.84e	18/4/05:	Fixed a multi-threading problem relating to updating
762 762
 				the database when in internal mode
763 763
 			Use HAVE_CTIME_R_[23]
764
+0.84f	4/5/05:		Better handling of open failures for LogFile
765
+			Always send 451 when reloading a database, even if
766
+				dont-wait isn't set
764 767
 
765 768
 4. INTERNATIONALISATION
766 769
 
... ...
@@ -775,6 +779,10 @@ author an e-mail.
775 775
 Please send bug reports and/or comments to Nigel Horne <njh@despammed.com> or
776 776
 bugs@clamav.net.
777 777
 
778
+Various tips will go here, for example
779
+	define(`confMILTER_LOG_LEVEL',`22')
780
+Running in the foreground, valgrind, LogSyslog, LogVerbose, LogFile etc.
781
+
778 782
 6. TODO
779 783
 
780 784
 There are several ideas marked as TODO in the source code. If anyone has
... ...
@@ -22,9 +22,9 @@
22 22
  *
23 23
  * For installation instructions see the file INSTALL that came with this file
24 24
  */
25
-static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.192 2005/04/18 10:53:34 nigelhorne Exp $";
25
+static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.193 2005/05/04 19:15:08 nigelhorne Exp $";
26 26
 
27
-#define	CM_VERSION	"0.84e"
27
+#define	CM_VERSION	"0.84f"
28 28
 
29 29
 #if HAVE_CONFIG_H
30 30
 #include "clamav-config.h"
... ...
@@ -1029,8 +1029,13 @@ main(int argc, char **argv)
1029 1029
 	if(cfgopt(copt, "LogSyslog")) {
1030 1030
 		int fac = LOG_LOCAL6;
1031 1031
 
1032
-		if(cfgopt(copt, "LogVerbose"))
1032
+		if(cfgopt(copt, "LogVerbose")) {
1033 1033
 			logVerbose = 1;
1034
+#if	0
1035
+			/* Only supported by Sendmail >= V8.13 */
1036
+			smfi_setdbg(6);
1037
+#endif
1038
+		}
1034 1039
 		use_syslog = 1;
1035 1040
 
1036 1041
 		if((cpt = cfgopt(copt, "LogFacility")) != NULL)
... ...
@@ -1329,7 +1334,6 @@ main(int argc, char **argv)
1329 1329
 
1330 1330
 #ifndef	CL_DEBUG
1331 1331
 		close(1);
1332
-		close(2);
1333 1332
 
1334 1333
 		if((cpt = cfgopt(copt, "LogFile"))) {
1335 1334
 			logFile = cpt->strarg;
... ...
@@ -1342,12 +1346,20 @@ main(int argc, char **argv)
1342 1342
 				fprintf(stderr, "%s: LogFile requires full path\n", argv[0]);
1343 1343
 				return EX_CONFIG;
1344 1344
 			}
1345
-		} else
1345
+			if(open(logFile, O_WRONLY|O_APPEND) < 0) {
1346
+				perror(logFile);
1347
+				return EX_CANTCREAT;
1348
+			}
1349
+		} else {
1346 1350
 			logFile = "/dev/console";
1351
+			if(open(logFile, O_WRONLY) < 0) {
1352
+				perror(logFile);
1353
+				return EX_OSFILE;
1354
+			}
1355
+		}
1347 1356
 
1348
-		if((open(logFile, O_WRONLY|O_APPEND) == 1) ||
1349
-		   (open("/dev/null", O_WRONLY) == 1))
1350
-			dup(1);
1357
+		close(2);
1358
+		dup(1);
1351 1359
 		if(cfgopt(copt, "LogTime"))
1352 1360
 			logTime++;
1353 1361
 #endif	/*!CL_DEBUG*/
... ...
@@ -1428,7 +1440,7 @@ main(int argc, char **argv)
1428 1428
 
1429 1429
 #ifdef	SESSION
1430 1430
 	/* FIXME: add localSocket support to watchdog */
1431
-	if(localSocket == NULL)
1431
+	if((localSocket == NULL) || external)
1432 1432
 #endif
1433 1433
 		pthread_create(&tid, NULL, watchdog, NULL);
1434 1434
 
... ...
@@ -1439,26 +1451,49 @@ main(int argc, char **argv)
1439 1439
 
1440 1440
 	if(pidfile) {
1441 1441
 		/* save the PID */
1442
+		char *p, *q;
1442 1443
 		FILE *fd;
1443 1444
 		const mode_t old_umask = umask(0006);
1444 1445
 
1446
+		if(pidfile[0] != '/') {
1447
+			if(use_syslog)
1448
+				syslog(LOG_ERR, _("pidfile: '%s' must be a full pathname"),
1449
+					pidfile);
1450
+			cli_errmsg(_("pidfile '%s' must be a full pathname\n"), pidfile);
1451
+
1452
+			return EX_CONFIG;
1453
+		}
1454
+		p = strdup(pidfile);
1455
+		q = strrchr(p, '/');
1456
+		*q = '\0';
1457
+
1458
+		if(chdir(p) < 0)	/* safety */
1459
+			perror(p);
1460
+		free(p);
1461
+
1445 1462
 		if((fd = fopen(pidfile, "w")) == NULL) {
1446 1463
 			if(use_syslog)
1447 1464
 				syslog(LOG_ERR, _("Can't save PID in file %s"),
1448 1465
 					pidfile);
1449 1466
 			cli_errmsg(_("Can't save PID in file %s\n"), pidfile);
1450 1467
 			return EX_CONFIG;
1451
-		} else {
1468
+		}
1452 1469
 #ifdef	C_LINUX
1453
-			/* Ensure that all threads are kill()ed */
1454
-			fprintf(fd, "-%d\n", (int)getpgrp());
1470
+		/* Ensure that all threads are kill()ed */
1471
+		fprintf(fd, "-%d\n", (int)getpgrp());
1455 1472
 #else
1456
-			fprintf(fd, "%d\n", (int)getpid());
1473
+		fprintf(fd, "%d\n", (int)getpid());
1457 1474
 #endif
1458
-			fclose(fd);
1459
-		}
1475
+		fclose(fd);
1460 1476
 		umask(old_umask);
1461
-	}
1477
+	} else if(tmpdir)
1478
+		chdir(tmpdir);	/* safety */
1479
+	else
1480
+#ifdef	P_tmpdir
1481
+		chdir(P_tmpdir);
1482
+#else
1483
+		chdir("/tmp");
1484
+#endif
1462 1485
 
1463 1486
 	if(cfgopt(copt, "FixStaleSocket")) {
1464 1487
 		/*
... ...
@@ -1490,14 +1525,14 @@ main(int argc, char **argv)
1490 1490
 	}
1491 1491
 
1492 1492
 #if	0
1493
-	/* Only supported by later libmilter */
1493
+	/* Only supported by Sendmail >= V8.13 */
1494 1494
 	if(smfi_opensocket(1) == MI_FAILURE) {
1495 1495
 		cli_errmsg("can't open/create %s\n", port);
1496 1496
 		return EX_CONFIG;
1497 1497
 	}
1498 1498
 #endif
1499 1499
 
1500
-	signal(SIGPIPE, SIG_IGN);
1500
+	signal(SIGPIPE, SIG_IGN);	/* libmilter probably does this as well */
1501 1501
 
1502 1502
 #ifdef	SESSION
1503 1503
 	pthread_mutex_lock(&version_mutex);
... ...
@@ -1918,6 +1953,13 @@ clamfi_connect(SMFICTX *ctx, char *hostname, _SOCK_ADDR *hostaddr)
1918 1918
 	pthread_mutex_unlock(&accept_mutex);
1919 1919
 	if(!accepting) {
1920 1920
 		cli_warnmsg("Not accepting inputs at the moment\n");
1921
+		/*
1922
+		 * We must refuse here even if dont_wait isn't set, since
1923
+		 * it could take some time, and sendmail could time us out
1924
+		 * and refuse to have anything more to do with us until
1925
+		 * the program is restarted
1926
+		 */
1927
+#if	0
1921 1928
 		if(dont_wait)
1922 1929
 			return SMFIS_TEMPFAIL;
1923 1930
 		pthread_mutex_lock(&accept_mutex);
... ...
@@ -1925,6 +1967,8 @@ clamfi_connect(SMFICTX *ctx, char *hostname, _SOCK_ADDR *hostaddr)
1925 1925
 			pthread_cond_wait(&accept_cond, &accept_mutex);
1926 1926
 		pthread_mutex_unlock(&accept_mutex);
1927 1927
 		cli_warnmsg("Accepting inputs again\n");
1928
+#endif
1929
+		return SMFIS_TEMPFAIL;
1928 1930
 	}
1929 1931
 
1930 1932
 	if(ctx == NULL) {
... ...
@@ -2425,6 +2469,9 @@ clamfi_body(SMFICTX *ctx, u_char *bodyp, size_t len)
2425 2425
 	cli_dbgmsg(_("clamfi_envbody: %u bytes\n"), len);
2426 2426
 #endif
2427 2427
 
2428
+	if(len == 0)	/* unlikely */
2429
+		return SMFIS_CONTINUE;
2430
+
2428 2431
 	nbytes = clamfi_send(privdata, len, (char *)bodyp);
2429 2432
 	if(streamMaxLength > 0L) {
2430 2433
 		if(privdata->numBytes > streamMaxLength) {
... ...
@@ -2618,8 +2665,8 @@ clamfi_eom(SMFICTX *ctx)
2618 2618
 #endif
2619 2619
 			/*
2620 2620
 			 * TODO: if more than one host has been specified, try
2621
-			 * another one - setting cl_error to SMFIS_TEMPFAIL helps
2622
-			 * by forcing a retry
2621
+			 * another one - setting cl_error to SMFIS_TEMPFAIL
2622
+			 * helps by forcing a retry
2623 2623
 			 */
2624 2624
 			clamfi_cleanup(ctx);
2625 2625
 			syslog(LOG_NOTICE, _("clamfi_eom: read nothing from clamd on %s"), hostname);
... ...
@@ -2962,10 +3009,7 @@ clamfi_eom(SMFICTX *ctx)
2962 2962
 					syslog(LOG_ERR, _("Can't set quarantine user %s"), quarantine);
2963 2963
 				else
2964 2964
 					cli_warnmsg(_("Can't set quarantine user %s\n"), quarantine);
2965
-				if(privdata->discard)
2966
-					rc = SMFIS_DISCARD;
2967
-				else
2968
-					rc = SMFIS_REJECT;
2965
+				rc = (privdata->discard) ? SMFIS_DISCARD : SMFIS_REJECT;
2969 2966
 			} else {
2970 2967
 				if(use_syslog)
2971 2968
 					syslog(LOG_DEBUG, "Redirected virus to %s", quarantine);
... ...
@@ -5038,7 +5082,7 @@ logger(const char *mess)
5038 5038
 #else
5039 5039
 		ctime_r(&currtime, buf);
5040 5040
 #endif
5041
-		fprintf(fout, "%.*s -> %s\n", strlen(buf) - 1, buf, mess);
5041
+		fprintf(fout, "%.*s -> %s\n", (int)strlen(buf) - 1, buf, mess);
5042 5042
 #else	/*!HAVE_CTIME_R*/
5043 5043
 		/* TODO */
5044 5044
 		fprintf(fout, "%s\n", mess);
... ...
@@ -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: 2005-04-18 11:53+0100\n"
11
+"POT-Creation-Date: 2005-05-04 20:14+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"
... ...
@@ -279,444 +279,454 @@ msgstr ""
279 279
 msgid "%s: StreamMaxLength must not be negative in %s\n"
280 280
 msgstr ""
281 281
 
282
-#: clamav-milter.c:1045
282
+#: clamav-milter.c:1050
283 283
 #, c-format
284 284
 msgid ""
285 285
 "%s: (-q && !LogSyslog): warning - all interception message methods are off\n"
286 286
 msgstr ""
287 287
 
288
-#: clamav-milter.c:1055
288
+#: clamav-milter.c:1060
289 289
 #, c-format
290 290
 msgid "%s: --max-children must be given if --external is not given\n"
291 291
 msgstr ""
292 292
 
293
-#: clamav-milter.c:1059
293
+#: clamav-milter.c:1064
294 294
 #, c-format
295 295
 msgid "%s: --timeout must not be given if --external is not given\n"
296 296
 msgstr ""
297 297
 
298
-#: clamav-milter.c:1072
298
+#: clamav-milter.c:1077
299 299
 #, c-format
300 300
 msgid "%s: You can select one server type only (local/TCP) in %s\n"
301 301
 msgstr ""
302 302
 
303
-#: clamav-milter.c:1082
303
+#: clamav-milter.c:1087
304 304
 #, c-format
305 305
 msgid "The connection from sendmail to %s (%s) must not\n"
306 306
 msgstr ""
307 307
 
308
-#: clamav-milter.c:1084
308
+#: clamav-milter.c:1089
309 309
 #, c-format
310 310
 msgid "be the same as the connection to clamd (%s) in %s\n"
311 311
 msgstr ""
312 312
 
313
-#: clamav-milter.c:1094 clamav-milter.c:1117
313
+#: clamav-milter.c:1099 clamav-milter.c:1122
314 314
 #, c-format
315 315
 msgid "Can't talk to clamd server via %s\n"
316 316
 msgstr ""
317 317
 
318
-#: clamav-milter.c:1096 clamav-milter.c:1119
318
+#: clamav-milter.c:1101 clamav-milter.c:1124
319 319
 #, c-format
320 320
 msgid "Check your entry for LocalSocket in %s\n"
321 321
 msgstr ""
322 322
 
323
-#: clamav-milter.c:1130
323
+#: clamav-milter.c:1135
324 324
 msgid "Can't create a clamd session"
325 325
 msgstr ""
326 326
 
327
-#: clamav-milter.c:1147
327
+#: clamav-milter.c:1152
328 328
 #, c-format
329 329
 msgid "%s: --quarantine-dir not supported for TCPSocket - use --quarantine\n"
330 330
 msgstr ""
331 331
 
332
-#: clamav-milter.c:1162
332
+#: clamav-milter.c:1167
333 333
 #, c-format
334 334
 msgid "%s: hostname %s is longer than %d characters\n"
335 335
 msgstr ""
336 336
 
337
-#: clamav-milter.c:1181 clamav-milter.c:1266
337
+#: clamav-milter.c:1186 clamav-milter.c:1271
338 338
 #, c-format
339 339
 msgid "%s: --max-children must be given in sessions mode\n"
340 340
 msgstr ""
341 341
 
342
-#: clamav-milter.c:1204
342
+#: clamav-milter.c:1209
343 343
 #, c-format
344 344
 msgid "%s: Unknown host %s\n"
345 345
 msgstr ""
346 346
 
347
-#: clamav-milter.c:1216
347
+#: clamav-milter.c:1221
348 348
 #, c-format
349 349
 msgid "Can't talk to clamd server %s on port %d\n"
350 350
 msgstr ""
351 351
 
352
-#: clamav-milter.c:1233
352
+#: clamav-milter.c:1238
353 353
 msgid "Can't find any active clamd servers\n"
354 354
 msgstr ""
355 355
 
356
-#: clamav-milter.c:1234 clamav-milter.c:1240
356
+#: clamav-milter.c:1239 clamav-milter.c:1245
357 357
 #, c-format
358 358
 msgid "Check your entry for TCPSocket in %s\n"
359 359
 msgstr ""
360 360
 
361
-#: clamav-milter.c:1239
361
+#: clamav-milter.c:1244
362 362
 msgid "Can't find any clamd servers\n"
363 363
 msgstr ""
364 364
 
365
-#: clamav-milter.c:1246
365
+#: clamav-milter.c:1251
366 366
 #, c-format
367 367
 msgid "%s: You must select server type (local/TCP) in %s\n"
368 368
 msgstr ""
369 369
 
370
-#: clamav-milter.c:1314
370
+#: clamav-milter.c:1319
371 371
 #, c-format
372 372
 msgid "When debugging it is recommended that you use Foreground mode in %s\n"
373 373
 msgstr ""
374 374
 
375
-#: clamav-milter.c:1315
375
+#: clamav-milter.c:1320
376 376
 msgid "\tso that you can see all of the messages"
377 377
 msgstr ""
378 378
 
379
-#: clamav-milter.c:1376
379
+#: clamav-milter.c:1388
380 380
 #, c-format
381 381
 msgid "%s: ScanMail not defined in %s (needed without --external), enabling\n"
382 382
 msgstr ""
383 383
 
384
-#: clamav-milter.c:1438
384
+#: clamav-milter.c:1450
385 385
 msgid "Starting clamav-milter"
386 386
 msgstr ""
387 387
 
388
-#: clamav-milter.c:1447
388
+#: clamav-milter.c:1460
389
+#, c-format
390
+msgid "pidfile: '%s' must be a full pathname"
391
+msgstr ""
392
+
393
+#: clamav-milter.c:1462
394
+#, c-format
395
+msgid "pidfile '%s' must be a full pathname\n"
396
+msgstr ""
397
+
398
+#: clamav-milter.c:1476
389 399
 #, c-format
390 400
 msgid "Can't save PID in file %s"
391 401
 msgstr ""
392 402
 
393
-#: clamav-milter.c:1449
403
+#: clamav-milter.c:1478
394 404
 #, c-format
395 405
 msgid "Can't save PID in file %s\n"
396 406
 msgstr ""
397 407
 
398
-#: clamav-milter.c:1506
408
+#: clamav-milter.c:1541
399 409
 #, c-format
400 410
 msgid "Starting %s"
401 411
 msgstr ""
402 412
 
403
-#: clamav-milter.c:1509
413
+#: clamav-milter.c:1544
404 414
 msgid "Debugging is on"
405 415
 msgstr ""
406 416
 
407
-#: clamav-milter.c:1576 clamav-milter.c:1835
417
+#: clamav-milter.c:1611 clamav-milter.c:1870
408 418
 #, c-format
409 419
 msgid "Check clamd server %s - it may be down\n"
410 420
 msgstr ""
411 421
 
412
-#: clamav-milter.c:1581
422
+#: clamav-milter.c:1616
413 423
 msgid "Check clamd server - it may be down"
414 424
 msgstr ""
415 425
 
416
-#: clamav-milter.c:1756
426
+#: clamav-milter.c:1791
417 427
 msgid "No free clamd sessions\n"
418 428
 msgstr ""
419 429
 
420
-#: clamav-milter.c:1838
430
+#: clamav-milter.c:1873
421 431
 #, c-format
422 432
 msgid "Check clamd server %s - it may be down"
423 433
 msgstr ""
424 434
 
425
-#: clamav-milter.c:1844
435
+#: clamav-milter.c:1879
426 436
 msgid "Check clamd server - it may be down\n"
427 437
 msgstr ""
428 438
 
429
-#: clamav-milter.c:1880
439
+#: clamav-milter.c:1915
430 440
 msgid "findServer: select failed"
431 441
 msgstr ""
432 442
 
433
-#: clamav-milter.c:1889
443
+#: clamav-milter.c:1924
434 444
 #, c-format
435 445
 msgid "findServer: using server %d\n"
436 446
 msgstr ""
437 447
 
438
-#: clamav-milter.c:1894
448
+#: clamav-milter.c:1929
439 449
 msgid "findServer: No response from any server\n"
440 450
 msgstr ""
441 451
 
442
-#: clamav-milter.c:1896
452
+#: clamav-milter.c:1931
443 453
 msgid "findServer: No response from any server"
444 454
 msgstr ""
445 455
 
446
-#: clamav-milter.c:1932
456
+#: clamav-milter.c:1976
447 457
 msgid "clamfi_connect: ctx is null"
448 458
 msgstr ""
449 459
 
450
-#: clamav-milter.c:1937
460
+#: clamav-milter.c:1981
451 461
 msgid "clamfi_connect: hostname is null"
452 462
 msgstr ""
453 463
 
454
-#: clamav-milter.c:1958
464
+#: clamav-milter.c:2002
455 465
 msgid "clamfi_connect: remoteIP is null"
456 466
 msgstr ""
457 467
 
458
-#: clamav-milter.c:1967
468
+#: clamav-milter.c:2011
459 469
 #, c-format
460 470
 msgid "clamfi_connect: connection from %s"
461 471
 msgstr ""
462 472
 
463
-#: clamav-milter.c:1968
473
+#: clamav-milter.c:2012
464 474
 #, c-format
465 475
 msgid "clamfi_connect: connection from %s\n"
466 476
 msgstr ""
467 477
 
468
-#: clamav-milter.c:1971
478
+#: clamav-milter.c:2015
469 479
 #, c-format
470 480
 msgid "clamfi_connect: connection from %s [%s]"
471 481
 msgstr ""
472 482
 
473
-#: clamav-milter.c:1972
483
+#: clamav-milter.c:2016
474 484
 #, c-format
475 485
 msgid "clamfi_connect: connection from %s [%s]\n"
476 486
 msgstr ""
477 487
 
478
-#: clamav-milter.c:1992
488
+#: clamav-milter.c:2036
479 489
 msgid "Can't get sendmail hostname"
480 490
 msgstr ""
481 491
 
482
-#: clamav-milter.c:2001
492
+#: clamav-milter.c:2045
483 493
 #, c-format
484 494
 msgid "Access Denied: Host Unknown (%s)"
485 495
 msgstr ""
486 496
 
487
-#: clamav-milter.c:2010
497
+#: clamav-milter.c:2054
488 498
 #, c-format
489 499
 msgid "Can't find entry for IP address %s in DNS - check your DNS setting\n"
490 500
 msgstr ""
491 501
 
492
-#: clamav-milter.c:2021
502
+#: clamav-milter.c:2065
493 503
 #, c-format
494 504
 msgid "Access Denied: Can't get IP address for (%s)"
495 505
 msgstr ""
496 506
 
497
-#: clamav-milter.c:2038
507
+#: clamav-milter.c:2082
498 508
 #, c-format
499 509
 msgid "Access Denied for %s[%s]"
500 510
 msgstr ""
501 511
 
502
-#: clamav-milter.c:2056
512
+#: clamav-milter.c:2100
503 513
 msgid "clamfi_connect: not scanning outgoing messages"
504 514
 msgstr ""
505 515
 
506
-#: clamav-milter.c:2057
516
+#: clamav-milter.c:2101
507 517
 msgid "clamfi_connect: not scanning outgoing messages\n"
508 518
 msgstr ""
509 519
 
510
-#: clamav-milter.c:2065
520
+#: clamav-milter.c:2109
511 521
 msgid "clamfi_connect: not scanning local messages"
512 522
 msgstr ""
513 523
 
514
-#: clamav-milter.c:2066
524
+#: clamav-milter.c:2110
515 525
 msgid "clamfi_connect: not scanning local messages\n"
516 526
 msgstr ""
517 527
 
518
-#: clamav-milter.c:2080
528
+#: clamav-milter.c:2124
519 529
 msgid "clamfi_connect: gethostname failed"
520 530
 msgstr ""
521 531
 
522
-#: clamav-milter.c:2085
532
+#: clamav-milter.c:2129
523 533
 msgid "Rejected email falsely claiming to be from here"
524 534
 msgstr ""
525 535
 
526
-#: clamav-milter.c:2086
536
+#: clamav-milter.c:2130
527 537
 msgid "You have claimed to be me, but you are not"
528 538
 msgstr ""
529 539
 
530
-#: clamav-milter.c:2087 clamav-milter.c:2371
540
+#: clamav-milter.c:2131 clamav-milter.c:2415
531 541
 msgid "Forged local address detected"
532 542
 msgstr ""
533 543
 
534
-#: clamav-milter.c:2115
544
+#: clamav-milter.c:2159
535 545
 msgid "Rejected email with empty from field"
536 546
 msgstr ""
537 547
 
538
-#: clamav-milter.c:2116
548
+#: clamav-milter.c:2160
539 549
 msgid "You have not said who the email is from"
540 550
 msgstr ""
541 551
 
542
-#: clamav-milter.c:2117
552
+#: clamav-milter.c:2161
543 553
 msgid "Reject email with empty from field"
544 554
 msgstr ""
545 555
 
546
-#: clamav-milter.c:2139
556
+#: clamav-milter.c:2183
547 557
 #, c-format
548 558
 msgid "hit max-children limit (%u >= %u)\n"
549 559
 msgstr ""
550 560
 
551
-#: clamav-milter.c:2140
561
+#: clamav-milter.c:2184
552 562
 #, c-format
553 563
 msgid "hit max-children limit (%u >= %u): waiting for some to exit\n"
554 564
 msgstr ""
555 565
 
556
-#: clamav-milter.c:2146
566
+#: clamav-milter.c:2190
557 567
 #, c-format
558 568
 msgid "hit max-children limit (%u >= %u)"
559 569
 msgstr ""
560 570
 
561
-#: clamav-milter.c:2147
571
+#: clamav-milter.c:2191
562 572
 #, c-format
563 573
 msgid "hit max-children limit (%u >= %u): waiting for some to exit"
564 574
 msgstr ""
565 575
 
566
-#: clamav-milter.c:2152
576
+#: clamav-milter.c:2196
567 577
 msgid "AV system temporarily overloaded - please try later"
568 578
 msgstr ""
569 579
 
570
-#: clamav-milter.c:2185
580
+#: clamav-milter.c:2229
571 581
 #, c-format
572 582
 msgid ">n_children = %d\n"
573 583
 msgstr ""
574 584
 
575
-#: clamav-milter.c:2191
585
+#: clamav-milter.c:2235
576 586
 msgid "Timeout waiting for a child to die"
577 587
 msgstr ""
578 588
 
579
-#: clamav-milter.c:2193
589
+#: clamav-milter.c:2237
580 590
 msgid "Timeout waiting for a child to die\n"
581 591
 msgstr ""
582 592
 
583
-#: clamav-milter.c:2336
593
+#: clamav-milter.c:2380
584 594
 msgid "clamfi_eoh"
585 595
 msgstr ""
586 596
 
587
-#: clamav-milter.c:2339
597
+#: clamav-milter.c:2383
588 598
 msgid "clamfi_eoh\n"
589 599
 msgstr ""
590 600
 
591
-#: clamav-milter.c:2363
601
+#: clamav-milter.c:2407
592 602
 msgid "clamfi_eoh: gethostname failed"
593 603
 msgstr ""
594 604
 
595
-#: clamav-milter.c:2369
605
+#: clamav-milter.c:2413
596 606
 #, c-format
597 607
 msgid "Rejected email falsely claiming to be from %s"
598 608
 msgstr ""
599 609
 
600
-#: clamav-milter.c:2370
610
+#: clamav-milter.c:2414
601 611
 msgid "You have claimed to be from me, but you are not"
602 612
 msgstr ""
603 613
 
604
-#: clamav-milter.c:2407
614
+#: clamav-milter.c:2451
605 615
 msgid "clamfi_eoh: ignoring whitelisted message"
606 616
 msgstr ""
607 617
 
608
-#: clamav-milter.c:2409
618
+#: clamav-milter.c:2453
609 619
 msgid "clamfi_eoh: ignoring whitelisted message\n"
610 620
 msgstr ""
611 621
 
612
-#: clamav-milter.c:2423
622
+#: clamav-milter.c:2467
613 623
 #, c-format
614 624
 msgid "clamfi_envbody: %u bytes"
615 625
 msgstr ""
616 626
 
617
-#: clamav-milter.c:2425
627
+#: clamav-milter.c:2469
618 628
 #, c-format
619 629
 msgid "clamfi_envbody: %u bytes\n"
620 630
 msgstr ""
621 631
 
622
-#: clamav-milter.c:2435 clamav-milter.c:2729
632
+#: clamav-milter.c:2482 clamav-milter.c:2776
623 633
 #, c-format
624 634
 msgid "%s: Message more than StreamMaxLength (%ld) bytes - not scanned"
625 635
 msgstr ""
626 636
 
627
-#: clamav-milter.c:2439 clamav-milter.c:2732
637
+#: clamav-milter.c:2486 clamav-milter.c:2779
628 638
 msgid "Not Scanned - StreamMaxLength exceeded"
629 639
 msgstr ""
630 640
 
631
-#: clamav-milter.c:2492
641
+#: clamav-milter.c:2539
632 642
 #, c-format
633 643
 msgid "Failed to delete X-Virus-Status header %d"
634 644
 msgstr ""
635 645
 
636
-#: clamav-milter.c:2555
646
+#: clamav-milter.c:2602
637 647
 #, c-format
638 648
 msgid "failed to send SCAN %s command to clamd"
639 649
 msgstr ""
640 650
 
641
-#: clamav-milter.c:2577
651
+#: clamav-milter.c:2624
642 652
 msgid "failed to send SCAN command to clamd"
643 653
 msgstr ""
644 654
 
645
-#: clamav-milter.c:2594
655
+#: clamav-milter.c:2641
646 656
 #, c-format
647 657
 msgid "Waiting to read status from fd %d\n"
648 658
 msgstr ""
649 659
 
650
-#: clamav-milter.c:2607
660
+#: clamav-milter.c:2654
651 661
 #, c-format
652 662
 msgid "clamfi_eom: read %s"
653 663
 msgstr ""
654 664
 
655
-#: clamav-milter.c:2608
665
+#: clamav-milter.c:2655
656 666
 #, c-format
657 667
 msgid "clamfi_eom: read %s\n"
658 668
 msgstr ""
659 669
 
660
-#: clamav-milter.c:2625
670
+#: clamav-milter.c:2672
661 671
 #, c-format
662 672
 msgid "clamfi_eom: read nothing from clamd on %s"
663 673
 msgstr ""
664 674
 
665
-#: clamav-milter.c:2627
675
+#: clamav-milter.c:2674
666 676
 #, c-format
667 677
 msgid "clamfi_eom: read nothing from clamd on %s\n"
668 678
 msgstr ""
669 679
 
670
-#: clamav-milter.c:2672 clamav-milter.c:2718
680
+#: clamav-milter.c:2719 clamav-milter.c:2765
671 681
 msgid "Error determining host"
672 682
 msgstr ""
673 683
 
674
-#: clamav-milter.c:2737
684
+#: clamav-milter.c:2784
675 685
 msgid "Not Scanned"
676 686
 msgstr ""
677 687
 
678
-#: clamav-milter.c:2766
688
+#: clamav-milter.c:2813
679 689
 msgid "Infected with"
680 690
 msgstr ""
681 691
 
682
-#: clamav-milter.c:2787
692
+#: clamav-milter.c:2834
683 693
 #, c-format
684 694
 msgid "Intercepted virus from %s to"
685 695
 msgstr ""
686 696
 
687
-#: clamav-milter.c:2880
697
+#: clamav-milter.c:2927
688 698
 msgid ""
689 699
 "Subject: Virus intercepted\n"
690 700
 "\n"
691 701
 msgstr ""
692 702
 
693
-#: clamav-milter.c:2888
703
+#: clamav-milter.c:2935
694 704
 msgid "A message you sent to\n"
695 705
 msgstr ""
696 706
 
697
-#: clamav-milter.c:2895
707
+#: clamav-milter.c:2942
698 708
 #, c-format
699 709
 msgid "The message %1$s sent from %2$s to\n"
700 710
 msgstr ""
701 711
 
702
-#: clamav-milter.c:2898
712
+#: clamav-milter.c:2945
703 713
 #, c-format
704 714
 msgid "A message sent from %s to\n"
705 715
 msgstr ""
706 716
 
707
-#: clamav-milter.c:2903
717
+#: clamav-milter.c:2950
708 718
 #, c-format
709 719
 msgid "contained %s and has not been delivered.\n"
710 720
 msgstr ""
711 721
 
712
-#: clamav-milter.c:2906
722
+#: clamav-milter.c:2953
713 723
 #, c-format
714 724
 msgid ""
715 725
 "\n"
716 726
 "The message in question has been quarantined as %s\n"
717 727
 msgstr ""
718 728
 
719
-#: clamav-milter.c:2909
729
+#: clamav-milter.c:2956
720 730
 #, c-format
721 731
 msgid ""
722 732
 "\n"
... ...
@@ -724,13 +734,13 @@ msgid ""
724 724
 "\n"
725 725
 msgstr ""
726 726
 
727
-#: clamav-milter.c:2912
727
+#: clamav-milter.c:2959
728 728
 msgid ""
729 729
 "For your information, the original message headers were:\n"
730 730
 "\n"
731 731
 msgstr ""
732 732
 
733
-#: clamav-milter.c:2925
733
+#: clamav-milter.c:2972
734 734
 #, c-format
735 735
 msgid ""
736 736
 "\n"
... ...
@@ -738,240 +748,240 @@ msgid ""
738 738
 "%s\t\n"
739 739
 msgstr ""
740 740
 
741
-#: clamav-milter.c:2933
741
+#: clamav-milter.c:2980
742 742
 #, c-format
743 743
 msgid "Can't execute '%s' to send virus notice"
744 744
 msgstr ""
745 745
 
746
-#: clamav-milter.c:2938
746
+#: clamav-milter.c:2985
747 747
 #, c-format
748 748
 msgid "Quarantined infected mail as %s"
749 749
 msgstr ""
750 750
 
751
-#: clamav-milter.c:2962
751
+#: clamav-milter.c:3009
752 752
 #, c-format
753 753
 msgid "Can't set quarantine user %s"
754 754
 msgstr ""
755 755
 
756
-#: clamav-milter.c:2964
756
+#: clamav-milter.c:3011
757 757
 #, c-format
758 758
 msgid "Can't set quarantine user %s\n"
759 759
 msgstr ""
760 760
 
761
-#: clamav-milter.c:2989
761
+#: clamav-milter.c:3033
762 762
 #, c-format
763 763
 msgid "virus %s detected by ClamAV - http://www.clamav.net"
764 764
 msgstr ""
765 765
 
766
-#: clamav-milter.c:2994
766
+#: clamav-milter.c:3038
767 767
 msgid "Unknown"
768 768
 msgstr ""
769 769
 
770
-#: clamav-milter.c:2996
770
+#: clamav-milter.c:3040
771 771
 #, c-format
772 772
 msgid "%s: incorrect message \"%s\" from clamd"
773 773
 msgstr ""
774 774
 
775
-#: clamav-milter.c:3002
775
+#: clamav-milter.c:3046
776 776
 msgid "Clean"
777 777
 msgstr ""
778 778
 
779
-#: clamav-milter.c:3006
779
+#: clamav-milter.c:3050
780 780
 #, c-format
781 781
 msgid "%s: clean message from %s"
782 782
 msgstr ""
783 783
 
784
-#: clamav-milter.c:3008
784
+#: clamav-milter.c:3052
785 785
 msgid "an unknown sender"
786 786
 msgstr ""
787 787
 
788
-#: clamav-milter.c:3112
788
+#: clamav-milter.c:3156
789 789
 #, c-format
790 790
 msgid "Can't remove clean file %s"
791 791
 msgstr ""
792 792
 
793
-#: clamav-milter.c:3295 clamav-milter.c:3298
793
+#: clamav-milter.c:3339 clamav-milter.c:3342
794 794
 #, c-format
795 795
 msgid "write failure (%u bytes) to %s: %s"
796 796
 msgstr ""
797 797
 
798
-#: clamav-milter.c:3312 clamav-milter.c:3315
798
+#: clamav-milter.c:3356 clamav-milter.c:3359
799 799
 #, c-format
800 800
 msgid "write failure (%u bytes) to clamd: %s"
801 801
 msgstr ""
802 802
 
803
-#: clamav-milter.c:3381
803
+#: clamav-milter.c:3425
804 804
 #, c-format
805 805
 msgid "No data received from clamd in %d seconds\n"
806 806
 msgstr ""
807 807
 
808
-#: clamav-milter.c:3403
808
+#: clamav-milter.c:3447
809 809
 #, c-format
810 810
 msgid "Can't stat %s"
811 811
 msgstr ""
812 812
 
813
-#: clamav-milter.c:3414 clamav-milter.c:3855
813
+#: clamav-milter.c:3458 clamav-milter.c:3899
814 814
 #, c-format
815 815
 msgid "Can't open %s"
816 816
 msgstr ""
817 817
 
818
-#: clamav-milter.c:3539 clamav-milter.c:4024
818
+#: clamav-milter.c:3583 clamav-milter.c:4068
819 819
 #, c-format
820 820
 msgid "mkdir %s failed"
821 821
 msgstr ""
822 822
 
823
-#: clamav-milter.c:3551
823
+#: clamav-milter.c:3595
824 824
 #, c-format
825 825
 msgid "mktemp %s failed"
826 826
 msgstr ""
827 827
 
828
-#: clamav-milter.c:3561
828
+#: clamav-milter.c:3605
829 829
 #, c-format
830 830
 msgid "Temporary quarantine file %s creation failed"
831 831
 msgstr ""
832 832
 
833
-#: clamav-milter.c:3664
833
+#: clamav-milter.c:3708
834 834
 #, c-format
835 835
 msgid "failed to send STREAM command clamd server %d"
836 836
 msgstr ""
837 837
 
838
-#: clamav-milter.c:3673
838
+#: clamav-milter.c:3717
839 839
 msgid "failed to send STREAM command clamd"
840 840
 msgstr ""
841 841
 
842
-#: clamav-milter.c:3685
842
+#: clamav-milter.c:3729
843 843
 msgid "failed to create TCPSocket to talk to clamd"
844 844
 msgstr ""
845 845
 
846
-#: clamav-milter.c:3697 clamav-milter.c:3713
846
+#: clamav-milter.c:3741 clamav-milter.c:3757
847 847
 msgid "recv failed from clamd getting PORT"
848 848
 msgstr ""
849 849
 
850
-#: clamav-milter.c:3701 clamav-milter.c:3715
850
+#: clamav-milter.c:3745 clamav-milter.c:3759
851 851
 msgid "EOF from clamd getting PORT"
852 852
 msgstr ""
853 853
 
854
-#: clamav-milter.c:3726
854
+#: clamav-milter.c:3770
855 855
 #, c-format
856 856
 msgid "Expected port information from clamd, got '%s'"
857 857
 msgstr ""
858 858
 
859
-#: clamav-milter.c:3729
859
+#: clamav-milter.c:3773
860 860
 #, c-format
861 861
 msgid "Expected port information from clamd, got '%s'\n"
862 862
 msgstr ""
863 863
 
864
-#: clamav-milter.c:3749 clamav-milter.c:3752
864
+#: clamav-milter.c:3793 clamav-milter.c:3796
865 865
 #, c-format
866 866
 msgid "Connecting to local port %d - data %d cmd %d\n"
867 867
 msgstr ""
868 868
 
869
-#: clamav-milter.c:3767 clamav-milter.c:3770
869
+#: clamav-milter.c:3811 clamav-milter.c:3814
870 870
 #, c-format
871 871
 msgid "Failed to connect to port %d given by clamd: %s"
872 872
 msgstr ""
873 873
 
874
-#: clamav-milter.c:3867
874
+#: clamav-milter.c:3911
875 875
 #, c-format
876 876
 msgid "Clamd (pid %d) seems to have died"
877 877
 msgstr ""
878 878
 
879
-#: clamav-milter.c:3893
879
+#: clamav-milter.c:3937
880 880
 #, c-format
881 881
 msgid "Can't open e-mail template file %s"
882 882
 msgstr ""
883 883
 
884
-#: clamav-milter.c:3902
884
+#: clamav-milter.c:3946
885 885
 #, c-format
886 886
 msgid "Can't stat e-mail template file %s"
887 887
 msgstr ""
888 888
 
889
-#: clamav-milter.c:3911
889
+#: clamav-milter.c:3955
890 890
 msgid "Out of memory"
891 891
 msgstr ""
892 892
 
893
-#: clamav-milter.c:3938
893
+#: clamav-milter.c:3982
894 894
 #, c-format
895 895
 msgid "%s: Unknown clamAV variable \"%c\"\n"
896 896
 msgstr ""
897 897
 
898
-#: clamav-milter.c:3949
898
+#: clamav-milter.c:3993
899 899
 #, c-format
900 900
 msgid "%s: Unterminated sendmail variable \"%s\"\n"
901 901
 msgstr ""
902 902
 
903
-#: clamav-milter.c:3960
903
+#: clamav-milter.c:4004
904 904
 #, c-format
905 905
 msgid "%s: Unknown sendmail variable \"%s\"\n"
906 906
 msgstr ""
907 907
 
908
-#: clamav-milter.c:4050
908
+#: clamav-milter.c:4094
909 909
 #, c-format
910 910
 msgid "Can't rename %1$s to %2$s"
911 911
 msgstr ""
912 912
 
913
-#: clamav-milter.c:4059
913
+#: clamav-milter.c:4103
914 914
 #, c-format
915 915
 msgid "File quarantined as %s"
916 916
 msgstr ""
917 917
 
918
-#: clamav-milter.c:4151
918
+#: clamav-milter.c:4195
919 919
 #, c-format
920 920
 msgid "[Virus] %s"
921 921
 msgstr ""
922 922
 
923
-#: clamav-milter.c:4245
923
+#: clamav-milter.c:4289
924 924
 msgid ""
925 925
 "No response from any clamd server - your AV system is not scanning emails\n"
926 926
 msgstr ""
927 927
 
928
-#: clamav-milter.c:4248
928
+#: clamav-milter.c:4292
929 929
 msgid ""
930 930
 "No response from any clamd server - your AV system is not scanning emails"
931 931
 msgstr ""
932 932
 
933
-#: clamav-milter.c:4266
933
+#: clamav-milter.c:4310
934 934
 msgid "Subject: ClamAV Down\n"
935 935
 msgstr ""
936 936
 
937
-#: clamav-milter.c:4269
937
+#: clamav-milter.c:4313
938 938
 msgid ""
939 939
 "This is an automatic message\n"
940 940
 "\n"
941 941
 msgstr ""
942 942
 
943
-#: clamav-milter.c:4272
943
+#: clamav-milter.c:4316
944 944
 msgid "The clamd program cannot be contacted.\n"
945 945
 msgstr ""
946 946
 
947
-#: clamav-milter.c:4274
947
+#: clamav-milter.c:4318
948 948
 msgid "No clamd server can be contacted.\n"
949 949
 msgstr ""
950 950
 
951
-#: clamav-milter.c:4276
951
+#: clamav-milter.c:4320
952 952
 msgid "Emails may not be being scanned, please check your servers.\n"
953 953
 msgstr ""
954 954
 
955
-#: clamav-milter.c:4356 clamav-milter.c:4379 clamav-milter.c:4545
956
-#: clamav-milter.c:4566
955
+#: clamav-milter.c:4400 clamav-milter.c:4423 clamav-milter.c:4589
956
+#: clamav-milter.c:4610
957 957
 msgid "Loading new database"
958 958
 msgstr ""
959 959
 
960
-#: clamav-milter.c:4686
960
+#: clamav-milter.c:4730
961 961
 #, c-format
962 962
 msgid "Stopping %s"
963 963
 msgstr ""
964 964
 
965
-#: clamav-milter.c:4732
965
+#: clamav-milter.c:4776
966 966
 msgid "Stopping clamav-milter"
967 967
 msgstr ""
968 968
 
969
-#: clamav-milter.c:4850
969
+#: clamav-milter.c:4894
970 970
 #, c-format
971 971
 msgid "ClamAV: Protecting against %u viruses"
972 972
 msgstr ""
973 973
 
974
-#: clamav-milter.c:4855
974
+#: clamav-milter.c:4899
975 975
 #, c-format
976 976
 msgid "Loaded %s"
977 977
 msgstr ""