File: pyclamd.html

package info (click to toggle)
pyclamd 0.3.9-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 224 kB
  • ctags: 109
  • sloc: python: 372; makefile: 5
file content (513 lines) | stat: -rw-r--r-- 33,280 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module pyclamd</title>
</head><body bgcolor="#f0f0f8">

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>pyclamd</strong></big></big> (version 0.3.9)</font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/xael/ESPACE_KM/python/pyclamd/pyclamd.py">/home/xael/ESPACE_KM/python/pyclamd/pyclamd.py</a></font></td></tr></table>
    <p><tt>pyclamd.py<br>
&nbsp;<br>
Author&nbsp;:&nbsp;Alexandre&nbsp;Norman&nbsp;-&nbsp;norman()xael.org<br>
Contributors&nbsp;:<br>
&nbsp;-&nbsp;JB&nbsp;:&nbsp;&nbsp;Joe&nbsp;Brandt&nbsp;&nbsp;-&nbsp;brandt.joe&nbsp;()&nbsp;gmail.com<br>
&nbsp;-&nbsp;JS&nbsp;:&nbsp;Joni&nbsp;Salonen&nbsp;-&nbsp;joni.salonen&nbsp;()&nbsp;qindel.com<br>
&nbsp;-&nbsp;PL&nbsp;:&nbsp;&nbsp;Philippe&nbsp;Lagadec&nbsp;-&nbsp;philippe.lagadec()laposte.net<br>
&nbsp;-&nbsp;SK&nbsp;:&nbsp;Scott&nbsp;Kitterman&nbsp;-&nbsp;debian&nbsp;()&nbsp;kitterman.com<br>
&nbsp;-&nbsp;TK&nbsp;:&nbsp;&nbsp;Thomas&nbsp;Kastner&nbsp;-&nbsp;tk()underground8.com<br>
&nbsp;-&nbsp;TKL&nbsp;:&nbsp;Thomas&nbsp;Kluyver&nbsp;-&nbsp;thomas&nbsp;()&nbsp;kluyver.me.uk<br>
&nbsp;-&nbsp;TT&nbsp;:&nbsp;&nbsp;Theodoropoulos&nbsp;Theodoros&nbsp;(TeD&nbsp;TeD)&nbsp;-&nbsp;sbujam()gmail.com<br>
Licence&nbsp;:&nbsp;LGLPv3+<br>
&nbsp;<br>
Usage&nbsp;:<br>
&nbsp;<br>
Test&nbsp;strings&nbsp;:<br>
^^^^^^^^^^^^<br>
&nbsp;<br>
&gt;&gt;&gt;&nbsp;import&nbsp;pyclamd<br>
&gt;&gt;&gt;&nbsp;try:<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd&nbsp;=&nbsp;pyclamd.<a href="#ClamdUnixSocket">ClamdUnixSocket</a>()<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;test&nbsp;if&nbsp;server&nbsp;is&nbsp;reachable<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd.ping()<br>
...&nbsp;except&nbsp;pyclamd.<a href="#ConnectionError">ConnectionError</a>:<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;if&nbsp;failed,&nbsp;test&nbsp;for&nbsp;network&nbsp;socket<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd&nbsp;=&nbsp;pyclamd.<a href="#ClamdNetworkSocket">ClamdNetworkSocket</a>()<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try:<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd.ping()<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;except&nbsp;pyclamd.<a href="#ConnectionError">ConnectionError</a>:<br>
...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise&nbsp;<a href="exceptions.html#ValueError">ValueError</a>('could&nbsp;not&nbsp;connect&nbsp;to&nbsp;clamd&nbsp;server&nbsp;either&nbsp;by&nbsp;unix&nbsp;or&nbsp;network&nbsp;socket')<br>
True<br>
&gt;&gt;&gt;&nbsp;print(cd.<a href="#-version">version</a>().split()[0])<br>
ClamAV<br>
&gt;&gt;&gt;&nbsp;print(cd.reload())<br>
RELOADING<br>
&gt;&gt;&gt;&nbsp;print(cd.stats().split()[0])<br>
POOLS:<br>
&gt;&gt;&gt;&nbsp;void&nbsp;=&nbsp;open('/tmp/EICAR','w').write(cd.EICAR())<br>
&gt;&gt;&gt;&nbsp;void&nbsp;=&nbsp;open('/tmp/NO_EICAR','w').write('no&nbsp;virus&nbsp;in&nbsp;this&nbsp;file')<br>
&gt;&gt;&gt;&nbsp;cd.<a href="#-scan_file">scan_file</a>('/tmp/EICAR')['/tmp/EICAR']<br>
('FOUND',&nbsp;'Eicar-Test-Signature')<br>
&gt;&gt;&gt;&nbsp;cd.<a href="#-scan_file">scan_file</a>('/tmp/NO_EICAR')&nbsp;is&nbsp;None<br>
True<br>
&gt;&gt;&gt;&nbsp;cd.scan_stream(cd.EICAR())['stream']<br>
('FOUND',&nbsp;'Eicar-Test-Signature')<br>
&gt;&gt;&gt;&nbsp;directory&nbsp;=&nbsp;cd.<a href="#-contscan_file">contscan_file</a>('/tmp/')<br>
&gt;&gt;&gt;&nbsp;directory['/tmp/EICAR']<br>
('FOUND',&nbsp;'Eicar-Test-Signature')<br>
&gt;&gt;&gt;&nbsp;#&nbsp;Testing&nbsp;encoding&nbsp;with&nbsp;non&nbsp;latin&nbsp;characters&nbsp;(Chinese&nbsp;ideograms&nbsp;taken&nbsp;from&nbsp;random&nbsp;site,&nbsp;don't&nbsp;know&nbsp;what&nbsp;it&nbsp;mean,&nbsp;sorry)<br>
&gt;&gt;&gt;&nbsp;void&nbsp;=&nbsp;open('/tmp/EICAR-éèô请收藏我们的网址','w').write(cd.EICAR())<br>
&gt;&gt;&gt;&nbsp;r&nbsp;=&nbsp;cd.<a href="#-scan_file">scan_file</a>('/tmp/EICAR-éèô请收藏我们的网址')<br>
&gt;&gt;&gt;&nbsp;print(list(r.keys())[0])<br>
/tmp/EICAR-éèô请收藏我们的网址<br>
&gt;&gt;&gt;&nbsp;print(r['/tmp/EICAR-éèô请收藏我们的网址'])<br>
('FOUND',&nbsp;'Eicar-Test-Signature')<br>
&gt;&gt;&gt;&nbsp;import&nbsp;os<br>
&gt;&gt;&gt;&nbsp;os.remove('/tmp/EICAR')<br>
&gt;&gt;&gt;&nbsp;os.remove('/tmp/NO_EICAR')<br>
&gt;&gt;&gt;&nbsp;os.remove('/tmp/EICAR-éèô请收藏我们的网址')</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="base64.html">base64</a><br>
</td><td width="25%" valign=top><a href="socket.html">socket</a><br>
</td><td width="25%" valign=top><a href="struct.html">struct</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="exceptions.html#ValueError">exceptions.ValueError</a>(<a href="exceptions.html#StandardError">exceptions.StandardError</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="pyclamd.html#BufferTooLongError">BufferTooLongError</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="pyclamd.html#_ClamdGeneric">_ClamdGeneric</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="pyclamd.html#ClamdNetworkSocket">ClamdNetworkSocket</a>
</font></dt><dt><font face="helvetica, arial"><a href="pyclamd.html#ClamdUnixSocket">ClamdUnixSocket</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="socket.html#error">socket.error</a>(<a href="exceptions.html#IOError">exceptions.IOError</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="pyclamd.html#ConnectionError">ConnectionError</a>
</font></dt></dl>
</dd>
</dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="BufferTooLongError">class <strong>BufferTooLongError</strong></a>(<a href="exceptions.html#ValueError">exceptions.ValueError</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Class&nbsp;for&nbsp;errors&nbsp;with&nbsp;clamd&nbsp;using&nbsp;INSTREAM&nbsp;with&nbsp;a&nbsp;buffer&nbsp;lenght&nbsp;&gt;&nbsp;StreamMaxLength&nbsp;in&nbsp;/etc/clamav/clamd.conf<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="pyclamd.html#BufferTooLongError">BufferTooLongError</a></dd>
<dd><a href="exceptions.html#ValueError">exceptions.ValueError</a></dd>
<dd><a href="exceptions.html#StandardError">exceptions.StandardError</a></dd>
<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Methods inherited from <a href="exceptions.html#ValueError">exceptions.ValueError</a>:<br>
<dl><dt><a name="BufferTooLongError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#BufferTooLongError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;help(type(x))&nbsp;for&nbsp;signature</tt></dd></dl>

<hr>
Data and other attributes inherited from <a href="exceptions.html#ValueError">exceptions.ValueError</a>:<br>
<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#BufferTooLongError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;object&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>

<hr>
Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
<dl><dt><a name="BufferTooLongError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#BufferTooLongError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>

<dl><dt><a name="BufferTooLongError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#BufferTooLongError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>

<dl><dt><a name="BufferTooLongError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#BufferTooLongError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>

<dl><dt><a name="BufferTooLongError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#BufferTooLongError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
&nbsp;<br>
Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>

<dl><dt><a name="BufferTooLongError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>

<dl><dt><a name="BufferTooLongError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#BufferTooLongError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>

<dl><dt><a name="BufferTooLongError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#BufferTooLongError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>

<dl><dt><a name="BufferTooLongError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>

<dl><dt><a name="BufferTooLongError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#BufferTooLongError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>

<dl><dt><a name="BufferTooLongError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>

<hr>
Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
</dl>
<dl><dt><strong>args</strong></dt>
</dl>
<dl><dt><strong>message</strong></dt>
</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="ClamdNetworkSocket">class <strong>ClamdNetworkSocket</strong></a>(<a href="pyclamd.html#_ClamdGeneric">_ClamdGeneric</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Class&nbsp;for&nbsp;using&nbsp;clamd&nbsp;with&nbsp;a&nbsp;network&nbsp;socket<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="pyclamd.html#ClamdNetworkSocket">ClamdNetworkSocket</a></dd>
<dd><a href="pyclamd.html#_ClamdGeneric">_ClamdGeneric</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="ClamdNetworkSocket-__init__"><strong>__init__</strong></a>(self, host<font color="#909090">='127.0.0.1'</font>, port<font color="#909090">=3310</font>, timeout<font color="#909090">=None</font>)</dt><dd><tt>Network&nbsp;Class&nbsp;initialisation<br>
host&nbsp;(string)&nbsp;:&nbsp;hostname&nbsp;or&nbsp;ip&nbsp;address<br>
port&nbsp;(int)&nbsp;:&nbsp;TCP&nbsp;port<br>
timeout&nbsp;(float&nbsp;or&nbsp;None)&nbsp;:&nbsp;socket&nbsp;timeout</tt></dd></dl>

<hr>
Methods inherited from <a href="pyclamd.html#_ClamdGeneric">_ClamdGeneric</a>:<br>
<dl><dt><a name="ClamdNetworkSocket-EICAR"><strong>EICAR</strong></a>(self)</dt><dd><tt>returns&nbsp;Eicar&nbsp;test&nbsp;string</tt></dd></dl>

<dl><dt><a name="ClamdNetworkSocket-contscan_file"><strong>contscan_file</strong></a>(self, file)</dt><dd><tt>Scan&nbsp;a&nbsp;file&nbsp;or&nbsp;directory&nbsp;given&nbsp;by&nbsp;filename<br>
Do&nbsp;not&nbsp;stop&nbsp;on&nbsp;<a href="socket.html#error">error</a>&nbsp;or&nbsp;virus&nbsp;found.<br>
Scan&nbsp;with&nbsp;archive&nbsp;support&nbsp;enabled.<br>
&nbsp;<br>
file&nbsp;(string):&nbsp;filename&nbsp;or&nbsp;directory&nbsp;(MUST&nbsp;BE&nbsp;ABSOLUTE&nbsp;PATH&nbsp;!)<br>
&nbsp;<br>
return&nbsp;either&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;(dict):&nbsp;{filename1:&nbsp;('FOUND',&nbsp;'virusname'),&nbsp;filename2:&nbsp;('ERROR',&nbsp;'reason')}<br>
&nbsp;&nbsp;-&nbsp;None:&nbsp;if&nbsp;no&nbsp;virus&nbsp;found<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdNetworkSocket-multiscan_file"><strong>multiscan_file</strong></a>(self, file)</dt><dd><tt>Scan&nbsp;a&nbsp;file&nbsp;or&nbsp;directory&nbsp;given&nbsp;by&nbsp;filename&nbsp;using&nbsp;multiple&nbsp;threads&nbsp;(faster&nbsp;on&nbsp;SMP&nbsp;machines).<br>
Do&nbsp;not&nbsp;stop&nbsp;on&nbsp;<a href="socket.html#error">error</a>&nbsp;or&nbsp;virus&nbsp;found.<br>
Scan&nbsp;with&nbsp;archive&nbsp;support&nbsp;enabled.<br>
&nbsp;<br>
file&nbsp;(string):&nbsp;filename&nbsp;or&nbsp;directory&nbsp;(MUST&nbsp;BE&nbsp;ABSOLUTE&nbsp;PATH&nbsp;!)<br>
&nbsp;<br>
return&nbsp;either&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;(dict):&nbsp;{filename1:&nbsp;('FOUND',&nbsp;'virusname'),&nbsp;filename2:&nbsp;('ERROR',&nbsp;'reason')}<br>
&nbsp;&nbsp;-&nbsp;None:&nbsp;if&nbsp;no&nbsp;virus&nbsp;found<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdNetworkSocket-ping"><strong>ping</strong></a>(self)</dt><dd><tt>Send&nbsp;a&nbsp;PING&nbsp;to&nbsp;the&nbsp;clamav&nbsp;server,&nbsp;which&nbsp;should&nbsp;reply<br>
by&nbsp;a&nbsp;PONG.<br>
&nbsp;<br>
return:&nbsp;True&nbsp;if&nbsp;the&nbsp;server&nbsp;replies&nbsp;to&nbsp;PING<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;if&nbsp;the&nbsp;server&nbsp;do&nbsp;not&nbsp;reply&nbsp;by&nbsp;PONG</tt></dd></dl>

<dl><dt><a name="ClamdNetworkSocket-reload"><strong>reload</strong></a>(self)</dt><dd><tt>Force&nbsp;Clamd&nbsp;to&nbsp;reload&nbsp;signature&nbsp;database<br>
&nbsp;<br>
return:&nbsp;(string)&nbsp;"RELOADING"<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdNetworkSocket-scan_file"><strong>scan_file</strong></a>(self, file)</dt><dd><tt>Scan&nbsp;a&nbsp;file&nbsp;or&nbsp;directory&nbsp;given&nbsp;by&nbsp;filename&nbsp;and&nbsp;stop&nbsp;on&nbsp;first&nbsp;virus&nbsp;or&nbsp;<a href="socket.html#error">error</a>&nbsp;found.<br>
Scan&nbsp;with&nbsp;archive&nbsp;support&nbsp;enabled.<br>
&nbsp;<br>
file&nbsp;(string)&nbsp;:&nbsp;filename&nbsp;or&nbsp;directory&nbsp;(MUST&nbsp;BE&nbsp;ABSOLUTE&nbsp;PATH&nbsp;!)<br>
&nbsp;<br>
return&nbsp;either&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;(dict):&nbsp;{filename1:&nbsp;"virusname"}<br>
&nbsp;&nbsp;-&nbsp;None:&nbsp;if&nbsp;no&nbsp;virus&nbsp;found<br>
&nbsp;<br>
May&nbsp;raise&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem<br>
&nbsp;&nbsp;-&nbsp;socket.timeout:&nbsp;if&nbsp;timeout&nbsp;has&nbsp;expired</tt></dd></dl>

<dl><dt><a name="ClamdNetworkSocket-scan_stream"><strong>scan_stream</strong></a>(self, buffer_to_test)</dt><dd><tt>Scan&nbsp;a&nbsp;buffer<br>
&nbsp;<br>
buffer_to_test&nbsp;(string):&nbsp;buffer&nbsp;to&nbsp;scan<br>
&nbsp;<br>
return&nbsp;either:<br>
&nbsp;&nbsp;-&nbsp;(dict):&nbsp;{filename1:&nbsp;"virusname"}<br>
&nbsp;&nbsp;-&nbsp;None:&nbsp;if&nbsp;no&nbsp;virus&nbsp;found<br>
&nbsp;<br>
May&nbsp;raise&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;<a href="#BufferTooLongError">BufferTooLongError</a>:&nbsp;if&nbsp;the&nbsp;buffer&nbsp;size&nbsp;exceeds&nbsp;clamd&nbsp;limits<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdNetworkSocket-shutdown"><strong>shutdown</strong></a>(self)</dt><dd><tt>Force&nbsp;Clamd&nbsp;to&nbsp;shutdown&nbsp;and&nbsp;exit<br>
&nbsp;<br>
return:&nbsp;nothing<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdNetworkSocket-stats"><strong>stats</strong></a>(self)</dt><dd><tt>Get&nbsp;Clamscan&nbsp;stats<br>
&nbsp;<br>
return:&nbsp;(string)&nbsp;clamscan&nbsp;stats<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdNetworkSocket-version"><strong>version</strong></a>(self)</dt><dd><tt>Get&nbsp;Clamscan&nbsp;version<br>
&nbsp;<br>
return:&nbsp;(string)&nbsp;clamscan&nbsp;version<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<hr>
Data descriptors inherited from <a href="pyclamd.html#_ClamdGeneric">_ClamdGeneric</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="ClamdUnixSocket">class <strong>ClamdUnixSocket</strong></a>(<a href="pyclamd.html#_ClamdGeneric">_ClamdGeneric</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Class&nbsp;for&nbsp;using&nbsp;clamd&nbsp;with&nbsp;an&nbsp;unix&nbsp;socket<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="pyclamd.html#ClamdUnixSocket">ClamdUnixSocket</a></dd>
<dd><a href="pyclamd.html#_ClamdGeneric">_ClamdGeneric</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="ClamdUnixSocket-__init__"><strong>__init__</strong></a>(self, filename<font color="#909090">=None</font>, timeout<font color="#909090">=None</font>)</dt><dd><tt>Unix&nbsp;Socket&nbsp;Class&nbsp;initialisation<br>
&nbsp;<br>
filename&nbsp;(string)&nbsp;:&nbsp;unix&nbsp;socket&nbsp;filename&nbsp;or&nbsp;None&nbsp;to&nbsp;get&nbsp;the&nbsp;socket&nbsp;from&nbsp;/etc/clamav/clamd.conf<br>
timeout&nbsp;(float&nbsp;or&nbsp;None)&nbsp;:&nbsp;socket&nbsp;timeout</tt></dd></dl>

<hr>
Methods inherited from <a href="pyclamd.html#_ClamdGeneric">_ClamdGeneric</a>:<br>
<dl><dt><a name="ClamdUnixSocket-EICAR"><strong>EICAR</strong></a>(self)</dt><dd><tt>returns&nbsp;Eicar&nbsp;test&nbsp;string</tt></dd></dl>

<dl><dt><a name="ClamdUnixSocket-contscan_file"><strong>contscan_file</strong></a>(self, file)</dt><dd><tt>Scan&nbsp;a&nbsp;file&nbsp;or&nbsp;directory&nbsp;given&nbsp;by&nbsp;filename<br>
Do&nbsp;not&nbsp;stop&nbsp;on&nbsp;<a href="socket.html#error">error</a>&nbsp;or&nbsp;virus&nbsp;found.<br>
Scan&nbsp;with&nbsp;archive&nbsp;support&nbsp;enabled.<br>
&nbsp;<br>
file&nbsp;(string):&nbsp;filename&nbsp;or&nbsp;directory&nbsp;(MUST&nbsp;BE&nbsp;ABSOLUTE&nbsp;PATH&nbsp;!)<br>
&nbsp;<br>
return&nbsp;either&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;(dict):&nbsp;{filename1:&nbsp;('FOUND',&nbsp;'virusname'),&nbsp;filename2:&nbsp;('ERROR',&nbsp;'reason')}<br>
&nbsp;&nbsp;-&nbsp;None:&nbsp;if&nbsp;no&nbsp;virus&nbsp;found<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdUnixSocket-multiscan_file"><strong>multiscan_file</strong></a>(self, file)</dt><dd><tt>Scan&nbsp;a&nbsp;file&nbsp;or&nbsp;directory&nbsp;given&nbsp;by&nbsp;filename&nbsp;using&nbsp;multiple&nbsp;threads&nbsp;(faster&nbsp;on&nbsp;SMP&nbsp;machines).<br>
Do&nbsp;not&nbsp;stop&nbsp;on&nbsp;<a href="socket.html#error">error</a>&nbsp;or&nbsp;virus&nbsp;found.<br>
Scan&nbsp;with&nbsp;archive&nbsp;support&nbsp;enabled.<br>
&nbsp;<br>
file&nbsp;(string):&nbsp;filename&nbsp;or&nbsp;directory&nbsp;(MUST&nbsp;BE&nbsp;ABSOLUTE&nbsp;PATH&nbsp;!)<br>
&nbsp;<br>
return&nbsp;either&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;(dict):&nbsp;{filename1:&nbsp;('FOUND',&nbsp;'virusname'),&nbsp;filename2:&nbsp;('ERROR',&nbsp;'reason')}<br>
&nbsp;&nbsp;-&nbsp;None:&nbsp;if&nbsp;no&nbsp;virus&nbsp;found<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdUnixSocket-ping"><strong>ping</strong></a>(self)</dt><dd><tt>Send&nbsp;a&nbsp;PING&nbsp;to&nbsp;the&nbsp;clamav&nbsp;server,&nbsp;which&nbsp;should&nbsp;reply<br>
by&nbsp;a&nbsp;PONG.<br>
&nbsp;<br>
return:&nbsp;True&nbsp;if&nbsp;the&nbsp;server&nbsp;replies&nbsp;to&nbsp;PING<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;if&nbsp;the&nbsp;server&nbsp;do&nbsp;not&nbsp;reply&nbsp;by&nbsp;PONG</tt></dd></dl>

<dl><dt><a name="ClamdUnixSocket-reload"><strong>reload</strong></a>(self)</dt><dd><tt>Force&nbsp;Clamd&nbsp;to&nbsp;reload&nbsp;signature&nbsp;database<br>
&nbsp;<br>
return:&nbsp;(string)&nbsp;"RELOADING"<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdUnixSocket-scan_file"><strong>scan_file</strong></a>(self, file)</dt><dd><tt>Scan&nbsp;a&nbsp;file&nbsp;or&nbsp;directory&nbsp;given&nbsp;by&nbsp;filename&nbsp;and&nbsp;stop&nbsp;on&nbsp;first&nbsp;virus&nbsp;or&nbsp;<a href="socket.html#error">error</a>&nbsp;found.<br>
Scan&nbsp;with&nbsp;archive&nbsp;support&nbsp;enabled.<br>
&nbsp;<br>
file&nbsp;(string)&nbsp;:&nbsp;filename&nbsp;or&nbsp;directory&nbsp;(MUST&nbsp;BE&nbsp;ABSOLUTE&nbsp;PATH&nbsp;!)<br>
&nbsp;<br>
return&nbsp;either&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;(dict):&nbsp;{filename1:&nbsp;"virusname"}<br>
&nbsp;&nbsp;-&nbsp;None:&nbsp;if&nbsp;no&nbsp;virus&nbsp;found<br>
&nbsp;<br>
May&nbsp;raise&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem<br>
&nbsp;&nbsp;-&nbsp;socket.timeout:&nbsp;if&nbsp;timeout&nbsp;has&nbsp;expired</tt></dd></dl>

<dl><dt><a name="ClamdUnixSocket-scan_stream"><strong>scan_stream</strong></a>(self, buffer_to_test)</dt><dd><tt>Scan&nbsp;a&nbsp;buffer<br>
&nbsp;<br>
buffer_to_test&nbsp;(string):&nbsp;buffer&nbsp;to&nbsp;scan<br>
&nbsp;<br>
return&nbsp;either:<br>
&nbsp;&nbsp;-&nbsp;(dict):&nbsp;{filename1:&nbsp;"virusname"}<br>
&nbsp;&nbsp;-&nbsp;None:&nbsp;if&nbsp;no&nbsp;virus&nbsp;found<br>
&nbsp;<br>
May&nbsp;raise&nbsp;:<br>
&nbsp;&nbsp;-&nbsp;<a href="#BufferTooLongError">BufferTooLongError</a>:&nbsp;if&nbsp;the&nbsp;buffer&nbsp;size&nbsp;exceeds&nbsp;clamd&nbsp;limits<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdUnixSocket-shutdown"><strong>shutdown</strong></a>(self)</dt><dd><tt>Force&nbsp;Clamd&nbsp;to&nbsp;shutdown&nbsp;and&nbsp;exit<br>
&nbsp;<br>
return:&nbsp;nothing<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdUnixSocket-stats"><strong>stats</strong></a>(self)</dt><dd><tt>Get&nbsp;Clamscan&nbsp;stats<br>
&nbsp;<br>
return:&nbsp;(string)&nbsp;clamscan&nbsp;stats<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<dl><dt><a name="ClamdUnixSocket-version"><strong>version</strong></a>(self)</dt><dd><tt>Get&nbsp;Clamscan&nbsp;version<br>
&nbsp;<br>
return:&nbsp;(string)&nbsp;clamscan&nbsp;version<br>
&nbsp;<br>
May&nbsp;raise:<br>
&nbsp;&nbsp;-&nbsp;<a href="#ConnectionError">ConnectionError</a>:&nbsp;in&nbsp;case&nbsp;of&nbsp;communication&nbsp;problem</tt></dd></dl>

<hr>
Data descriptors inherited from <a href="pyclamd.html#_ClamdGeneric">_ClamdGeneric</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="ConnectionError">class <strong>ConnectionError</strong></a>(<a href="socket.html#error">socket.error</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Class&nbsp;for&nbsp;errors&nbsp;communication&nbsp;with&nbsp;clamd<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="pyclamd.html#ConnectionError">ConnectionError</a></dd>
<dd><a href="socket.html#error">socket.error</a></dd>
<dd><a href="exceptions.html#IOError">exceptions.IOError</a></dd>
<dd><a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a></dd>
<dd><a href="exceptions.html#StandardError">exceptions.StandardError</a></dd>
<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Data descriptors inherited from <a href="socket.html#error">socket.error</a>:<br>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Methods inherited from <a href="exceptions.html#IOError">exceptions.IOError</a>:<br>
<dl><dt><a name="ConnectionError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#ConnectionError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;help(type(x))&nbsp;for&nbsp;signature</tt></dd></dl>

<hr>
Data and other attributes inherited from <a href="exceptions.html#IOError">exceptions.IOError</a>:<br>
<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#ConnectionError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;object&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>

<hr>
Methods inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
<dl><dt><a name="ConnectionError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>

<dl><dt><a name="ConnectionError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#ConnectionError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>

<hr>
Data descriptors inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
<dl><dt><strong>errno</strong></dt>
<dd><tt>exception&nbsp;errno</tt></dd>
</dl>
<dl><dt><strong>filename</strong></dt>
<dd><tt>exception&nbsp;filename</tt></dd>
</dl>
<dl><dt><strong>strerror</strong></dt>
<dd><tt>exception&nbsp;strerror</tt></dd>
</dl>
<hr>
Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
<dl><dt><a name="ConnectionError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#ConnectionError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>

<dl><dt><a name="ConnectionError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#ConnectionError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>

<dl><dt><a name="ConnectionError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#ConnectionError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>

<dl><dt><a name="ConnectionError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#ConnectionError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
&nbsp;<br>
Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>

<dl><dt><a name="ConnectionError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#ConnectionError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>

<dl><dt><a name="ConnectionError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#ConnectionError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>

<dl><dt><a name="ConnectionError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>

<dl><dt><a name="ConnectionError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>

<hr>
Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
</dl>
<dl><dt><strong>args</strong></dt>
</dl>
<dl><dt><strong>message</strong></dt>
</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
    
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-ClamdAgnostic"><strong>ClamdAgnostic</strong></a>()</dt><dd><tt>Tries&nbsp;to&nbsp;connect&nbsp;to&nbsp;clamd&nbsp;using&nbsp;<a href="#ClamdUnixSocket">ClamdUnixSocket</a>&nbsp;or&nbsp;if&nbsp;it&nbsp;fails,&nbsp;tries<br>
with&nbsp;<a href="#ClamdNetworkSocket">ClamdNetworkSocket</a>&nbsp;and&nbsp;return&nbsp;the&nbsp;corresponding&nbsp;object.<br>
Of&nbsp;course,&nbsp;it&nbsp;tries&nbsp;to&nbsp;connect&nbsp;with&nbsp;default&nbsp;settings...</tt></dd></dl>
 <dl><dt><a name="-contscan_file"><strong>contscan_file</strong></a> = wrapper(*args, **kw)</dt><dd><tt>Deprecated&nbsp;API&nbsp;-&nbsp;use&nbsp;one&nbsp;of&nbsp;the&nbsp;Clamd*Socket&nbsp;classes&nbsp;instead.</tt></dd></dl>
 <dl><dt><a name="-init_network_socket"><strong>init_network_socket</strong></a>(host<font color="#909090">='127.0.0.1'</font>, port<font color="#909090">=3310</font>, timeout<font color="#909090">=None</font>)</dt><dd><tt>Deprecated&nbsp;API&nbsp;-&nbsp;use&nbsp;<a href="#ClamdNetworkSocket">ClamdNetworkSocket</a>&nbsp;instead.</tt></dd></dl>
 <dl><dt><a name="-init_unix_socket"><strong>init_unix_socket</strong></a>(filename<font color="#909090">=None</font>)</dt><dd><tt>Deprecated&nbsp;API&nbsp;-&nbsp;use&nbsp;<a href="#ClamdUnixSocket">ClamdUnixSocket</a>&nbsp;instead.</tt></dd></dl>
 <dl><dt><a name="-multiscan_file"><strong>multiscan_file</strong></a> = wrapper(*args, **kw)</dt><dd><tt>Deprecated&nbsp;API&nbsp;-&nbsp;use&nbsp;one&nbsp;of&nbsp;the&nbsp;Clamd*Socket&nbsp;classes&nbsp;instead.</tt></dd></dl>
 <dl><dt><a name="-scan_file"><strong>scan_file</strong></a> = wrapper(*args, **kw)</dt><dd><tt>Deprecated&nbsp;API&nbsp;-&nbsp;use&nbsp;one&nbsp;of&nbsp;the&nbsp;Clamd*Socket&nbsp;classes&nbsp;instead.</tt></dd></dl>
 <dl><dt><a name="-version"><strong>version</strong></a> = wrapper(*args, **kw)</dt><dd><tt>Deprecated&nbsp;API&nbsp;-&nbsp;use&nbsp;one&nbsp;of&nbsp;the&nbsp;Clamd*Socket&nbsp;classes&nbsp;instead.</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>__version__</strong> = '0.3.9'<br>
<strong>socketinst</strong> = None</td></tr></table>
</body></html>