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
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--Converted with LaTeX2HTML 2008 (1.71)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Database loading</TITLE>
<META NAME="description" CONTENT="Database loading">
<META NAME="keywords" CONTENT="clamdoc">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="clamdoc.css">
<LINK REL="next" HREF="node47.html">
<LINK REL="previous" HREF="node45.html">
<LINK REL="up" HREF="node43.html">
<LINK REL="next" HREF="node47.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html821"
HREF="node47.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html817"
HREF="node43.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html811"
HREF="node45.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html819"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html822"
HREF="node47.html">Error handling</A>
<B> Up:</B> <A NAME="tex2html818"
HREF="node43.html">API</A>
<B> Previous:</B> <A NAME="tex2html812"
HREF="node45.html">Initialization</A>
<B> <A NAME="tex2html820"
HREF="node1.html">Contents</A></B>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<H3><A NAME="SECTION00073300000000000000">
Database loading</A>
</H3>
The following set of functions provides an interface for loading
the virus database:
<PRE>
const char *cl_retdbdir(void);
int cl_load(const char *path, struct cl_engine *engine,
unsigned int *signo, unsigned int options);
</PRE>
<code>cl_retdbdir()</code> returns the default (hardcoded) path to the directory
with ClamAV databases.
<code>cl_load()</code> loads a single database file or all databases from a
given directory (when <code>path</code> points to a directory). The second
argument is used for passing in the pointer to the engine that should
be previously allocated with <code>cl_engine_new()</code>. A number of loaded
signatures will be <SPAN CLASS="textbf">added</SPAN> to <code>signo</code> <A NAME="tex2html23"
HREF="footnode.html#foot336"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A>. The last argument can
pass the following flags:
<UL>
<LI><SPAN CLASS="textbf">CL_DB_STDOPT</SPAN>
<BR>
This is an alias for a recommended set of scan options.
</LI>
<LI><SPAN CLASS="textbf">CL_DB_PHISHING</SPAN>
<BR>
Load phishing signatures.
</LI>
<LI><SPAN CLASS="textbf">CL_DB_PHISHING_URLS</SPAN>
<BR>
Initialize the phishing detection module and load .wdb and .pdb files.
</LI>
<LI><SPAN CLASS="textbf">CL_DB_PUA</SPAN>
<BR>
Load signatures for Potentially Unwanted Applications.
</LI>
<LI><SPAN CLASS="textbf">CL_DB_OFFICIAL_ONLY</SPAN>
<BR>
Only load official signatures from digitally signed databases.
</LI>
<LI><SPAN CLASS="textbf">CL_DB_BYTECODE</SPAN>
<BR>
Load bytecode.
</LI>
</UL>
<code>cl_load()</code> returns <code>CL_SUCCESS</code> on success and another code on
failure.
<PRE>
...
struct cl_engine *engine;
unsigned int sigs = 0;
int ret;
if((ret = cl_init()) != CL_SUCCESS) {
printf("cl_init() error: %s\n", cl_strerror(ret));
return 1;
}
if(!(engine = cl_engine_new())) {
printf("Can't create new engine\n");
return 1;
}
ret = cl_load(cl_retdbdir(), engine, &sigs, CL_DB_STDOPT);
</PRE>
<P>
<BR><HR>
<ADDRESS>
Tomasz Kojm
2010-03-10
</ADDRESS>
</BODY>
</HTML>
|