WEB开发网
开发学院网络安全黑客技术 如何阅读源代码(2) 阅读

如何阅读源代码(2)

 2006-07-04 20:27:44 来源:WEB开发网   
核心提示:从注释和程序本身可以看出,这是查找是否存在一个叫做webalizer.conf的配置文件,如何阅读源代码(2),如果当前目录下有,则用get_config来读入其中内容,如果没有,则查找ETCDIR/webalizer.conf是否存在

从注释和程序本身可以看出,这是查找是否存在一个叫做webalizer.conf的配置文件,如果当前目录下有,则用get_config来读入其中内容,如果没有,则查找ETCDIR/webalizer.conf是否存在。如果都没有,则进入下一部分。(注意:ETCDIR = @ETCDIR@在makefile中有定义)
/* get command line options */
  opterr = 0; /* disable parser errors */
  while ((i=getopt(argc,argv,"a:A:c:C:dD:e:E:fF:g:GhHiI:l:Lm:M:n:N:o:pP:qQr:R:s:S:t:Tu:U:vVx:XY"))!=EOF)
  {
  switch (i)
  {
   case 'a': add_nlist(optarg,&hidden_agents); break; /* Hide agents */
   case 'A': ntop_agents=atoi(optarg); break; /* Top agents */
   case 'c': get_config(optarg); break; /* Config file */
   case 'C': ntop_ctrys=atoi(optarg); break; /* Top countries */
   case 'd': debug_mode=1; break; /* Debug */
case 'D': dns_cache=optarg; break; /* DNS Cache filename */
   case 'e': ntop_entry=atoi(optarg); break; /* Top entry pages */
   case 'E': ntop_exit=atoi(optarg); break; /* Top exit pages */
   case 'f': fold_seq_err=1; break; /* Fold sequence errs */
   case 'F': log_type=(optarg[0]=='f')?
      LOG_FTP:(optarg[0]=='s')?
      LOG_SQUID:LOG_CLF; break; /* define log type */
case 'g': group_domains=atoi(optarg); break; /* GroupDomains (0=no) */
   case 'G': hourly_graph=0; break; /* no hourly graph */
   case 'h': print_opts(argv[0]); break; /* help */
   case 'H': hourly_stats=0; break; /* no hourly stats */
   case 'i': ignore_hist=1; break; /* Ignore history */
   case 'I': add_nlist(optarg,&index_alias); break; /* Index alias */
   case 'l': graph_lines=atoi(optarg); break; /* Graph Lines */
   case 'L': graph_legend=0; break; /* Graph Legends */
   case 'm': visit_timeout=atoi(optarg); break; /* Visit Timeout */
   case 'M': mangle_agent=atoi(optarg); break; /* mangle user agents */
   case 'n': hname=optarg; break; /* Hostname */
   case 'N': dns_children=atoi(optarg); break; /* # of DNS children */
   case 'o': out_dir=optarg; break; /* Output directory */
   case 'p': incremental=1; break; /* Incremental run */
   case 'P': add_nlist(optarg,&page_type); break; /* page view types */
   case 'q': verbose=1; break; /* Quiet (verbose=1) */
   case 'Q': verbose=0; break; /* Really Quiet */
   case 'r': add_nlist(optarg,&hidden_refs); break; /* Hide referrer */
   case 'R': ntop_refs=atoi(optarg); break; /* Top referrers */
   case 's': add_nlist(optarg,&hidden_sites); break; /* Hide site */
   case 'S': ntop_sites=atoi(optarg); break; /* Top sites */
   case 't': msg_title=optarg; break; /* Report title */
   case 'T': time_me=1; break; /* TimeMe */
   case 'u': add_nlist(optarg,&hidden_urls); break; /* hide URL  */
   case 'U': ntop_urls=atoi(optarg); break; /* Top urls */
   case 'v':
   case 'V': print_version(); break; /* Version */
   case 'x': html_ext=optarg; break; /* HTML file extension */
   case 'X': hide_sites=1; break; /* Hide ind. sites */
   case 'Y': ctry_graph=0; break; /* Supress ctry graph */
  }
  }
if (argc - optind != 0) log_fname = argv[optind];
  if ( log_fname && (log_fname[0]=='-')) log_fname=NULL; /* force STDIN? */
/* check for gzipped file - .gz */
  if (log_fname) if (!strcmp((log_fname+strlen(log_fname)-3),".gz")) gz_log=1;

1 2 3 4 5  下一页

Tags:如何 阅读 源代码

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接