• 大小: 18.03MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-01
  • 语言: 其他
  • 标签: clamav  源码  

资源简介

ClamAV的VS2005工程源码,可以直接编译,不过有个打包工程无法通过。 http://blog.csdn.net/betabin/article/details/7452650博文会介绍下。

资源截图

代码片段和文件信息

/*
 *  Copyright (C) 2006 Sensory Networks Inc.
 *       (C) 2007 Tomasz Kojm 
 *       Written by Tomasz Kojm
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation.
 *
 *  This program is distributed in the hope that it will be useful
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not write to the Free Software
 *  Foundation Inc. 51 Franklin Street Fifth Floor Boston
 *  MA 02110-1301 USA.
 */

#if HAVE_CONFIG_H
#include “clamav-config.h“
#endif

#include 
#include 
#include 
#include 
#include 
#ifdef HAVE_UNISTD_H
#include 
#endif
#include 

#include “shared/misc.h“
#include “libclamav/clamav.h“

#include “cfgparser.h“
#define _GNU_SOURCE
#include “getopt.h“

static void printopt(const struct cfgoption *opt const struct cfgstruct *cpt int nondef)
{

    if(!cpt->enabled && opt->numarg == -1) {
if(!nondef || (opt->numarg != cpt->numarg))
    printf(“%s not set\n“ opt->name);
return;
    }

    switch(opt->argtype) {
case OPT_STR:
case OPT_FULLSTR:
case OPT_QUOTESTR:
    if(!nondef || !opt->strarg || strcmp(opt->strarg cpt->strarg))
printf(“%s = \“%s\“\n“ opt->name cpt->strarg);
    break;
case OPT_NUM:
case OPT_COMPSIZE:
    if(!nondef || (opt->numarg != cpt->numarg))
printf(“%s = %u\n“ opt->name cpt->numarg);
    break;
case OPT_BOOL:
    if(!nondef || (opt->numarg != cpt->numarg))
printf(“%s = %s\n“ opt->name cpt->enabled ? “yes“ : “no“);
    break;
default:
    printf(“%s: UNKNOWN ARGUMENT TYPE\n“ opt->name);
    }
}

static void printcfg(const char *cfgfile int nondef)
{
const struct cfgoption *opt;
const struct cfgstruct *cpt;
struct cfgstruct *cfg;
int i;
unsigned short cfgowner = 0;


    if(!(cfg = getcfg(cfgfile 1))) {
printf(“Can‘t parse %s\n“ cfgfile);
return;
    }

    /* pre loop to detect merged config */
    for(i = 0; ; i++) {
opt = &cfg_options[i];

if(!opt->name)
    break;

cpt = cfgopt(cfg opt->name);

if((cpt->numarg != opt->numarg) || (cpt->strarg && opt->strarg && strcmp(cpt->strarg opt->strarg))) {
    if((opt->owner & OPT_CLAMD) && !(opt->owner & OPT_FRESHCLAM))
cfgowner |= OPT_CLAMD;
    else if((opt->owner & OPT_FRESHCLAM) && !(opt->owner & OPT_CLAMD))
cfgowner |= OPT_FRESHCLAM;
}
    }

    if((cfgowner & OPT_CLAMD) && (cfgowner & OPT_FRESHCLAM)) { /* merged cfg */
printf(“%s: clamd and freshclam directives\n“ cfgfile);
printf(“------------------------------\n“);

printf(“\n[common]\n“);
for(i = 0; ; i++) {
    opt = &cfg_options[i];
    if(!opt->name)
break;
    if((opt->owner & 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        5031  2007-07-14 13:38  shared\shared.vcproj
     文件        2685  2007-04-18 13:55  shared\network.c
     文件        1285  2006-07-26 14:20  shared\ReadMe.txt
     文件        1319  2007-04-18 13:55  shared\misc.h
     文件        1358  2006-07-26 14:20  shared\stdafx.h
     文件         293  2006-07-26 14:20  shared\stdafx.cpp
     文件         896  2007-04-18 13:55  shared\cdiff.h
     文件        2036  2007-04-18 13:55  shared\cfgparser.h
     文件        6432  2007-04-18 13:55  shared\getopt.h
     文件        8688  2007-10-22 17:08  shared\sha256.c
     文件        6127  2007-04-18 13:55  shared\options.c
     文件        1506  2007-04-18 13:55  shared\options.h
     文件        1542  2007-10-08 13:32  shared\output.h
     文件        1383  2007-10-30 14:34  shared\shared.vcproj.NJH.Nigel Horne.user
     文件        1614  2007-10-22 17:08  shared\sha256.h
     文件        5856  2007-10-07 12:48  shared\misc.c
     文件       30062  2007-04-18 13:55  shared\getopt.c
     文件        1038  2007-04-18 13:55  shared\network.h
     文件       23156  2007-10-22 17:08  shared\cdiff.c
     文件       15827  2007-10-08 13:32  shared\cfgparser.c
     文件        8212  2007-10-08 14:47  shared\output.c
     目录           0  2007-10-22 17:08  shared\
     文件    39914496  2007-10-30 14:34  clamav.ncb
     文件       10415  2007-10-24 17:47  clamav.sln
     文件     7834789  2006-08-11 21:01  libclamav.ncb
     文件        6131  2007-09-27 17:49  clamconf\clamconf.vcproj
     文件        1312  2006-08-04 13:04  clamconf\ReadMe.txt
     文件         376  2006-08-04 13:04  clamconf\stdafx.h
     文件         295  2006-08-04 13:04  clamconf\stdafx.cpp
     文件         172  2006-08-04 13:04  clamconf\clamconf.cpp
     文件        1409  2007-10-30 14:34  clamconf\clamconf.vcproj.NJH.Nigel Horne.user
............此处省略485个文件信息

评论

共有 条评论