Browse code

Handle cross file system quarantine

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

Nigel Horne authored on 2004/12/13 20:17:17
Showing 3 changed files
... ...
@@ -611,6 +611,10 @@ Changes
611 611
 		Fix compilation error if is SESSION not defined.
612 612
 		Quarantine files could lose the date from the path
613 613
 0.80aa	7/12/04: Daily quarantine directories were not always being created
614
+0.80bb	12/12/04: On Linux store the -ve process group in the pid file to
615
+			ensure that all threads are sent signals
616
+		Support the temporary and quarantine directories being on
617
+			different filesystems
614 618
 
615 619
 INTERNATIONALISATION
616 620
 
... ...
@@ -26,6 +26,9 @@
26 26
  *
27 27
  * Change History:
28 28
  * $Log: clamav-milter.c,v $
29
+ * Revision 1.162  2004/12/13 11:17:15  nigelhorne
30
+ * Handle cross file system quarantine
31
+ *
29 32
  * Revision 1.161  2004/12/07 19:23:48  nigelhorne
30 33
  * Ensure that the qurantine daily directory is created
31 34
  *
... ...
@@ -494,9 +497,9 @@
494 494
  * Revision 1.6  2003/09/28 16:37:23  nigelhorne
495 495
  * Added -f flag use MaxThreads if --max-children not set
496 496
  */
497
-static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.161 2004/12/07 19:23:48 nigelhorne Exp $";
497
+static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.162 2004/12/13 11:17:15 nigelhorne Exp $";
498 498
 
499
-#define	CM_VERSION	"0.80aa"
499
+#define	CM_VERSION	"0.80bb"
500 500
 
501 501
 /*#define	CONFDIR	"/usr/local/etc"*/
502 502
 
... ...
@@ -545,6 +548,7 @@ static	char	const	rcsid[] = "$Id: clamav-milter.c,v 1.161 2004/12/07 19:23:48 ni
545 545
 #include <sys/param.h>
546 546
 
547 547
 #ifdef	C_LINUX
548
+#include <sys/sendfile.h>
548 549
 #include <libintl.h>
549 550
 #include <locale.h>
550 551
 
... ...
@@ -705,6 +709,7 @@ static	int	connect2clamd(struct privdata *privdata);
705 705
 static	void	checkClamd(void);
706 706
 static	int	sendtemplate(SMFICTX *ctx, const char *filename, FILE *sendmail, const char *virusname);
707 707
 static	int	qfile(struct privdata *privdata, const char *sendmailId, const char *virusname);
708
+static	int	move(const char *oldfile, const char *newfile);
708 709
 static	void	setsubject(SMFICTX *ctx, const char *virusname);
709 710
 static	int	clamfi_gethostbyname(const char *hostname, struct hostent *hp, char *buf, size_t len);
710 711
 static	int	isLocalAddr(in_addr_t addr);
... ...
@@ -1781,7 +1786,12 @@ main(int argc, char **argv)
1781 1781
 					pidfile);
1782 1782
 			cli_warnmsg(_("Can't save PID in file %s\n"), pidfile);
1783 1783
 		} else {
1784
+#ifdef	C_LINUX
1785
+			/* Ensure that all threads are kill()ed */
1786
+			fprintf(fd, "-%d\n", (int)getpgrp());
1787
+#else
1784 1788
 			fprintf(fd, "%d\n", (int)getpid());
1789
+#endif
1785 1790
 			fclose(fd);
1786 1791
 		}
1787 1792
 		umask(old_umask);
... ...
@@ -4193,12 +4203,7 @@ qfile(struct privdata *privdata, const char *sendmailId, const char *virusname)
4193 4193
 	}
4194 4194
 	cli_dbgmsg("qfile move '%s' to '%s'\n", privdata->filename, newname);
4195 4195
 
4196
-	/*
4197
-	 * FIXME: handle cross file linking failure meaning that we'd have
4198
-	 *	to copy
4199
-	 */
4200
-#ifdef	C_LINUX
4201
-	if(rename(privdata->filename, newname) < 0) {
4196
+	if(move(privdata->filename, newname) < 0) {
4202 4197
 		perror(newname);
4203 4198
 		if(use_syslog)
4204 4199
 			syslog(LOG_WARNING, _("Can't rename %1$s to %2$s"),
... ...
@@ -4206,17 +4211,6 @@ qfile(struct privdata *privdata, const char *sendmailId, const char *virusname)
4206 4206
 		free(newname);
4207 4207
 		return -1;
4208 4208
 	}
4209
-#else
4210
-	if(link(privdata->filename, newname) < 0) {
4211
-		perror(newname);
4212
-		if(use_syslog)
4213
-			syslog(LOG_WARNING, _("Can't rename %1$s to %2$s"),
4214
-				privdata->filename, newname);
4215
-		free(newname);
4216
-		return -1;
4217
-	}
4218
-	unlink(privdata->filename);
4219
-#endif
4220 4209
 	free(privdata->filename);
4221 4210
 	privdata->filename = newname;
4222 4211
 
... ...
@@ -4227,6 +4221,81 @@ qfile(struct privdata *privdata, const char *sendmailId, const char *virusname)
4227 4227
 }
4228 4228
 
4229 4229
 /*
4230
+ * Move oldfile to newfile using the fastest possible method
4231
+ */
4232
+static int
4233
+move(const char *oldfile, const char *newfile)
4234
+{
4235
+	int ret;
4236
+#ifdef	C_LINUX
4237
+	struct stat statb;
4238
+	int fin, fout;
4239
+	off_t offset;
4240
+
4241
+	ret = rename(oldfile, newfile);
4242
+#else
4243
+	FILE *fin, *fout;
4244
+	int c;
4245
+
4246
+	ret = link(oldfile, newfile);
4247
+#endif
4248
+
4249
+	if(ret >= 0)
4250
+		return 0;
4251
+	if((ret < 0) && (errno != EXDEV)) {
4252
+		perror(newfile);
4253
+		return -1;
4254
+	}
4255
+
4256
+#ifdef	C_LINUX	/* >= 2.2 */
4257
+	fin = open(oldfile, O_RDONLY);
4258
+	if(fin < 0) {
4259
+		perror(oldfile);
4260
+		return -1;
4261
+	}
4262
+
4263
+	if(fstat(fin, &statb) < 0) {
4264
+		perror(oldfile);
4265
+		close(fin);
4266
+		return -1;
4267
+	}
4268
+	fout = open(newfile, O_WRONLY|O_CREAT, 0600);
4269
+	if(fout < 0) {
4270
+		perror(newfile);
4271
+		close(fin);
4272
+		return -1;
4273
+	}
4274
+	offset = (off_t)0;
4275
+	ret = sendfile(fout, fin, &offset, statb.st_size);
4276
+	close(fin);
4277
+	if(ret < 0) {
4278
+		perror(newfile);
4279
+		close(fout);
4280
+		unlink(newfile);
4281
+		return -1;
4282
+	}
4283
+	close(fout);
4284
+#else
4285
+	fin = fopen(oldfile, "r");
4286
+	if(fin == NULL)
4287
+		return -1;
4288
+
4289
+	fout = fopen(newfile, "w");
4290
+	if(fout == NULL) {
4291
+		fclose(fin);
4292
+		return -1;
4293
+	}
4294
+	while((c = getc(fin)) != EOF)
4295
+		putc(c, fout);
4296
+
4297
+	fclose(fin);
4298
+	fclose(fout);
4299
+#endif
4300
+
4301
+	return unlink(oldfile);
4302
+}
4303
+
4304
+/*
4230 4305
  * Store the name of the virus in the subject of the e-mail
4231 4306
  */
4232 4307
 static void
... ...
@@ -4248,6 +4317,7 @@ setsubject(SMFICTX *ctx, const char *virusname)
4248 4248
 /*
4249 4249
  * TODO: gethostbyname_r is non-standard so different operating
4250 4250
  * systems do it in different ways. Need more examples
4251
+ * Perhaps we could use res_search()?
4251 4252
  *
4252 4253
  * Returns 0 for success
4253 4254
  */
... ...
@@ -4683,7 +4753,8 @@ static int
4683 4683
 loadDatabase(void)
4684 4684
 {
4685 4685
 	extern const char *cl_retdbdir(void);	/* FIXME: should be included */
4686
-	int ret, signatures, v;
4686
+	int ret, v;
4687
+	unsigned int signatures;
4687 4688
 	time_t t;
4688 4689
 	char *daily, *ptr;
4689 4690
 	struct cl_cvd *d;
... ...
@@ -4756,7 +4827,7 @@ loadDatabase(void)
4756 4756
 		return -1;
4757 4757
 	}
4758 4758
 	if(use_syslog)
4759
-		syslog(LOG_INFO, _("ClamAV: Protecting against %d viruses"), signatures);
4759
+		syslog(LOG_INFO, _("ClamAV: Protecting against %u viruses"), signatures);
4760 4760
 
4761 4761
 	if(use_syslog)
4762 4762
 		syslog(LOG_INFO, _("Loaded %s\n"), clamav_version);
... ...
@@ -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-06 22:31+0000\n"
11
+"POT-Creation-Date: 2004-12-13 11:16+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,621 +16,621 @@ msgstr ""
16 16
 "Content-Type: text/plain; charset=CHARSET\n"
17 17
 "Content-Transfer-Encoding: 8bit\n"
18 18
 
19
-#: clamav-milter.c:883
19
+#: clamav-milter.c:888
20 20
 msgid "\t--advisory\t\t-A\tFlag viruses rather than deleting them."
21 21
 msgstr ""
22 22
 
23
-#: clamav-milter.c:884
23
+#: clamav-milter.c:889
24 24
 msgid "\t--bounce\t\t-b\tSend a failure message to the sender."
25 25
 msgstr ""
26 26
 
27
-#: clamav-milter.c:885
27
+#: clamav-milter.c:890
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:886
33
+#: clamav-milter.c:891
34 34
 msgid "\t--config-file=FILE\t-c FILE\tRead configuration from FILE."
35 35
 msgstr ""
36 36
 
37
-#: clamav-milter.c:887
37
+#: clamav-milter.c:892
38 38
 msgid "\t--debug\t\t\t-D\tPrint debug messages."
39 39
 msgstr ""
40 40
 
41
-#: clamav-milter.c:888
41
+#: clamav-milter.c:893
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:889
46
+#: clamav-milter.c:894
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:890
52
+#: clamav-milter.c:895
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:891
56
+#: clamav-milter.c:896
57 57
 msgid "\t--from=EMAIL\t\t-a EMAIL\tError messages come from here."
58 58
 msgstr ""
59 59
 
60
-#: clamav-milter.c:892
60
+#: clamav-milter.c:897
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:893
64
+#: clamav-milter.c:898
65 65
 msgid "\t--help\t\t\t-h\tThis message."
66 66
 msgstr ""
67 67
 
68
-#: clamav-milter.c:894
68
+#: clamav-milter.c:899
69 69
 msgid "\t--headers\t\t-H\tInclude original message headers in the report."
70 70
 msgstr ""
71 71
 
72
-#: clamav-milter.c:895
72
+#: clamav-milter.c:900
73 73
 msgid "\t--internal\t\t-I\tUse the internal scanner."
74 74
 msgstr ""
75 75
 
76
-#: clamav-milter.c:896
76
+#: clamav-milter.c:901
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:897
80
+#: clamav-milter.c:902
81 81
 msgid "\t--max-childen\t\t-m\tMaximum number of concurrent scans."
82 82
 msgstr ""
83 83
 
84
-#: clamav-milter.c:898
84
+#: clamav-milter.c:903
85 85
 msgid "\t--outgoing\t\t-o\tScan outgoing messages from this machine."
86 86
 msgstr ""
87 87
 
88
-#: clamav-milter.c:899
88
+#: clamav-milter.c:904
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:900
92
+#: clamav-milter.c:905
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:901
96
+#: clamav-milter.c:906
97 97
 msgid "\t--pidfile=FILE\t\t-i FILE\tLocation of pidfile."
98 98
 msgstr ""
99 99
 
100
-#: clamav-milter.c:902
100
+#: clamav-milter.c:907
101 101
 msgid "\t--postmaster\t\t-p EMAIL\tPostmaster address [default=postmaster]."
102 102
 msgstr ""
103 103
 
104
-#: clamav-milter.c:903
104
+#: clamav-milter.c:908
105 105
 msgid "\t--postmaster-only\t-P\tSend warnings only to the postmaster."
106 106
 msgstr ""
107 107
 
108
-#: clamav-milter.c:904
108
+#: clamav-milter.c:909
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:905
112
+#: clamav-milter.c:910
113 113
 msgid "\t--quarantine=USER\t-Q EMAIL\tQuanrantine e-mail account."
114 114
 msgstr ""
115 115
 
116
-#: clamav-milter.c:906
116
+#: clamav-milter.c:911
117 117
 msgid "\t--quarantine-dir=DIR\t-U DIR\tDirectory to store infected emails."
118 118
 msgstr ""
119 119
 
120
-#: clamav-milter.c:907
120
+#: clamav-milter.c:912
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:908
126
+#: clamav-milter.c:913
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:909
130
+#: clamav-milter.c:914
131 131
 msgid "\t--signature-file=FILE\t-F FILE\tLocation of signature file."
132 132
 msgstr ""
133 133
 
134
-#: clamav-milter.c:910
134
+#: clamav-milter.c:915
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:911
138
+#: clamav-milter.c:916
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:912
142
+#: clamav-milter.c:917
143 143
 msgid "\t--version\t\t-V\tPrint the version number of this software."
144 144
 msgstr ""
145 145
 
146
-#: clamav-milter.c:914
146
+#: clamav-milter.c:919
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:916
150
+#: clamav-milter.c:921
151 151
 msgid ""
152 152
 "\n"
153 153
 "For more information type \"man clamav-milter\"."
154 154
 msgstr ""
155 155
 
156
-#: clamav-milter.c:917
156
+#: clamav-milter.c:922
157 157
 msgid "Report bugs to bugs@clamav.net."
158 158
 msgstr ""
159 159
 
160
-#: clamav-milter.c:1209
160
+#: clamav-milter.c:1214
161 161
 #, c-format
162 162
 msgid "%s: No socket-addr given\n"
163 163
 msgstr ""
164 164
 
165
-#: clamav-milter.c:1218
165
+#: clamav-milter.c:1223
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:1257
170
+#: clamav-milter.c:1262
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:1266
177
+#: clamav-milter.c:1271
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:1277
182
+#: clamav-milter.c:1282
183 183
 #, c-format
184 184
 msgid "%s: AllowSupplementaryGroups: initgroups not supported.\n"
185 185
 msgstr ""
186 186
 
187
-#: clamav-milter.c:1294
187
+#: clamav-milter.c:1299
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:1297
192
+#: clamav-milter.c:1302
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:1299
197
+#: clamav-milter.c:1304
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:1304
202
+#: clamav-milter.c:1309
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:1312
207
+#: clamav-milter.c:1317
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:1318
212
+#: clamav-milter.c:1323
213 213
 #, c-format
214 214
 msgid "%s: the quarantine directory must not contain the string 'ERROR'\n"
215 215
 msgstr ""
216 216
 
217
-#: clamav-milter.c:1324
217
+#: clamav-milter.c:1329
218 218
 #, c-format
219 219
 msgid "%s: the quarantine directory must not contain the string 'FOUND'\n"
220 220
 msgstr ""
221 221
 
222
-#: clamav-milter.c:1330
222
+#: clamav-milter.c:1335
223 223
 #, c-format
224 224
 msgid "%s: the quarantine directory must not contain the string 'OK'\n"
225 225
 msgstr ""
226 226
 
227
-#: clamav-milter.c:1347
227
+#: clamav-milter.c:1352
228 228
 #, c-format
229 229
 msgid "%s: insecure quarantine directory %s (mode 0%o)\n"
230 230
 msgstr ""
231 231
 
232
-#: clamav-milter.c:1373
232
+#: clamav-milter.c:1378
233 233
 #, c-format
234 234
 msgid "%s: ReadTimeout must not be negative in %s\n"
235 235
 msgstr ""
236 236
 
237
-#: clamav-milter.c:1381
237
+#: clamav-milter.c:1386
238 238
 #, c-format
239 239
 msgid "%s: StreamMaxLength must not be negative in %s\n"
240 240
 msgstr ""
241 241
 
242
-#: clamav-milter.c:1404
242
+#: clamav-milter.c:1409
243 243
 #, c-format
244 244
 msgid ""
245 245
 "%s: (-q && !LogSyslog): warning - all interception message methods are off\n"
246 246
 msgstr ""
247 247
 
248
-#: clamav-milter.c:1414
248
+#: clamav-milter.c:1419
249 249
 #, c-format
250 250
 msgid "%s: ScanMail not defined in %s (needed with --internal)\n"
251 251
 msgstr ""
252 252
 
253
-#: clamav-milter.c:1419
253
+#: clamav-milter.c:1424
254 254
 #, c-format
255 255
 msgid "%s: --max-children must be given in internal mode\n"
256 256
 msgstr ""
257 257
 
258
-#: clamav-milter.c:1423
258
+#: clamav-milter.c:1428
259 259
 #, c-format
260 260
 msgid "%s: --timeout must not be given in internal mode\n"
261 261
 msgstr ""
262 262
 
263
-#: clamav-milter.c:1436
263
+#: clamav-milter.c:1441
264 264
 #, c-format
265 265
 msgid "%s: You can select one server type only (local/TCP) in %s\n"
266 266
 msgstr ""
267 267
 
268
-#: clamav-milter.c:1446
268
+#: clamav-milter.c:1451
269 269
 #, c-format
270 270
 msgid "The connection from sendmail to %s (%s) must not\n"
271 271
 msgstr ""
272 272
 
273
-#: clamav-milter.c:1448
273
+#: clamav-milter.c:1453
274 274
 #, c-format
275 275
 msgid "be the same as the connection to clamd (%s) in %s\n"
276 276
 msgstr ""
277 277
 
278
-#: clamav-milter.c:1458 clamav-milter.c:1481
278
+#: clamav-milter.c:1463 clamav-milter.c:1486
279 279
 #, c-format
280 280
 msgid "Can't talk to clamd server via %s\n"
281 281
 msgstr ""
282 282
 
283
-#: clamav-milter.c:1460 clamav-milter.c:1483
283
+#: clamav-milter.c:1465 clamav-milter.c:1488
284 284
 #, c-format
285 285
 msgid "Check your entry for LocalSocket in %s\n"
286 286
 msgstr ""
287 287
 
288
-#: clamav-milter.c:1494
288
+#: clamav-milter.c:1499
289 289
 msgid "Can't create a clamd session"
290 290
 msgstr ""
291 291
 
292
-#: clamav-milter.c:1511
292
+#: clamav-milter.c:1516
293 293
 #, c-format
294 294
 msgid ""
295 295
 "%s: --quarantine-dir not supported for remote scanning - use --quarantine\n"
296 296
 msgstr ""
297 297
 
298
-#: clamav-milter.c:1526
298
+#: clamav-milter.c:1531
299 299
 #, c-format
300 300
 msgid "%s: hostname %s is longer than %d characters\n"
301 301
 msgstr ""
302 302
 
303
-#: clamav-milter.c:1545
303
+#: clamav-milter.c:1550
304 304
 #, c-format
305 305
 msgid "%s: --max-children must be given in sessions mode\n"
306 306
 msgstr ""
307 307
 
308
-#: clamav-milter.c:1568
308
+#: clamav-milter.c:1573
309 309
 #, c-format
310 310
 msgid "%s: Unknown host %s\n"
311 311
 msgstr ""
312 312
 
313
-#: clamav-milter.c:1580
313
+#: clamav-milter.c:1585
314 314
 #, c-format
315 315
 msgid "Can't talk to clamd server %s on port %d\n"
316 316
 msgstr ""
317 317
 
318
-#: clamav-milter.c:1597
318
+#: clamav-milter.c:1602
319 319
 msgid "Can't find any active clamd servers\n"
320 320
 msgstr ""
321 321
 
322
-#: clamav-milter.c:1598 clamav-milter.c:1604
322
+#: clamav-milter.c:1603 clamav-milter.c:1609
323 323
 #, c-format
324 324
 msgid "Check your entry for TCPSocket in %s\n"
325 325
 msgstr ""
326 326
 
327
-#: clamav-milter.c:1603
327
+#: clamav-milter.c:1608
328 328
 msgid "Can't find any clamd servers\n"
329 329
 msgstr ""
330 330
 
331
-#: clamav-milter.c:1610
331
+#: clamav-milter.c:1615
332 332
 #, c-format
333 333
 msgid "%s: You must select server type (local/TCP) in %s\n"
334 334
 msgstr ""
335 335
 
336
-#: clamav-milter.c:1666
336
+#: clamav-milter.c:1671
337 337
 #, c-format
338 338
 msgid "When debugging it is recommended that you use Foreground mode in %s\n"
339 339
 msgstr ""
340 340
 
341
-#: clamav-milter.c:1667
341
+#: clamav-milter.c:1672
342 342
 msgid "\tso that you can see all of the messages"
343 343
 msgstr ""
344 344
 
345
-#: clamav-milter.c:1768
345
+#: clamav-milter.c:1773
346 346
 msgid "Starting clamav-milter"
347 347
 msgstr ""
348 348
 
349
-#: clamav-milter.c:1777
349
+#: clamav-milter.c:1782
350 350
 #, c-format
351 351
 msgid "Can't save PID in file %s"
352 352
 msgstr ""
353 353
 
354
-#: clamav-milter.c:1779
354
+#: clamav-milter.c:1784
355 355
 #, c-format
356 356
 msgid "Can't save PID in file %s\n"
357 357
 msgstr ""
358 358
 
359
-#: clamav-milter.c:1807
359
+#: clamav-milter.c:1817
360 360
 #, c-format
361 361
 msgid "%s: smfi_setconn failed\n"
362 362
 msgstr ""
363 363
 
364
-#: clamav-milter.c:1820
364
+#: clamav-milter.c:1830
365 365
 #, c-format
366 366
 msgid "Starting %s"
367 367
 msgstr ""
368 368
 
369
-#: clamav-milter.c:1823
369
+#: clamav-milter.c:1833
370 370
 msgid "Debugging is on"
371 371
 msgstr ""
372 372
 
373
-#: clamav-milter.c:1879 clamav-milter.c:2136
373
+#: clamav-milter.c:1889 clamav-milter.c:2146
374 374
 #, c-format
375 375
 msgid "Check clamd server %s - it may be down\n"
376 376
 msgstr ""
377 377
 
378
-#: clamav-milter.c:1884 clamav-milter.c:2145
378
+#: clamav-milter.c:1894 clamav-milter.c:2155
379 379
 msgid "Check clamd server - it may be down\n"
380 380
 msgstr ""
381 381
 
382
-#: clamav-milter.c:2059
382
+#: clamav-milter.c:2069
383 383
 msgid "No free clamd sessions\n"
384 384
 msgstr ""
385 385
 
386
-#: clamav-milter.c:2139
386
+#: clamav-milter.c:2149
387 387
 #, c-format
388 388
 msgid "Check clamd server %s - it may be down"
389 389
 msgstr ""
390 390
 
391
-#: clamav-milter.c:2181
391
+#: clamav-milter.c:2191
392 392
 msgid "findServer: select failed"
393 393
 msgstr ""
394 394
 
395
-#: clamav-milter.c:2190
395
+#: clamav-milter.c:2200
396 396
 #, c-format
397 397
 msgid "findServer: using server %d\n"
398 398
 msgstr ""
399 399
 
400
-#: clamav-milter.c:2195
400
+#: clamav-milter.c:2205
401 401
 msgid "findServer: No response from any server\n"
402 402
 msgstr ""
403 403
 
404
-#: clamav-milter.c:2197
404
+#: clamav-milter.c:2207
405 405
 msgid "findServer: No response from any server"
406 406
 msgstr ""
407 407
 
408
-#: clamav-milter.c:2218
408
+#: clamav-milter.c:2228
409 409
 msgid "clamfi_connect: ctx is null"
410 410
 msgstr ""
411 411
 
412
-#: clamav-milter.c:2223
412
+#: clamav-milter.c:2233
413 413
 msgid "clamfi_connect: hostname is null"
414 414
 msgstr ""
415 415
 
416
-#: clamav-milter.c:2244
416
+#: clamav-milter.c:2254
417 417
 msgid "clamfi_connect: remoteIP is null"
418 418
 msgstr ""
419 419
 
420
-#: clamav-milter.c:2253
420
+#: clamav-milter.c:2263
421 421
 #, c-format
422 422
 msgid "clamfi_connect: connection from %s"
423 423
 msgstr ""
424 424
 
425
-#: clamav-milter.c:2254
425
+#: clamav-milter.c:2264
426 426
 #, c-format
427 427
 msgid "clamfi_connect: connection from %s\n"
428 428
 msgstr ""
429 429
 
430
-#: clamav-milter.c:2257
430
+#: clamav-milter.c:2267
431 431
 #, c-format
432 432
 msgid "clamfi_connect: connection from %s [%s]"
433 433
 msgstr ""
434 434
 
435
-#: clamav-milter.c:2258
435
+#: clamav-milter.c:2268
436 436
 #, c-format
437 437
 msgid "clamfi_connect: connection from %s [%s]\n"
438 438
 msgstr ""
439 439
 
440
-#: clamav-milter.c:2278
440
+#: clamav-milter.c:2288
441 441
 msgid "Can't get sendmail hostname"
442 442
 msgstr ""
443 443
 
444
-#: clamav-milter.c:2283
444
+#: clamav-milter.c:2293
445 445
 #, c-format
446 446
 msgid "Access Denied: Host Unknown (%s)"
447 447
 msgstr ""
448 448
 
449
-#: clamav-milter.c:2293
449
+#: clamav-milter.c:2303
450 450
 #, c-format
451 451
 msgid "Access Denied: Can't get IP address for (%s)"
452 452
 msgstr ""
453 453
 
454
-#: clamav-milter.c:2310
454
+#: clamav-milter.c:2320
455 455
 #, c-format
456 456
 msgid "Access Denied for %s[%s]"
457 457
 msgstr ""
458 458
 
459
-#: clamav-milter.c:2328
459
+#: clamav-milter.c:2338
460 460
 msgid "clamfi_connect: not scanning outgoing messages"
461 461
 msgstr ""
462 462
 
463
-#: clamav-milter.c:2329
463
+#: clamav-milter.c:2339
464 464
 msgid "clamfi_connect: not scanning outgoing messages\n"
465 465
 msgstr ""
466 466
 
467
-#: clamav-milter.c:2337
467
+#: clamav-milter.c:2347
468 468
 msgid "clamfi_connect: not scanning local messages"
469 469
 msgstr ""
470 470
 
471
-#: clamav-milter.c:2338
471
+#: clamav-milter.c:2348
472 472
 msgid "clamfi_connect: not scanning local messages\n"
473 473
 msgstr ""
474 474
 
475
-#: clamav-milter.c:2370
475
+#: clamav-milter.c:2380
476 476
 #, c-format
477 477
 msgid "hit max-children limit (%u >= %u)\n"
478 478
 msgstr ""
479 479
 
480
-#: clamav-milter.c:2371
480
+#: clamav-milter.c:2381
481 481
 #, c-format
482 482
 msgid "hit max-children limit (%u >= %u): waiting for some to exit\n"
483 483
 msgstr ""
484 484
 
485
-#: clamav-milter.c:2377
485
+#: clamav-milter.c:2387
486 486
 #, c-format
487 487
 msgid "hit max-children limit (%u >= %u)"
488 488
 msgstr ""
489 489
 
490
-#: clamav-milter.c:2378
490
+#: clamav-milter.c:2388
491 491
 #, c-format
492 492
 msgid "hit max-children limit (%u >= %u): waiting for some to exit"
493 493
 msgstr ""
494 494
 
495
-#: clamav-milter.c:2383
495
+#: clamav-milter.c:2393
496 496
 msgid "AV system temporarily overloaded - please try later"
497 497
 msgstr ""
498 498
 
499
-#: clamav-milter.c:2416
499
+#: clamav-milter.c:2426
500 500
 #, c-format
501 501
 msgid ">n_children = %d\n"
502 502
 msgstr ""
503 503
 
504
-#: clamav-milter.c:2422
504
+#: clamav-milter.c:2432
505 505
 msgid "Timeout waiting for a child to die"
506 506
 msgstr ""
507 507
 
508
-#: clamav-milter.c:2424
508
+#: clamav-milter.c:2434
509 509
 msgid "Timeout waiting for a child to die\n"
510 510
 msgstr ""
511 511
 
512
-#: clamav-milter.c:2534
512
+#: clamav-milter.c:2544
513 513
 #, c-format
514 514
 msgid "Failed to delete X-Virus-Status header %d"
515 515
 msgstr ""
516 516
 
517
-#: clamav-milter.c:2562
517
+#: clamav-milter.c:2572
518 518
 msgid "clamfi_eoh"
519 519
 msgstr ""
520 520
 
521
-#: clamav-milter.c:2565
521
+#: clamav-milter.c:2575
522 522
 msgid "clamfi_eoh\n"
523 523
 msgstr ""
524 524
 
525
-#: clamav-milter.c:2622
525
+#: clamav-milter.c:2632
526 526
 msgid "clamfi_eoh: ignoring whitelisted message"
527 527
 msgstr ""
528 528
 
529
-#: clamav-milter.c:2624
529
+#: clamav-milter.c:2634
530 530
 msgid "clamfi_eoh: ignoring whitelisted message\n"
531 531
 msgstr ""
532 532
 
533
-#: clamav-milter.c:2638
533
+#: clamav-milter.c:2648
534 534
 #, c-format
535 535
 msgid "clamfi_envbody: %u bytes"
536 536
 msgstr ""
537 537
 
538
-#: clamav-milter.c:2640
538
+#: clamav-milter.c:2650
539 539
 #, c-format
540 540
 msgid "clamfi_envbody: %u bytes\n"
541 541
 msgstr ""
542 542
 
543
-#: clamav-milter.c:2650 clamav-milter.c:2908
543
+#: clamav-milter.c:2660 clamav-milter.c:2918
544 544
 #, c-format
545 545
 msgid "%s: Message more than StreamMaxLength (%ld) bytes - not scanned"
546 546
 msgstr ""
547 547
 
548
-#: clamav-milter.c:2654 clamav-milter.c:2911
548
+#: clamav-milter.c:2664 clamav-milter.c:2921
549 549
 msgid "Not Scanned - StreamMaxLength exceeded"
550 550
 msgstr ""
551 551
 
552
-#: clamav-milter.c:2752
552
+#: clamav-milter.c:2762
553 553
 #, c-format
554 554
 msgid "failed to send SCAN %s command to clamd"
555 555
 msgstr ""
556 556
 
557
-#: clamav-milter.c:2774
557
+#: clamav-milter.c:2784
558 558
 msgid "failed to send SCAN command to clamd"
559 559
 msgstr ""
560 560
 
561
-#: clamav-milter.c:2790
561
+#: clamav-milter.c:2800
562 562
 #, c-format
563 563
 msgid "Wating to read status from fd %d\n"
564 564
 msgstr ""
565 565
 
566
-#: clamav-milter.c:2801
566
+#: clamav-milter.c:2811
567 567
 #, c-format
568 568
 msgid "clamfi_eom: read %s"
569 569
 msgstr ""
570 570
 
571
-#: clamav-milter.c:2802
571
+#: clamav-milter.c:2812
572 572
 #, c-format
573 573
 msgid "clamfi_eom: read %s\n"
574 574
 msgstr ""
575 575
 
576
-#: clamav-milter.c:2810
576
+#: clamav-milter.c:2820
577 577
 msgid "clamfi_eom: read nothing from clamd"
578 578
 msgstr ""
579 579
 
580
-#: clamav-milter.c:2812
580
+#: clamav-milter.c:2822
581 581
 msgid "clamfi_eom: read nothing from clamd\n"
582 582
 msgstr ""
583 583
 
584
-#: clamav-milter.c:2857 clamav-milter.c:2897
584
+#: clamav-milter.c:2867 clamav-milter.c:2907
585 585
 msgid "Error determining host"
586 586
 msgstr ""
587 587
 
588
-#: clamav-milter.c:2916
588
+#: clamav-milter.c:2926
589 589
 msgid "Not Scanned"
590 590
 msgstr ""
591 591
 
592
-#: clamav-milter.c:2943
592
+#: clamav-milter.c:2953
593 593
 msgid "Infected"
594 594
 msgstr ""
595 595
 
596
-#: clamav-milter.c:2961
596
+#: clamav-milter.c:2971
597 597
 #, c-format
598 598
 msgid "Intercepted virus from %s to"
599 599
 msgstr ""
600 600
 
601
-#: clamav-milter.c:3058
601
+#: clamav-milter.c:3068
602 602
 msgid ""
603 603
 "Subject: Virus intercepted\n"
604 604
 "\n"
605 605
 msgstr ""
606 606
 
607
-#: clamav-milter.c:3080
607
+#: clamav-milter.c:3090
608 608
 msgid "A message you sent to\n"
609 609
 msgstr ""
610 610
 
611
-#: clamav-milter.c:3087
611
+#: clamav-milter.c:3097
612 612
 #, c-format
613 613
 msgid "The message %1$s sent from %2$s to\n"
614 614
 msgstr ""
615 615
 
616
-#: clamav-milter.c:3090
616
+#: clamav-milter.c:3100
617 617
 #, c-format
618 618
 msgid "A message sent from %s to\n"
619 619
 msgstr ""
620 620
 
621
-#: clamav-milter.c:3095
621
+#: clamav-milter.c:3105
622 622
 #, c-format
623 623
 msgid "contained %s and has not been delivered.\n"
624 624
 msgstr ""
625 625
 
626
-#: clamav-milter.c:3098
626
+#: clamav-milter.c:3108
627 627
 #, c-format
628 628
 msgid ""
629 629
 "\n"
630 630
 "The message in question has been quarantined as %s\n"
631 631
 msgstr ""
632 632
 
633
-#: clamav-milter.c:3101
633
+#: clamav-milter.c:3111
634 634
 #, c-format
635 635
 msgid ""
636 636
 "\n"
... ...
@@ -638,13 +638,13 @@ msgid ""
638 638
 "\n"
639 639
 msgstr ""
640 640
 
641
-#: clamav-milter.c:3104
641
+#: clamav-milter.c:3114
642 642
 msgid ""
643 643
 "For your information, the original message headers were:\n"
644 644
 "\n"
645 645
 msgstr ""
646 646
 
647
-#: clamav-milter.c:3117
647
+#: clamav-milter.c:3127
648 648
 #, c-format
649 649
 msgid ""
650 650
 "\n"
... ...
@@ -652,234 +652,234 @@ msgid ""
652 652
 "%s\t\n"
653 653
 msgstr ""
654 654
 
655
-#: clamav-milter.c:3128
655
+#: clamav-milter.c:3138
656 656
 #, c-format
657 657
 msgid "Quarantined infected mail as %s"
658 658
 msgstr ""
659 659
 
660
-#: clamav-milter.c:3152
660
+#: clamav-milter.c:3162
661 661
 #, c-format
662 662
 msgid "Can't set quarantine user %s"
663 663
 msgstr ""
664 664
 
665
-#: clamav-milter.c:3154
665
+#: clamav-milter.c:3164
666 666
 #, c-format
667 667
 msgid "Can't set quarantine user %s\n"
668 668
 msgstr ""
669 669
 
670
-#: clamav-milter.c:3167
670
+#: clamav-milter.c:3177
671 671
 #, c-format
672 672
 msgid "virus %s detected by ClamAV - http://www.clamav.net"
673 673
 msgstr ""
674 674
 
675
-#: clamav-milter.c:3172
675
+#: clamav-milter.c:3182
676 676
 msgid "Unknown"
677 677
 msgstr ""
678 678
 
679
-#: clamav-milter.c:3174
679
+#: clamav-milter.c:3184
680 680
 #, c-format
681 681
 msgid "%s: incorrect message \"%s\" from clamd"
682 682
 msgstr ""
683 683
 
684
-#: clamav-milter.c:3180
684
+#: clamav-milter.c:3190
685 685
 msgid "Clean"
686 686
 msgstr ""
687 687
 
688
-#: clamav-milter.c:3184
688
+#: clamav-milter.c:3194
689 689
 #, c-format
690 690
 msgid "%s: clean message from %s"
691 691
 msgstr ""
692 692
 
693
-#: clamav-milter.c:3186
693
+#: clamav-milter.c:3196
694 694
 msgid "an unknown sender"
695 695
 msgstr ""
696 696
 
697
-#: clamav-milter.c:3286
697
+#: clamav-milter.c:3296
698 698
 #, c-format
699 699
 msgid "Can't remove clean file %s"
700 700
 msgstr ""
701 701
 
702
-#: clamav-milter.c:3466 clamav-milter.c:3469
702
+#: clamav-milter.c:3476 clamav-milter.c:3479
703 703
 #, c-format
704 704
 msgid "write failure (%u bytes) to %s: %s"
705 705
 msgstr ""
706 706
 
707
-#: clamav-milter.c:3483 clamav-milter.c:3486
707
+#: clamav-milter.c:3493 clamav-milter.c:3496
708 708
 #, c-format
709 709
 msgid "write failure (%u bytes) to clamd: %s"
710 710
 msgstr ""
711 711
 
712
-#: clamav-milter.c:3552
712
+#: clamav-milter.c:3562
713 713
 #, c-format
714 714
 msgid "No data received from clamd in %d seconds\n"
715 715
 msgstr ""
716 716
 
717
-#: clamav-milter.c:3574
717
+#: clamav-milter.c:3584
718 718
 #, c-format
719 719
 msgid "Can't stat %s"
720 720
 msgstr ""
721 721
 
722
-#: clamav-milter.c:3585 clamav-milter.c:4004
722
+#: clamav-milter.c:3595 clamav-milter.c:4014
723 723
 #, c-format
724 724
 msgid "Can't open %s"
725 725
 msgstr ""
726 726
 
727
-#: clamav-milter.c:3701
727
+#: clamav-milter.c:3711 clamav-milter.c:4179
728 728
 #, c-format
729 729
 msgid "mkdir %s failed"
730 730
 msgstr ""
731 731
 
732
-#: clamav-milter.c:3713
732
+#: clamav-milter.c:3723
733 733
 #, c-format
734 734
 msgid "mktemp %s failed"
735 735
 msgstr ""
736 736
 
737
-#: clamav-milter.c:3723
737
+#: clamav-milter.c:3733
738 738
 #, c-format
739 739
 msgid "Temporary quarantine file %s creation failed"
740 740
 msgstr ""
741 741
 
742
-#: clamav-milter.c:3827
742
+#: clamav-milter.c:3837
743 743
 #, c-format
744 744
 msgid "failed to send STREAM command clamd server %d"
745 745
 msgstr ""
746 746
 
747
-#: clamav-milter.c:3836
747
+#: clamav-milter.c:3846
748 748
 msgid "failed to send STREAM command clamd"
749 749
 msgstr ""
750 750
 
751
-#: clamav-milter.c:3848
751
+#: clamav-milter.c:3858
752 752
 msgid "failed to create TCPSocket to talk to clamd"
753 753
 msgstr ""
754 754
 
755
-#: clamav-milter.c:3860 clamav-milter.c:3874
755
+#: clamav-milter.c:3870 clamav-milter.c:3884
756 756
 msgid "recv failed from clamd getting PORT"
757 757
 msgstr ""
758 758
 
759
-#: clamav-milter.c:3862 clamav-milter.c:3876
759
+#: clamav-milter.c:3872 clamav-milter.c:3886
760 760
 msgid "EOF from clamd getting PORT"
761 761
 msgstr ""
762 762
 
763
-#: clamav-milter.c:3887
763
+#: clamav-milter.c:3897
764 764
 #, c-format
765 765
 msgid "Expected port information from clamd, got '%s'"
766 766
 msgstr ""
767 767
 
768
-#: clamav-milter.c:3890
768
+#: clamav-milter.c:3900
769 769
 #, c-format
770 770
 msgid "Expected port information from clamd, got '%s'\n"
771 771
 msgstr ""
772 772
 
773
-#: clamav-milter.c:3910 clamav-milter.c:3913
773
+#: clamav-milter.c:3920 clamav-milter.c:3923
774 774
 #, c-format
775 775
 msgid "Connecting to local port %d - data %d cmd %d\n"
776 776
 msgstr ""
777 777
 
778
-#: clamav-milter.c:3926 clamav-milter.c:3929
778
+#: clamav-milter.c:3936 clamav-milter.c:3939
779 779
 #, c-format
780 780
 msgid "Failed to connect to port %d given by clamd: %s"
781 781
 msgstr ""
782 782
 
783
-#: clamav-milter.c:4016
783
+#: clamav-milter.c:4026
784 784
 #, c-format
785 785
 msgid "Clamd (pid %d) seems to have died"
786 786
 msgstr ""
787 787
 
788
-#: clamav-milter.c:4042
788
+#: clamav-milter.c:4052
789 789
 #, c-format
790 790
 msgid "Can't open e-mail template file %s"
791 791
 msgstr ""
792 792
 
793
-#: clamav-milter.c:4051
793
+#: clamav-milter.c:4061
794 794
 #, c-format
795 795
 msgid "Can't stat e-mail template file %s"
796 796
 msgstr ""
797 797
 
798
-#: clamav-milter.c:4060
798
+#: clamav-milter.c:4070
799 799
 msgid "Out of memory"
800 800
 msgstr ""
801 801
 
802
-#: clamav-milter.c:4087
802
+#: clamav-milter.c:4097
803 803
 #, c-format
804 804
 msgid "%s: Unknown clamAV variable \"%c\"\n"
805 805
 msgstr ""
806 806
 
807
-#: clamav-milter.c:4098
807
+#: clamav-milter.c:4108
808 808
 #, c-format
809 809
 msgid "%s: Unterminated sendmail variable \"%s\"\n"
810 810
 msgstr ""
811 811
 
812
-#: clamav-milter.c:4109
812
+#: clamav-milter.c:4119
813 813
 #, c-format
814 814
 msgid "%s: Unknown sendmail variable \"%s\"\n"
815 815
 msgstr ""
816 816
 
817
-#: clamav-milter.c:4193
817
+#: clamav-milter.c:4206
818 818
 #, c-format
819 819
 msgid "Can't rename %1$s to %2$s"
820 820
 msgstr ""
821 821
 
822
-#: clamav-milter.c:4203
822
+#: clamav-milter.c:4215
823 823
 #, c-format
824 824
 msgid "File quarantined as %s"
825 825
 msgstr ""
826 826
 
827
-#: clamav-milter.c:4220
827
+#: clamav-milter.c:4307
828 828
 #, c-format
829 829
 msgid "[Virus] %s"
830 830
 msgstr ""
831 831
 
832
-#: clamav-milter.c:4313
832
+#: clamav-milter.c:4401
833 833
 msgid ""
834 834
 "No response from any clamd server - your AV system is not scanning emails\n"
835 835
 msgstr ""
836 836
 
837
-#: clamav-milter.c:4316
837
+#: clamav-milter.c:4404
838 838
 msgid ""
839 839
 "No response from any clamd server - your AV system is not scanning emails"
840 840
 msgstr ""
841 841
 
842
-#: clamav-milter.c:4334
842
+#: clamav-milter.c:4422
843 843
 msgid "Subject: ClamAV Down\n"
844 844
 msgstr ""
845 845
 
846
-#: clamav-milter.c:4337
846
+#: clamav-milter.c:4425
847 847
 msgid ""
848 848
 "This is an automatic message\n"
849 849
 "\n"
850 850
 msgstr ""
851 851
 
852
-#: clamav-milter.c:4340
852
+#: clamav-milter.c:4428
853 853
 msgid "The clamd program cannot be contacted.\n"
854 854
 msgstr ""
855 855
 
856
-#: clamav-milter.c:4342
856
+#: clamav-milter.c:4430
857 857
 msgid "No clamd server can be contacted.\n"
858 858
 msgstr ""
859 859
 
860
-#: clamav-milter.c:4344
860
+#: clamav-milter.c:4432
861 861
 msgid "Emails may not be being scanned, please check your servers.\n"
862 862
 msgstr ""
863 863
 
864
-#: clamav-milter.c:4413
864
+#: clamav-milter.c:4501
865 865
 msgid "Loading new database"
866 866
 msgstr ""
867 867
 
868
-#: clamav-milter.c:4596
868
+#: clamav-milter.c:4684
869 869
 #, c-format
870 870
 msgid "Stopping %s"
871 871
 msgstr ""
872 872
 
873
-#: clamav-milter.c:4637
873
+#: clamav-milter.c:4725
874 874
 msgid "Stopping clamav-milter"
875 875
 msgstr ""
876 876
 
877
-#: clamav-milter.c:4738
877
+#: clamav-milter.c:4827
878 878
 #, c-format
879
-msgid "ClamAV: Protecting against %d viruses"
879
+msgid "ClamAV: Protecting against %u viruses"
880 880
 msgstr ""
881 881
 
882
-#: clamav-milter.c:4741
882
+#: clamav-milter.c:4830
883 883
 #, c-format
884 884
 msgid "Loaded %s\n"
885 885
 msgstr ""