Browse code

move matching code to matcher_run.

No functionality change.

Török Edvin authored on 2010/02/10 01:56:08
Showing 1 changed files
... ...
@@ -45,6 +45,20 @@
45 45
 #include "cltypes.h"
46 46
 #include "default.h"
47 47
 
48
+static inline int matcher_run(const struct cli_matcher *root,
49
+			      const unsigned char *buffer, uint32_t length,
50
+			      const char **virname, struct cli_ac_data *mdata,
51
+			      uint32_t offset,
52
+			      cli_file_t ftype,
53
+			      int desc,
54
+			      struct cli_matched_type **ftoffset,
55
+			      unsigned int acmode)
56
+{
57
+    int ret;
58
+    if (root->ac_only || (ret = cli_bm_scanbuff(buffer, length, virname, root, offset, ftype, desc)) != CL_VIRUS)
59
+	ret = cli_ac_scanbuff(buffer, length, virname, NULL, NULL, root, mdata, offset, ftype, desc, ftoffset, acmode, NULL);
60
+    return ret;
61
+}
48 62
 
49 63
 int cli_scanbuff(const unsigned char *buffer, uint32_t length, cli_ctx *ctx, cli_file_t ftype, struct cli_ac_data **acdata)
50 64
 {
... ...
@@ -76,8 +90,7 @@ int cli_scanbuff(const unsigned char *buffer, uint32_t length, cli_ctx *ctx, cli
76 76
 	if(!acdata && (ret = cli_ac_initdata(&mdata, troot->ac_partsigs, troot->ac_lsigs, CLI_DEFAULT_AC_TRACKLEN)))
77 77
 	    return ret;
78 78
 
79
-	if(troot->ac_only || (ret = cli_bm_scanbuff(buffer, length, virname, troot, 0, ftype, -1)) != CL_VIRUS)
80
-	    ret = cli_ac_scanbuff(buffer, length, virname, NULL, NULL, troot, acdata ? (acdata[0]) : (&mdata), 0, ftype, -1, NULL, AC_SCAN_VIR, NULL);
79
+	ret = matcher_run(troot, buffer, length, virname, acdata ? (acdata[0]): (&mdata), 0, ftype, -1, NULL, AC_SCAN_VIR);
81 80
 
82 81
 	if(!acdata)
83 82
 	    cli_ac_freedata(&mdata);
... ...
@@ -89,8 +102,7 @@ int cli_scanbuff(const unsigned char *buffer, uint32_t length, cli_ctx *ctx, cli
89 89
     if(!acdata && (ret = cli_ac_initdata(&mdata, groot->ac_partsigs, groot->ac_lsigs, CLI_DEFAULT_AC_TRACKLEN)))
90 90
 	return ret;
91 91
 
92
-    if(groot->ac_only || (ret = cli_bm_scanbuff(buffer, length, virname, groot, 0, ftype, -1)) != CL_VIRUS)
93
-	ret = cli_ac_scanbuff(buffer, length, virname, NULL, NULL, groot, acdata ? (acdata[1]) : (&mdata), 0, ftype, -1, NULL, AC_SCAN_VIR, NULL);
92
+    ret = matcher_run(groot, buffer, length, virname, acdata ? (acdata[1]): (&mdata), 0, ftype, -1, NULL, AC_SCAN_VIR);
94 93
 
95 94
     if(!acdata)
96 95
 	cli_ac_freedata(&mdata);
... ...
@@ -328,8 +340,7 @@ int cli_scandesc(int desc, cli_ctx *ctx, cli_file_t ftype, uint8_t ftonly, struc
328 328
 	    length += maxpatlen;
329 329
 
330 330
 	if(troot) {
331
-	    if(troot->ac_only || (ret = cli_bm_scanbuff(upt, length, ctx->virname, troot, offset, ftype, desc)) != CL_VIRUS)
332
-		ret = cli_ac_scanbuff(upt, length, ctx->virname, NULL, NULL, troot, &tdata, offset, ftype, desc, ftoffset, acmode, NULL);
331
+	    ret = matcher_run(troot, upt, length, ctx->virname, &tdata, offset, ftype, desc, NULL, acmode);
333 332
 
334 333
 	    if(ret == CL_VIRUS) {
335 334
 		free(buffer);