diff options
-rw-r--r-- | src/main.c | 29 |
1 files changed, 15 insertions, 14 deletions
@@ -1,5 +1,5 @@ /* This file is part of IPACCT - Copyright (C) 1999,2000,2001,2002,2003,2004,2005 Sergey Poznyakoff + Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2008 Sergey Poznyakoff This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -14,7 +14,7 @@ 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: main.c,v 1.9 2005/05/20 12:59:53 gray Exp $ */ +/* $Id: main.c,v 1.10 2008/07/07 13:27:02 gray Exp $ */ #if defined(HAVE_CONFIG_H) # include <config.h> #endif @@ -126,19 +126,19 @@ parse_opt (key, arg, state) dump_bytecode++; break; case 'c': - profile = optarg; + profile = arg; break; case 'f': foreground++; break; case 'F': - infile = optarg; + infile = arg; break; case 'i': - device = optarg; + device = arg; break; case 'l': - log_name = optarg; + log_name = arg; break; case 'O': optimize_expr++; @@ -153,7 +153,7 @@ parse_opt (key, arg, state) syntax_check++; break; case 't': - ttw = atoi(optarg); + ttw = atoi(arg); if (ttw <= 0) die(1, "invalid timeslice value (%d)", ttw); break; @@ -170,7 +170,7 @@ parse_opt (key, arg, state) fixed_clocks++; break; case 'u': - user = optarg; + user = arg; break; default: return ARGP_ERR_UNKNOWN; @@ -313,8 +313,9 @@ main(argc, argv) int c, type; pcap_handler callback; pid_t pid; + int index; - if (argp_parse(&argp, argc, argv, 0, 0, NULL)) + if (argp_parse(&argp, argc, argv, 0, &index, NULL)) exit(1); read_profile(profile); @@ -326,11 +327,11 @@ main(argc, argv) alloc_snap_buffer(); if (infile) { - if (optind < argc) - die(1, "excess arguments after %s", argv[optind]); + if (index < argc) + die(1, "excess arguments after %s", argv[index]); expr = read_expr(infile); - } else if (optind < argc) - expr = copy_argv(argc, argv, optind); + } else if (index < argc) + expr = copy_argv(argc, argv, index); pcap = init(device, expr); @@ -408,7 +409,7 @@ init(device, cmdbuf) setuid(getuid()); - bzero((char *) &bpfcode, sizeof(bpfcode)); + memset(&bpfcode, 0, sizeof(bpfcode)); if (pcap_compile(pd, &bpfcode, cmdbuf, optimize_expr, netmask) < 0) die(1, pcap_geterr(pd)); |