Browse code

--internal now reloads the database

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

Nigel Horne authored on 2004/12/02 20:11:33
Showing 5 changed files
... ...
@@ -1,3 +1,8 @@
1
+Thu Dec  2 11:10:31 GMT 2004 (njh)
2
+----------------------------------
3
+  * clamav-milter:	--internal now notices when the database has been
4
+				updated
5
+
1 6
 Wed Dec  1 22:29:33 GMT 2004 (njh)
2 7
 ----------------------------------
3 8
   * clamav-milter:	Added --internal flag (some functionality to do)
... ...
@@ -571,6 +571,9 @@ Changes
571 571
 		Not all previous X-Virus-Status headers were removed
572 572
 		Added the --internal flag
573 573
 			TODO: freshclam notification and version headers
574
+0.80v	2/12/04: --internal now notices when freshclam has been run
575
+		The default value for --timeout has been changed from 60
576
+			seconds to 0 (wait forever)
574 577
 
575 578
 INTERNATIONALISATION
576 579
 
... ...
@@ -26,6 +26,9 @@
26 26
  *
27 27
  * Change History:
28 28
  * $Log: clamav-milter.c,v $
29
+ * Revision 1.156  2004/12/02 11:09:05  nigelhorne
30
+ * --internal now reloads the database
31
+ *
29 32
  * Revision 1.155  2004/12/01 22:27:38  nigelhorne
30 33
  * Added --internal
31 34
  *
... ...
@@ -476,9 +479,9 @@
476 476
  * Revision 1.6  2003/09/28 16:37:23  nigelhorne
477 477
  * Added -f flag use MaxThreads if --max-children not set
478 478
  */
479
-static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.155 2004/12/01 22:27:38 nigelhorne Exp $";
479
+static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.156 2004/12/02 11:09:05 nigelhorne Exp $";
480 480
 
481
-#define	CM_VERSION	"0.80u"
481
+#define	CM_VERSION	"0.80v"
482 482
 
483 483
 /*#define	CONFDIR	"/usr/local/etc"*/
484 484
 
... ...
@@ -697,6 +700,7 @@ static	void	*watchdog(void *a);
697 697
 static	int	logg_facility(const char *name);
698 698
 static	void	quit(void);
699 699
 static	void	broadcast(const char *mess);
700
+static	int	loadDatabase(void);
700 701
 
701 702
 #ifdef	SESSION
702 703
 static	char	**clamav_versions;
... ...
@@ -707,6 +711,8 @@ static	char	clamav_version[VERSION_LENGTH + 1];
707 707
 static	int	fflag = 0;	/* force a scan, whatever */
708 708
 static	int	oflag = 0;	/* scan messages from our machine? */
709 709
 static	int	lflag = 0;	/* scan messages from our site? */
710
+
711
+/* Variables for --internal */
710 712
 static	int	internal = 0;	/* scan messages ourself or use clamd? */
711 713
 static	struct	cl_node	*root = NULL;
712 714
 static	struct	cl_limits	limits;
... ...
@@ -790,7 +796,7 @@ static	pthread_mutex_t	n_children_mutex = PTHREAD_MUTEX_INITIALIZER;
790 790
 static	pthread_cond_t	n_children_cond = PTHREAD_COND_INITIALIZER;
791 791
 static	unsigned	int	n_children = 0;
792 792
 static	unsigned	int	max_children = 0;
793
-static	int	child_timeout = 60;	/* number of seconds to wait for
793
+static	int	child_timeout = 0;	/* number of seconds to wait for
794 794
 					 * a child to die. Set to 0 to
795 795
 					 * wait forever
796 796
 					 */
... ...
@@ -1371,72 +1377,16 @@ main(int argc, char **argv)
1371 1371
 	 * we're doing the scanning internally
1372 1372
 	 */
1373 1373
 	if(internal) {
1374
-		int signatures = 0;
1375
-		int ret;
1376
-		extern const char *cl_retdbdir(void);	/* FIXME */
1377
-		const char *dbdir = cl_retdbdir();
1378
-
1379
-		/*
1380
-		 * TODO: Set a better version string if DataDirectory hasn't
1381
-		 * been set
1382
-		 * TODO: Set limits
1383
-		 */
1384
-		if((cpt = cfgopt(copt, "DatabaseDirectory")) || (cpt = cfgopt(copt, "DataDirectory")))
1385
-			if(strcmp(dbdir, cpt->strarg) != 0) {
1386
-				char *daily = cli_malloc(strlen(cpt->strarg) + strlen(dbdir) + 15);
1387
-				struct cl_cvd *d1;
1388
-				time_t t = (time_t)0;
1389
-				int v = 0;
1390
-
1391
-				sprintf(daily, "%s/daily.cvd", cpt->strarg);
1392
-				if((d1 = cl_cvdhead(daily))) {
1393
-					struct cl_cvd *d2;
1394
-
1395
-					t = d1->stime;
1396
-					v = d1->version;
1397
-
1398
-					sprintf(daily, "%s/daily.cvd", dbdir);
1399
-					if((d2 = cl_cvdhead(daily))) {
1400
-						if(d1->version > d2->version)
1401
-							dbdir = cpt->strarg;
1402
-						else
1403
-							dbdir = dbdir;
1404
-						t = d2->stime;
1405
-						v = d2->version;
1406
-						cl_cvdfree(d2);
1407
-					} else
1408
-						dbdir = cpt->strarg;
1409
-					cl_cvdfree(d1);
1410
-				}
1411
-				free(daily);
1412
-
1413
-				if(t)
1414
-					snprintf(version, sizeof(version) - 1,
1415
-						"ClamAV %s/%d/%s", VERSION, v,
1416
-						ctime(&t));
1417
-
1418
-			}
1419
-
1420
-		ret = cl_loaddbdir(dbdir, &root, &signatures);
1421
-		if(ret != 0) {
1422
-			fprintf(stderr, "%s\n", cl_strerror(ret));
1374
+		if(max_children == 0) {
1375
+			fprintf(stderr, _("%s: --max-children must be given in internal mode\n"), argv[0]);
1423 1376
 			return EX_CONFIG;
1424 1377
 		}
1425
-		if(!root) {
1426
-			fputs("Can't initialize the virus database.\n", stderr);
1378
+		if(child_timeout) {
1379
+			fprintf(stderr, _("%s: --timeout must not be given in internal mode\n"), argv[0]);
1427 1380
 			return EX_CONFIG;
1428 1381
 		}
1429
-
1430
-		ret = cl_build(root);
1431
-		if(ret != 0) {
1432
-			fprintf(stderr, "Database initialization error: %s\n", cl_strerror(ret));
1382
+		if(loadDatabase() != 0)
1433 1383
 			return EX_CONFIG;
1434
-		}
1435
-		if(use_syslog)
1436
-			syslog(LOG_INFO, _("ClamAV: Protecting against %d viruses"), signatures);
1437
-
1438
-		cl_statinidir(dbdir, &dbstat);
1439
-
1440 1384
 	} else if((cpt = cfgopt(copt, "LocalSocket")) != NULL) {
1441 1385
 #ifdef	SESSION
1442 1386
 		struct sockaddr_un server;
... ...
@@ -1624,10 +1574,12 @@ main(int argc, char **argv)
1624 1624
 	}
1625 1625
 
1626 1626
 	if(internal) {
1627
-		clamav_versions = (char **)cli_malloc(sizeof(char *));
1628
-		if(clamav_versions == NULL)
1629
-			return EX_TEMPFAIL;
1630
-		clamav_version = strdup(version);
1627
+		if(clamav_versions == NULL) {
1628
+			clamav_versions = (char **)cli_malloc(sizeof(char *));
1629
+			if(clamav_versions == NULL)
1630
+				return EX_TEMPFAIL;
1631
+			clamav_version = strdup(version);
1632
+		}
1631 1633
 #ifdef	SESSION
1632 1634
 	} else {
1633 1635
 		clamav_versions = (char **)cli_malloc(numServers * sizeof(char *));
... ...
@@ -1769,8 +1721,6 @@ main(int argc, char **argv)
1769 1769
 	if(use_syslog) {
1770 1770
 		if(logVerbose)
1771 1771
 			syslog(LOG_INFO, _("Starting: %s"), clamav_version);
1772
-		else
1773
-			syslog(LOG_INFO, "%s", clamav_version);
1774 1772
 #ifdef	CL_DEBUG
1775 1773
 		if(debug_level > 0)
1776 1774
 			syslog(LOG_DEBUG, _("Debugging is on"));
... ...
@@ -2319,7 +2269,7 @@ clamfi_envfrom(SMFICTX *ctx, char **argv)
2319 2319
 			}
2320 2320
 			/*
2321 2321
 			 * Wait for an amount of time for a child to go (default
2322
-			 * 60 seconds).
2322
+			 * wait for ever)
2323 2323
 			 *
2324 2324
 			 * Use pthread_cond_timedwait rather than
2325 2325
 			 * pthread_cond_wait since the sendmail which calls
... ...
@@ -3823,7 +3773,6 @@ connect2clamd(struct privdata *privdata)
3823 3823
 				cli_warnmsg(_("Expected port information from clamd, got '%s'\n"),
3824 3824
 					buf);
3825 3825
 #ifdef	SESSION
3826
-			pthread_mutex_lock(&sstatus_mutex);
3827 3826
 			session->status = CMDSOCKET_DOWN;
3828 3827
 			pthread_mutex_unlock(&sstatus_mutex);
3829 3828
 #endif
... ...
@@ -4310,11 +4259,21 @@ watchdog(void *a)
4310 4310
 
4311 4311
 		if(internal) {
4312 4312
 			/*
4313
-			 * TODO: reload automatically
4313
+			 * Re-load the database if the server's not busy.
4314
+			 * TODO: If a reload is needed go into a mode when
4315
+			 *	new scans aren't accepted, to force the number
4316
+			 *	of children to 0 so that we can reload,
4317
+			 *	otherwise a reload may not occur on overloaded
4318
+			 *	servers
4314 4319
 			 */
4315
-			if((n_children == 0) && (cl_statchkdir(&dbstat) == 1))
4320
+			pthread_mutex_lock(&n_children_mutex);
4321
+			if((n_children == 0) && (cl_statchkdir(&dbstat) == 1)) {
4316 4322
 				if(use_syslog)
4317
-					syslog(LOG_WARNING, _("Freshclam has been run - please restart clamav-milter\n"));
4323
+					syslog(LOG_WARNING, _("Loading new database"));
4324
+				if(loadDatabase() != 0)
4325
+					exit(EX_CONFIG);
4326
+			}
4327
+			pthread_mutex_unlock(&n_children_mutex);
4318 4328
 			continue;
4319 4329
 		}
4320 4330
 		i = 0;
... ...
@@ -4551,3 +4510,98 @@ broadcast(const char *mess)
4551 4551
 	if(sendto(broadcastSock, mess, strlen(mess), 0, (struct sockaddr *)&s, sizeof(struct sockaddr_in)) < 0)
4552 4552
 		perror("sendto");
4553 4553
 }
4554
+
4555
+/*
4556
+ * Load a new database into the internal scanner - it is up to the caller to
4557
+ * ensure that no threads are currently scanning
4558
+ */
4559
+static int
4560
+loadDatabase(void)
4561
+{
4562
+	extern const char *cl_retdbdir(void);	/* FIXME: should be included */
4563
+	int ret, firsttime, signatures, v;
4564
+	time_t t;
4565
+	char *daily, *ptr;
4566
+	struct cl_cvd *d;
4567
+	const struct cfgstruct *cpt;
4568
+	static const char *dbdir;
4569
+
4570
+	assert(internal);
4571
+
4572
+	firsttime = (dbdir == NULL);
4573
+
4574
+	if(firsttime) {
4575
+		/*
4576
+		 * TODO: Set limits
4577
+		 */
4578
+
4579
+		if((cpt = cfgopt(copt, "DatabaseDirectory")) || (cpt = cfgopt(copt, "DataDirectory")))
4580
+			dbdir = cpt->strarg;
4581
+		else
4582
+			dbdir = cl_retdbdir();
4583
+	}
4584
+
4585
+	daily = cli_malloc(strlen(dbdir) + 11);
4586
+	sprintf(daily, "%s/daily.cvd", dbdir);
4587
+
4588
+	d = cl_cvdhead(daily);
4589
+
4590
+	if(d == NULL) {
4591
+		cli_errmsg("Can't find %s\n", daily);
4592
+		free(daily);
4593
+		return -1;
4594
+	}
4595
+
4596
+	t = d->stime;
4597
+	v = d->version;
4598
+
4599
+	cl_cvdfree(d);
4600
+	free(daily);
4601
+
4602
+#ifdef	SESSION
4603
+	if(clamav_versions == NULL) {
4604
+		clamav_versions = (char **)cli_malloc(sizeof(char *));
4605
+		if(clamav_versions == NULL)
4606
+			return -1;
4607
+		clamav_version = cli_malloc(VERSION_LENGTH + 1);
4608
+		if(clamav_version == NULL) {
4609
+			free(clamav_versions);
4610
+			clamav_versions = NULL;
4611
+			return -1;
4612
+		}
4613
+	}
4614
+#endif
4615
+	snprintf(clamav_version, VERSION_LENGTH,
4616
+		"ClamAV %s/%d/%s", VERSION, v, ctime(&t));
4617
+	/* Remove ctime's trailing \n */
4618
+	if((ptr = strchr(clamav_version, '\n')) != NULL)
4619
+		*ptr = '\0';
4620
+
4621
+	if(root) {
4622
+		cl_free(root);
4623
+		root = NULL;
4624
+	}
4625
+	signatures = 0;
4626
+	ret = cl_loaddbdir(dbdir, &root, &signatures);
4627
+	if(ret != 0) {
4628
+		cli_errmsg("%s\n", cl_strerror(ret));
4629
+		return -1;
4630
+	}
4631
+	if(root == NULL) {
4632
+		cli_errmsg("Can't initialize the virus database.\n");
4633
+		return -1;
4634
+	}
4635
+
4636
+	ret = cl_build(root);
4637
+	if(ret != 0) {
4638
+		cli_errmsg("Database initialization error: %s\n", cl_strerror(ret));
4639
+		return -1;
4640
+	}
4641
+	if(use_syslog)
4642
+		syslog(LOG_INFO, _("ClamAV: Protecting against %d viruses"), signatures);
4643
+
4644
+	if(use_syslog)
4645
+		syslog(LOG_INFO, _("Loaded %s\n"), clamav_version);
4646
+
4647
+	return cl_statinidir(dbdir, &dbstat);
4648
+}
... ...
@@ -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-12-01 22:27+0000\n"
11
+"POT-Creation-Date: 2004-12-02 11:07+0000\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,582 +16,587 @@ msgstr ""
16 16
 "Content-Type: text/plain; charset=CHARSET\n"
17 17
 "Content-Transfer-Encoding: 8bit\n"
18 18
 
19
-#: clamav-milter.c:861
19
+#: clamav-milter.c:867
20 20
 msgid "\t--advisory\t\t-A\tFlag viruses rather than deleting them."
21 21
 msgstr ""
22 22
 
23
-#: clamav-milter.c:862
23
+#: clamav-milter.c:868
24 24
 msgid "\t--bounce\t\t-b\tSend a failure message to the sender."
25 25
 msgstr ""
26 26
 
27
-#: clamav-milter.c:863
27
+#: clamav-milter.c:869
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:864
33
+#: clamav-milter.c:870
34 34
 msgid "\t--config-file=FILE\t-c FILE\tRead configuration from FILE."
35 35
 msgstr ""
36 36
 
37
-#: clamav-milter.c:865
37
+#: clamav-milter.c:871
38 38
 msgid "\t--debug\t\t\t-D\tPrint debug messages."
39 39
 msgstr ""
40 40
 
41
-#: clamav-milter.c:866
41
+#: clamav-milter.c:872
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:867
46
+#: clamav-milter.c:873
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:868
52
+#: clamav-milter.c:874
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:869
56
+#: clamav-milter.c:875
57 57
 msgid "\t--from=EMAIL\t\t-a EMAIL\tError messages come from here."
58 58
 msgstr ""
59 59
 
60
-#: clamav-milter.c:870
60
+#: clamav-milter.c:876
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:871
64
+#: clamav-milter.c:877
65 65
 msgid "\t--help\t\t\t-h\tThis message."
66 66
 msgstr ""
67 67
 
68
-#: clamav-milter.c:872
68
+#: clamav-milter.c:878
69 69
 msgid "\t--headers\t\t-H\tInclude original message headers in the report."
70 70
 msgstr ""
71 71
 
72
-#: clamav-milter.c:873
72
+#: clamav-milter.c:879
73 73
 msgid "\t--internal\t\t-I\tUse the internal scanner."
74 74
 msgstr ""
75 75
 
76
-#: clamav-milter.c:874
76
+#: clamav-milter.c:880
77 77
 msgid "\t--local\t\t\t-l\tScan messages sent from machines on our LAN."
78 78
 msgstr ""
79 79
 
80
-#: clamav-milter.c:875
80
+#: clamav-milter.c:881
81 81
 msgid "\t--max-childen\t\t-m\tMaximum number of concurrent scans."
82 82
 msgstr ""
83 83
 
84
-#: clamav-milter.c:876
84
+#: clamav-milter.c:882
85 85
 msgid "\t--outgoing\t\t-o\tScan outgoing messages from this machine."
86 86
 msgstr ""
87 87
 
88
-#: clamav-milter.c:877
88
+#: clamav-milter.c:883
89 89
 msgid "\t--noreject\t\t-N\tDon't reject viruses, silently throw them away."
90 90
 msgstr ""
91 91
 
92
-#: clamav-milter.c:878
92
+#: clamav-milter.c:884
93 93
 msgid "\t--noxheader\t\t-n\tSuppress X-Virus-Scanned/X-Virus-Status headers."
94 94
 msgstr ""
95 95
 
96
-#: clamav-milter.c:879
96
+#: clamav-milter.c:885
97 97
 msgid "\t--pidfile=FILE\t\t-i FILE\tLocation of pidfile."
98 98
 msgstr ""
99 99
 
100
-#: clamav-milter.c:880
100
+#: clamav-milter.c:886
101 101
 msgid "\t--postmaster\t\t-p EMAIL\tPostmaster address [default=postmaster]."
102 102
 msgstr ""
103 103
 
104
-#: clamav-milter.c:881
104
+#: clamav-milter.c:887
105 105
 msgid "\t--postmaster-only\t-P\tSend warnings only to the postmaster."
106 106
 msgstr ""
107 107
 
108
-#: clamav-milter.c:882
108
+#: clamav-milter.c:888
109 109
 msgid "\t--quiet\t\t\t-q\tDon't send e-mail notifications of interceptions."
110 110
 msgstr ""
111 111
 
112
-#: clamav-milter.c:883
112
+#: clamav-milter.c:889
113 113
 msgid "\t--quarantine=USER\t-Q EMAIL\tQuanrantine e-mail account."
114 114
 msgstr ""
115 115
 
116
-#: clamav-milter.c:884
116
+#: clamav-milter.c:890
117 117
 msgid "\t--quarantine-dir=DIR\t-U DIR\tDirectory to store infected emails."
118 118
 msgstr ""
119 119
 
120
-#: clamav-milter.c:885
120
+#: clamav-milter.c:891
121 121
 msgid ""
122 122
 "\t--server=SERVER\t\t-s SERVER\tHostname/IP address of server(s) running "
123 123
 "clamd (when using TCPsocket)."
124 124
 msgstr ""
125 125
 
126
-#: clamav-milter.c:886
126
+#: clamav-milter.c:892
127 127
 msgid "\t--sign\t\t\t-S\tAdd a hard-coded signature to each scanned message."
128 128
 msgstr ""
129 129
 
130
-#: clamav-milter.c:887
130
+#: clamav-milter.c:893
131 131
 msgid "\t--signature-file=FILE\t-F FILE\tLocation of signature file."
132 132
 msgstr ""
133 133
 
134
-#: clamav-milter.c:888
134
+#: clamav-milter.c:894
135 135
 msgid "\t--template-file=FILE\t-t FILE\tLocation of e-mail template file."
136 136
 msgstr ""
137 137
 
138
-#: clamav-milter.c:889
138
+#: clamav-milter.c:895
139 139
 msgid "\t--timeout=SECS\t\t-T SECS\tTimeout waiting to childen to die."
140 140
 msgstr ""
141 141
 
142
-#: clamav-milter.c:890
142
+#: clamav-milter.c:896
143 143
 msgid "\t--version\t\t-V\tPrint the version number of this software."
144 144
 msgstr ""
145 145
 
146
-#: clamav-milter.c:892
146
+#: clamav-milter.c:898
147 147
 msgid "\t--debug-level=n\t\t-x n\tSets the debug level to 'n'."
148 148
 msgstr ""
149 149
 
150
-#: clamav-milter.c:894
150
+#: clamav-milter.c:900
151 151
 msgid ""
152 152
 "\n"
153 153
 "For more information type \"man clamav-milter\"."
154 154
 msgstr ""
155 155
 
156
-#: clamav-milter.c:895
156
+#: clamav-milter.c:901
157 157
 msgid "Report bugs to bugs@clamav.net."
158 158
 msgstr ""
159 159
 
160
-#: clamav-milter.c:1187
160
+#: clamav-milter.c:1193
161 161
 #, c-format
162 162
 msgid "%s: No socket-addr given\n"
163 163
 msgstr ""
164 164
 
165
-#: clamav-milter.c:1196
165
+#: clamav-milter.c:1202
166 166
 #, c-format
167 167
 msgid "%s: Can't parse the config file %s\n"
168 168
 msgstr ""
169 169
 
170
-#: clamav-milter.c:1235
170
+#: clamav-milter.c:1241
171 171
 #, c-format
172 172
 msgid ""
173 173
 "%s: The iface option to --broadcast is not supported on your operating "
174 174
 "system\n"
175 175
 msgstr ""
176 176
 
177
-#: clamav-milter.c:1244
177
+#: clamav-milter.c:1250
178 178
 #, c-format
179 179
 msgid "%s: Can't get information about user %s\n"
180 180
 msgstr ""
181 181
 
182
-#: clamav-milter.c:1255
182
+#: clamav-milter.c:1261
183 183
 #, c-format
184 184
 msgid "%s: AllowSupplementaryGroups: initgroups not supported.\n"
185 185
 msgstr ""
186 186
 
187
-#: clamav-milter.c:1272
187
+#: clamav-milter.c:1278
188 188
 #, c-format
189 189
 msgid "Running as user %s (UID %d, GID %d)\n"
190 190
 msgstr ""
191 191
 
192
-#: clamav-milter.c:1275
192
+#: clamav-milter.c:1281
193 193
 #, c-format
194 194
 msgid "%s: running as root is not recommended (check \"User\" in clamd.conf)\n"
195 195
 msgstr ""
196 196
 
197
-#: clamav-milter.c:1277
197
+#: clamav-milter.c:1283
198 198
 #, c-format
199 199
 msgid "%s: Only root can set an interface for --broadcast\n"
200 200
 msgstr ""
201 201
 
202
-#: clamav-milter.c:1282
202
+#: clamav-milter.c:1288
203 203
 #, c-format
204 204
 msgid "%s: Advisory mode doesn't work with quarantine mode\n"
205 205
 msgstr ""
206 206
 
207
-#: clamav-milter.c:1289
207
+#: clamav-milter.c:1295
208 208
 #, c-format
209 209
 msgid "%s: Advisory mode doesn't work with quarantine directories\n"
210 210
 msgstr ""
211 211
 
212
-#: clamav-milter.c:1305
212
+#: clamav-milter.c:1311
213 213
 #, c-format
214 214
 msgid "%s: insecure quarantine directory %s (mode 0%o)\n"
215 215
 msgstr ""
216 216
 
217
-#: clamav-milter.c:1331
217
+#: clamav-milter.c:1337
218 218
 #, c-format
219 219
 msgid "%s: ReadTimeout must not be negative in %s\n"
220 220
 msgstr ""
221 221
 
222
-#: clamav-milter.c:1339
222
+#: clamav-milter.c:1345
223 223
 #, c-format
224 224
 msgid "%s: StreamMaxLength must not be negative in %s\n"
225 225
 msgstr ""
226 226
 
227
-#: clamav-milter.c:1362
227
+#: clamav-milter.c:1368
228 228
 #, c-format
229 229
 msgid ""
230 230
 "%s: (-q && !LogSyslog): warning - all interception message methods are off\n"
231 231
 msgstr ""
232 232
 
233
-#: clamav-milter.c:1433
233
+#: clamav-milter.c:1378
234 234
 #, c-format
235
-msgid "ClamAV: Protecting against %d viruses"
235
+msgid "%s: --max-children must be given in internal mode\n"
236 236
 msgstr ""
237 237
 
238
-#: clamav-milter.c:1444
238
+#: clamav-milter.c:1382
239
+#, c-format
240
+msgid "%s: --timeout must not be given in internal mode\n"
241
+msgstr ""
242
+
243
+#: clamav-milter.c:1394
239 244
 #, c-format
240 245
 msgid "%s: You can select one server type only (local/TCP) in %s\n"
241 246
 msgstr ""
242 247
 
243
-#: clamav-milter.c:1454
248
+#: clamav-milter.c:1404
244 249
 #, c-format
245 250
 msgid "The connection from sendmail to %s (%s) must not\n"
246 251
 msgstr ""
247 252
 
248
-#: clamav-milter.c:1456
253
+#: clamav-milter.c:1406
249 254
 #, c-format
250 255
 msgid "be the same as the connection to clamd (%s) in %s\n"
251 256
 msgstr ""
252 257
 
253
-#: clamav-milter.c:1466 clamav-milter.c:1489
258
+#: clamav-milter.c:1416 clamav-milter.c:1439
254 259
 #, c-format
255 260
 msgid "Can't talk to clamd server via %s\n"
256 261
 msgstr ""
257 262
 
258
-#: clamav-milter.c:1468 clamav-milter.c:1491
263
+#: clamav-milter.c:1418 clamav-milter.c:1441
259 264
 #, c-format
260 265
 msgid "Check your entry for LocalSocket in %s\n"
261 266
 msgstr ""
262 267
 
263
-#: clamav-milter.c:1502
268
+#: clamav-milter.c:1452
264 269
 msgid "Can't create a clamd session"
265 270
 msgstr ""
266 271
 
267
-#: clamav-milter.c:1519
272
+#: clamav-milter.c:1469
268 273
 #, c-format
269 274
 msgid ""
270 275
 "%s: --quarantine-dir not supported for remote scanning - use --quarantine\n"
271 276
 msgstr ""
272 277
 
273
-#: clamav-milter.c:1534
278
+#: clamav-milter.c:1484
274 279
 #, c-format
275 280
 msgid "%s: hostname %s is longer than %d characters\n"
276 281
 msgstr ""
277 282
 
278
-#: clamav-milter.c:1553
283
+#: clamav-milter.c:1503
279 284
 #, c-format
280 285
 msgid "%s: --max-children must be given in sessions mode\n"
281 286
 msgstr ""
282 287
 
283
-#: clamav-milter.c:1576
288
+#: clamav-milter.c:1526
284 289
 #, c-format
285 290
 msgid "%s: Unknown host %s\n"
286 291
 msgstr ""
287 292
 
288
-#: clamav-milter.c:1588
293
+#: clamav-milter.c:1538
289 294
 #, c-format
290 295
 msgid "Can't talk to clamd server %s on port %d\n"
291 296
 msgstr ""
292 297
 
293
-#: clamav-milter.c:1605
298
+#: clamav-milter.c:1555
294 299
 msgid "Can't find any active clamd servers\n"
295 300
 msgstr ""
296 301
 
297
-#: clamav-milter.c:1606 clamav-milter.c:1612
302
+#: clamav-milter.c:1556 clamav-milter.c:1562
298 303
 #, c-format
299 304
 msgid "Check your entry for TCPSocket in %s\n"
300 305
 msgstr ""
301 306
 
302
-#: clamav-milter.c:1611
307
+#: clamav-milter.c:1561
303 308
 msgid "Can't find any clamd servers\n"
304 309
 msgstr ""
305 310
 
306
-#: clamav-milter.c:1618
311
+#: clamav-milter.c:1568
307 312
 #, c-format
308 313
 msgid "%s: You must select server type (local/TCP) in %s\n"
309 314
 msgstr ""
310 315
 
311
-#: clamav-milter.c:1667
316
+#: clamav-milter.c:1619
312 317
 #, c-format
313 318
 msgid "When debugging it is recommended that you use Foreground mode in %s\n"
314 319
 msgstr ""
315 320
 
316
-#: clamav-milter.c:1668
321
+#: clamav-milter.c:1620
317 322
 msgid "\tso that you can see all of the messages"
318 323
 msgstr ""
319 324
 
320
-#: clamav-milter.c:1715
325
+#: clamav-milter.c:1667
321 326
 msgid "Starting clamav-milter"
322 327
 msgstr ""
323 328
 
324
-#: clamav-milter.c:1724
329
+#: clamav-milter.c:1676
325 330
 #, c-format
326 331
 msgid "Can't save PID in file %s"
327 332
 msgstr ""
328 333
 
329
-#: clamav-milter.c:1726
334
+#: clamav-milter.c:1678
330 335
 #, c-format
331 336
 msgid "Can't save PID in file %s\n"
332 337
 msgstr ""
333 338
 
334
-#: clamav-milter.c:1754
339
+#: clamav-milter.c:1706
335 340
 #, c-format
336 341
 msgid "%s: smfi_setconn failed\n"
337 342
 msgstr ""
338 343
 
339
-#: clamav-milter.c:1768
344
+#: clamav-milter.c:1720
340 345
 #, c-format
341 346
 msgid "Starting: %s"
342 347
 msgstr ""
343 348
 
344
-#: clamav-milter.c:1773
349
+#: clamav-milter.c:1723
345 350
 msgid "Debugging is on"
346 351
 msgstr ""
347 352
 
348
-#: clamav-milter.c:1827 clamav-milter.c:2071
353
+#: clamav-milter.c:1777 clamav-milter.c:2021
349 354
 #, c-format
350 355
 msgid "Check clamd server %s - it may be down\n"
351 356
 msgstr ""
352 357
 
353
-#: clamav-milter.c:1832 clamav-milter.c:2080
358
+#: clamav-milter.c:1782 clamav-milter.c:2030
354 359
 msgid "Check clamd server - it may be down\n"
355 360
 msgstr ""
356 361
 
357
-#: clamav-milter.c:1997
362
+#: clamav-milter.c:1947
358 363
 msgid "No free clamd sessions\n"
359 364
 msgstr ""
360 365
 
361
-#: clamav-milter.c:2074
366
+#: clamav-milter.c:2024
362 367
 #, c-format
363 368
 msgid "Check clamd server %s - it may be down"
364 369
 msgstr ""
365 370
 
366
-#: clamav-milter.c:2116
371
+#: clamav-milter.c:2066
367 372
 msgid "findServer: select failed"
368 373
 msgstr ""
369 374
 
370
-#: clamav-milter.c:2125
375
+#: clamav-milter.c:2075
371 376
 #, c-format
372 377
 msgid "findServer: using server %d\n"
373 378
 msgstr ""
374 379
 
375
-#: clamav-milter.c:2130
380
+#: clamav-milter.c:2080
376 381
 msgid "findServer: No response from any server\n"
377 382
 msgstr ""
378 383
 
379
-#: clamav-milter.c:2132
384
+#: clamav-milter.c:2082
380 385
 msgid "findServer: No response from any server"
381 386
 msgstr ""
382 387
 
383
-#: clamav-milter.c:2153
388
+#: clamav-milter.c:2103
384 389
 msgid "clamfi_connect: ctx is null"
385 390
 msgstr ""
386 391
 
387
-#: clamav-milter.c:2158
392
+#: clamav-milter.c:2108
388 393
 msgid "clamfi_connect: hostname is null"
389 394
 msgstr ""
390 395
 
391
-#: clamav-milter.c:2179
396
+#: clamav-milter.c:2129
392 397
 msgid "clamfi_connect: remoteIP is null"
393 398
 msgstr ""
394 399
 
395
-#: clamav-milter.c:2187
400
+#: clamav-milter.c:2137
396 401
 #, c-format
397 402
 msgid "clamfi_connect: connection from %s [%s]"
398 403
 msgstr ""
399 404
 
400
-#: clamav-milter.c:2188
405
+#: clamav-milter.c:2138
401 406
 #, c-format
402 407
 msgid "clamfi_connect: connection from %s [%s]\n"
403 408
 msgstr ""
404 409
 
405
-#: clamav-milter.c:2207
410
+#: clamav-milter.c:2157
406 411
 msgid "Can't get sendmail hostname"
407 412
 msgstr ""
408 413
 
409
-#: clamav-milter.c:2212
414
+#: clamav-milter.c:2162
410 415
 #, c-format
411 416
 msgid "Access Denied: Host Unknown (%s)"
412 417
 msgstr ""
413 418
 
414
-#: clamav-milter.c:2222
419
+#: clamav-milter.c:2172
415 420
 #, c-format
416 421
 msgid "Access Denied: Can't get IP address for (%s)"
417 422
 msgstr ""
418 423
 
419
-#: clamav-milter.c:2239
424
+#: clamav-milter.c:2189
420 425
 #, c-format
421 426
 msgid "Access Denied for %s[%s]"
422 427
 msgstr ""
423 428
 
424
-#: clamav-milter.c:2257
429
+#: clamav-milter.c:2207
425 430
 msgid "clamfi_connect: not scanning outgoing messages"
426 431
 msgstr ""
427 432
 
428
-#: clamav-milter.c:2258
433
+#: clamav-milter.c:2208
429 434
 msgid "clamfi_connect: not scanning outgoing messages\n"
430 435
 msgstr ""
431 436
 
432
-#: clamav-milter.c:2266
437
+#: clamav-milter.c:2216
433 438
 msgid "clamfi_connect: not scanning local messages"
434 439
 msgstr ""
435 440
 
436
-#: clamav-milter.c:2267
441
+#: clamav-milter.c:2217
437 442
 msgid "clamfi_connect: not scanning local messages\n"
438 443
 msgstr ""
439 444
 
440
-#: clamav-milter.c:2301
445
+#: clamav-milter.c:2251
441 446
 #, c-format
442 447
 msgid "hit max-children limit (%u >= %u)\n"
443 448
 msgstr ""
444 449
 
445
-#: clamav-milter.c:2302
450
+#: clamav-milter.c:2252
446 451
 #, c-format
447 452
 msgid "hit max-children limit (%u >= %u): waiting for some to exit\n"
448 453
 msgstr ""
449 454
 
450
-#: clamav-milter.c:2308
455
+#: clamav-milter.c:2258
451 456
 #, c-format
452 457
 msgid "hit max-children limit (%u >= %u)"
453 458
 msgstr ""
454 459
 
455
-#: clamav-milter.c:2309
460
+#: clamav-milter.c:2259
456 461
 #, c-format
457 462
 msgid "hit max-children limit (%u >= %u): waiting for some to exit"
458 463
 msgstr ""
459 464
 
460
-#: clamav-milter.c:2314
465
+#: clamav-milter.c:2264
461 466
 msgid "AV system temporarily overloaded - please try later"
462 467
 msgstr ""
463 468
 
464
-#: clamav-milter.c:2344
469
+#: clamav-milter.c:2294
465 470
 #, c-format
466 471
 msgid ">n_children = %d\n"
467 472
 msgstr ""
468 473
 
469
-#: clamav-milter.c:2350
474
+#: clamav-milter.c:2300
470 475
 msgid "Timeout waiting for a child to die"
471 476
 msgstr ""
472 477
 
473
-#: clamav-milter.c:2352
478
+#: clamav-milter.c:2302
474 479
 msgid "Timeout waiting for a child to die\n"
475 480
 msgstr ""
476 481
 
477
-#: clamav-milter.c:2462
482
+#: clamav-milter.c:2412
478 483
 #, c-format
479 484
 msgid "Failed to delete X-Virus-Status header %d"
480 485
 msgstr ""
481 486
 
482
-#: clamav-milter.c:2490
487
+#: clamav-milter.c:2440
483 488
 msgid "clamfi_eoh"
484 489
 msgstr ""
485 490
 
486
-#: clamav-milter.c:2493
491
+#: clamav-milter.c:2443
487 492
 msgid "clamfi_eoh\n"
488 493
 msgstr ""
489 494
 
490
-#: clamav-milter.c:2550
495
+#: clamav-milter.c:2500
491 496
 msgid "clamfi_eoh: ignoring whitelisted message"
492 497
 msgstr ""
493 498
 
494
-#: clamav-milter.c:2552
499
+#: clamav-milter.c:2502
495 500
 msgid "clamfi_eoh: ignoring whitelisted message\n"
496 501
 msgstr ""
497 502
 
498
-#: clamav-milter.c:2566
503
+#: clamav-milter.c:2516
499 504
 #, c-format
500 505
 msgid "clamfi_envbody: %u bytes"
501 506
 msgstr ""
502 507
 
503
-#: clamav-milter.c:2568
508
+#: clamav-milter.c:2518
504 509
 #, c-format
505 510
 msgid "clamfi_envbody: %u bytes\n"
506 511
 msgstr ""
507 512
 
508
-#: clamav-milter.c:2578 clamav-milter.c:2837
513
+#: clamav-milter.c:2528 clamav-milter.c:2787
509 514
 #, c-format
510 515
 msgid "%s: Message more than StreamMaxLength (%ld) bytes - not scanned"
511 516
 msgstr ""
512 517
 
513
-#: clamav-milter.c:2582 clamav-milter.c:2840
518
+#: clamav-milter.c:2532 clamav-milter.c:2790
514 519
 msgid "Not Scanned - StreamMaxLength exceeded"
515 520
 msgstr ""
516 521
 
517
-#: clamav-milter.c:2681 clamav-milter.c:2703 clamav-milter.c:3765
518
-#: clamav-milter.c:3772
522
+#: clamav-milter.c:2631 clamav-milter.c:2653 clamav-milter.c:3715
523
+#: clamav-milter.c:3722
519 524
 msgid "send failed to clamd"
520 525
 msgstr ""
521 526
 
522
-#: clamav-milter.c:2719
527
+#: clamav-milter.c:2669
523 528
 #, c-format
524 529
 msgid "Wating to read status from fd %d\n"
525 530
 msgstr ""
526 531
 
527
-#: clamav-milter.c:2730
532
+#: clamav-milter.c:2680
528 533
 #, c-format
529 534
 msgid "clamfi_eom: read %s"
530 535
 msgstr ""
531 536
 
532
-#: clamav-milter.c:2731
537
+#: clamav-milter.c:2681
533 538
 #, c-format
534 539
 msgid "clamfi_eom: read %s\n"
535 540
 msgstr ""
536 541
 
537
-#: clamav-milter.c:2739
542
+#: clamav-milter.c:2689
538 543
 msgid "clamfi_eom: read nothing from clamd"
539 544
 msgstr ""
540 545
 
541
-#: clamav-milter.c:2741
546
+#: clamav-milter.c:2691
542 547
 msgid "clamfi_eom: read nothing from clamd\n"
543 548
 msgstr ""
544 549
 
545
-#: clamav-milter.c:2786 clamav-milter.c:2826
550
+#: clamav-milter.c:2736 clamav-milter.c:2776
546 551
 msgid "Error determining host"
547 552
 msgstr ""
548 553
 
549
-#: clamav-milter.c:2845
554
+#: clamav-milter.c:2795
550 555
 msgid "Not Scanned"
551 556
 msgstr ""
552 557
 
553
-#: clamav-milter.c:2867
558
+#: clamav-milter.c:2817
554 559
 msgid "Infected"
555 560
 msgstr ""
556 561
 
557
-#: clamav-milter.c:2885
562
+#: clamav-milter.c:2835
558 563
 #, c-format
559 564
 msgid "Intercepted virus from %s to"
560 565
 msgstr ""
561 566
 
562
-#: clamav-milter.c:2979
567
+#: clamav-milter.c:2929
563 568
 msgid ""
564 569
 "Subject: Virus intercepted\n"
565 570
 "\n"
566 571
 msgstr ""
567 572
 
568
-#: clamav-milter.c:3001
573
+#: clamav-milter.c:2951
569 574
 msgid "A message you sent to\n"
570 575
 msgstr ""
571 576
 
572
-#: clamav-milter.c:3008
577
+#: clamav-milter.c:2958
573 578
 #, c-format
574 579
 msgid "The message %1$s sent from %2$s to\n"
575 580
 msgstr ""
576 581
 
577
-#: clamav-milter.c:3011
582
+#: clamav-milter.c:2961
578 583
 #, c-format
579 584
 msgid "A message sent from %s to\n"
580 585
 msgstr ""
581 586
 
582
-#: clamav-milter.c:3016
587
+#: clamav-milter.c:2966
583 588
 #, c-format
584 589
 msgid "contained %s and has not been delivered.\n"
585 590
 msgstr ""
586 591
 
587
-#: clamav-milter.c:3020
592
+#: clamav-milter.c:2970
588 593
 #, c-format
589 594
 msgid ""
590 595
 "\n"
591 596
 "The message in question has been quarantined as %s\n"
592 597
 msgstr ""
593 598
 
594
-#: clamav-milter.c:3023
599
+#: clamav-milter.c:2973
595 600
 #, c-format
596 601
 msgid ""
597 602
 "\n"
... ...
@@ -599,13 +604,13 @@ msgid ""
599 599
 "\n"
600 600
 msgstr ""
601 601
 
602
-#: clamav-milter.c:3026
602
+#: clamav-milter.c:2976
603 603
 msgid ""
604 604
 "For your information, the original message headers were:\n"
605 605
 "\n"
606 606
 msgstr ""
607 607
 
608
-#: clamav-milter.c:3039
608
+#: clamav-milter.c:2989
609 609
 #, c-format
610 610
 msgid ""
611 611
 "\n"
... ...
@@ -613,206 +618,216 @@ msgid ""
613 613
 "%s\t\n"
614 614
 msgstr ""
615 615
 
616
-#: clamav-milter.c:3050
616
+#: clamav-milter.c:3000
617 617
 #, c-format
618 618
 msgid "Quarantined infected mail as %s"
619 619
 msgstr ""
620 620
 
621
-#: clamav-milter.c:3074
621
+#: clamav-milter.c:3024
622 622
 #, c-format
623 623
 msgid "Can't set quarantine user %s"
624 624
 msgstr ""
625 625
 
626
-#: clamav-milter.c:3076
626
+#: clamav-milter.c:3026
627 627
 #, c-format
628 628
 msgid "Can't set quarantine user %s\n"
629 629
 msgstr ""
630 630
 
631
-#: clamav-milter.c:3089
631
+#: clamav-milter.c:3039
632 632
 #, c-format
633 633
 msgid "virus %s detected by ClamAV - http://www.clamav.net"
634 634
 msgstr ""
635 635
 
636
-#: clamav-milter.c:3094
636
+#: clamav-milter.c:3044
637 637
 msgid "Unknown"
638 638
 msgstr ""
639 639
 
640
-#: clamav-milter.c:3096
640
+#: clamav-milter.c:3046
641 641
 #, c-format
642 642
 msgid "%s: incorrect message \"%s\" from clamd"
643 643
 msgstr ""
644 644
 
645
-#: clamav-milter.c:3102
645
+#: clamav-milter.c:3052
646 646
 msgid "Clean"
647 647
 msgstr ""
648 648
 
649
-#: clamav-milter.c:3106
649
+#: clamav-milter.c:3056
650 650
 #, c-format
651 651
 msgid "%s: clean message from %s"
652 652
 msgstr ""
653 653
 
654
-#: clamav-milter.c:3108
654
+#: clamav-milter.c:3058
655 655
 msgid "an unknown sender"
656 656
 msgstr ""
657 657
 
658
-#: clamav-milter.c:3207
658
+#: clamav-milter.c:3157
659 659
 #, c-format
660 660
 msgid "Can't remove clean file %s"
661 661
 msgstr ""
662 662
 
663
-#: clamav-milter.c:3387 clamav-milter.c:3390
663
+#: clamav-milter.c:3337 clamav-milter.c:3340
664 664
 #, c-format
665 665
 msgid "write failure (%u bytes) to %s: %s"
666 666
 msgstr ""
667 667
 
668
-#: clamav-milter.c:3404 clamav-milter.c:3407
668
+#: clamav-milter.c:3354 clamav-milter.c:3357
669 669
 #, c-format
670 670
 msgid "write failure (%u bytes) to clamd: %s"
671 671
 msgstr ""
672 672
 
673
-#: clamav-milter.c:3473
673
+#: clamav-milter.c:3423
674 674
 #, c-format
675 675
 msgid "No data received from clamd in %d seconds\n"
676 676
 msgstr ""
677 677
 
678
-#: clamav-milter.c:3495
678
+#: clamav-milter.c:3445
679 679
 #, c-format
680 680
 msgid "Can't stat %s"
681 681
 msgstr ""
682 682
 
683
-#: clamav-milter.c:3506 clamav-milter.c:3933
683
+#: clamav-milter.c:3456 clamav-milter.c:3882
684 684
 #, c-format
685 685
 msgid "Can't open %s"
686 686
 msgstr ""
687 687
 
688
-#: clamav-milter.c:3641
688
+#: clamav-milter.c:3591
689 689
 #, c-format
690 690
 msgid "mkdir %s failed"
691 691
 msgstr ""
692 692
 
693
-#: clamav-milter.c:3654
693
+#: clamav-milter.c:3604
694 694
 #, c-format
695 695
 msgid "mktemp %s failed"
696 696
 msgstr ""
697 697
 
698
-#: clamav-milter.c:3664
698
+#: clamav-milter.c:3614
699 699
 #, c-format
700 700
 msgid "Temporary quarantine file %s creation failed"
701 701
 msgstr ""
702 702
 
703
-#: clamav-milter.c:3784
703
+#: clamav-milter.c:3734
704 704
 msgid "failed to create TCPSocket to talk to clamd"
705 705
 msgstr ""
706 706
 
707
-#: clamav-milter.c:3795 clamav-milter.c:3806
707
+#: clamav-milter.c:3745 clamav-milter.c:3756
708 708
 msgid "recv failed from clamd getting PORT"
709 709
 msgstr ""
710 710
 
711
-#: clamav-milter.c:3817
711
+#: clamav-milter.c:3767
712 712
 #, c-format
713 713
 msgid "Expected port information from clamd, got '%s'"
714 714
 msgstr ""
715 715
 
716
-#: clamav-milter.c:3820
716
+#: clamav-milter.c:3770
717 717
 #, c-format
718 718
 msgid "Expected port information from clamd, got '%s'\n"
719 719
 msgstr ""
720 720
 
721
-#: clamav-milter.c:3841 clamav-milter.c:3844
721
+#: clamav-milter.c:3790 clamav-milter.c:3793
722 722
 #, c-format
723 723
 msgid "Connecting to local port %d - data %d cmd %d\n"
724 724
 msgstr ""
725 725
 
726
-#: clamav-milter.c:3857 clamav-milter.c:3860
726
+#: clamav-milter.c:3806 clamav-milter.c:3809
727 727
 #, c-format
728 728
 msgid "Failed to connect to port %d given by clamd: %s"
729 729
 msgstr ""
730 730
 
731
-#: clamav-milter.c:3945
731
+#: clamav-milter.c:3894
732 732
 #, c-format
733 733
 msgid "Clamd (pid %d) seems to have died"
734 734
 msgstr ""
735 735
 
736
-#: clamav-milter.c:3971
736
+#: clamav-milter.c:3920
737 737
 #, c-format
738 738
 msgid "Can't open e-mail template file %s"
739 739
 msgstr ""
740 740
 
741
-#: clamav-milter.c:3980
741
+#: clamav-milter.c:3929
742 742
 #, c-format
743 743
 msgid "Can't stat e-mail template file %s"
744 744
 msgstr ""
745 745
 
746
-#: clamav-milter.c:3989
746
+#: clamav-milter.c:3938
747 747
 msgid "Out of memory"
748 748
 msgstr ""
749 749
 
750
-#: clamav-milter.c:4016
750
+#: clamav-milter.c:3965
751 751
 #, c-format
752 752
 msgid "%s: Unknown clamAV variable \"%c\"\n"
753 753
 msgstr ""
754 754
 
755
-#: clamav-milter.c:4027
755
+#: clamav-milter.c:3976
756 756
 #, c-format
757 757
 msgid "%s: Unterminated sendmail variable \"%s\"\n"
758 758
 msgstr ""
759 759
 
760
-#: clamav-milter.c:4038
760
+#: clamav-milter.c:3987
761 761
 #, c-format
762 762
 msgid "%s: Unknown sendmail variable \"%s\"\n"
763 763
 msgstr ""
764 764
 
765
-#: clamav-milter.c:4104
765
+#: clamav-milter.c:4053
766 766
 #, c-format
767 767
 msgid "Can't rename %1$s to %2$s"
768 768
 msgstr ""
769 769
 
770
-#: clamav-milter.c:4128
770
+#: clamav-milter.c:4077
771 771
 #, c-format
772 772
 msgid "[Virus] %s"
773 773
 msgstr ""
774 774
 
775
-#: clamav-milter.c:4221
775
+#: clamav-milter.c:4170
776 776
 msgid ""
777 777
 "No response from any clamd server - your AV system is not scanning emails\n"
778 778
 msgstr ""
779 779
 
780
-#: clamav-milter.c:4224
780
+#: clamav-milter.c:4173
781 781
 msgid ""
782 782
 "No response from any clamd server - your AV system is not scanning emails"
783 783
 msgstr ""
784 784
 
785
-#: clamav-milter.c:4242
785
+#: clamav-milter.c:4191
786 786
 msgid "Subject: ClamAV Down\n"
787 787
 msgstr ""
788 788
 
789
-#: clamav-milter.c:4245
789
+#: clamav-milter.c:4194
790 790
 msgid ""
791 791
 "This is an automatic message\n"
792 792
 "\n"
793 793
 msgstr ""
794 794
 
795
-#: clamav-milter.c:4248
795
+#: clamav-milter.c:4197
796 796
 msgid "The clamd program cannot be contacted.\n"
797 797
 msgstr ""
798 798
 
799
-#: clamav-milter.c:4250
799
+#: clamav-milter.c:4199
800 800
 msgid "No clamd server can be contacted.\n"
801 801
 msgstr ""
802 802
 
803
-#: clamav-milter.c:4252
803
+#: clamav-milter.c:4201
804 804
 msgid "Emails may not be being scanned, please check your servers.\n"
805 805
 msgstr ""
806 806
 
807
-#: clamav-milter.c:4314
808
-msgid "Freshclam has been run - please restart clamav-milter\n"
807
+#: clamav-milter.c:4269
808
+msgid "Loading new database"
809 809
 msgstr ""
810 810
 
811
-#: clamav-milter.c:4491
811
+#: clamav-milter.c:4450
812 812
 #, c-format
813 813
 msgid "Stopping %s"
814 814
 msgstr ""
815 815
 
816
-#: clamav-milter.c:4532
816
+#: clamav-milter.c:4491
817 817
 msgid "Stopping clamav-milter"
818 818
 msgstr ""
819
+
820
+#: clamav-milter.c:4598
821
+#, c-format
822
+msgid "ClamAV: Protecting against %d viruses"
823
+msgstr ""
824
+
825
+#: clamav-milter.c:4601
826
+#, c-format
827
+msgid "Loaded %s\n"
828
+msgstr ""
... ...
@@ -199,7 +199,7 @@ If the \-t option is not given, clamav\-milter defaults to a hardcoded message.
199 199
 .TP
200 200
 \fB\-\-timeout=n \-T n\fR
201 201
 Used in conjuction with max\-children. If clamav\-milter waits for more than
202
-\fIn\fR seconds (default 60) it proceeds with scanning. Setting \fIn\fR to zero
202
+\fIn\fR seconds (default 0) it proceeds with scanning. Setting \fIn\fR to zero
203 203
 will turn off the timeout and clamav\-milter will wait indefinately for the
204 204
 scanning to quit. In practice the timeout set by sendmail will then take over.
205 205
 .SH "BUGS"