Ejemplo n.º 1
0
optarg_t * parse_options (int argc, const char * argv[])
{
	optarg_t *poptarg = (optarg_t *) malloc(sizeof(optarg_t));
	if (!poptarg) {
		fprintf(stderr, "ERROR: could not allocate memory for option parser!\n");
		exit(EXIT_FAILURE);
	}
	
	// set defaults
	poptarg->promiscuous = 1;
	poptarg->to_ms = 100;
	poptarg->snaplen = 100;
	poptarg->t_long = 10 * 60;
	poptarg->t_short = 10;
	poptarg->t_age = 30;
	
	// check arguments
	int c;
	while ((c = getopt(argc, (char**)argv, "s:r:o:w:m:i:A:S:L:p?h")) != -1) {
		switch (c) {
			case 's':
				poptarg->snaplen = atoi(optarg);
				break;
			case 'r':
				poptarg->infile = optarg;
				break;
			case 'o':
				poptarg->outfile = optarg;
				break;
			case 'w':
				poptarg->dumpfile = optarg;
				break;
			case 'm':
				poptarg->to_ms = atoi(optarg);
				break;
			case 'p':
				poptarg->promiscuous = 0;
				break;
			case 'i':
				poptarg->dev = optarg;
				break;
			case 'S':
				poptarg->t_short = atoi(optarg);
				break;
			case 'L':
				poptarg->t_long = atoi(optarg);
				break;				
			case 'A':
				poptarg->t_age = atoi(optarg);
				break;
			case '?':
				usage();
				break;
			case 'h':
				usage();
				break;
			default:
				usage();
				break;
		}
	}
	
	// set the remaining as filter string
	poptarg->filter = concat_argv((char**)&argv[optind]);
	return(poptarg);
}
Ejemplo n.º 2
0
Archivo: argv.c Proyecto: Oblomov/tig
bool
argv_to_string(const char *argv[SIZEOF_ARG], char *buf, size_t buflen, const char *sep)
{
	return concat_argv(argv, buf, buflen, sep, FALSE);
}
Ejemplo n.º 3
0
Archivo: argv.c Proyecto: jonas/tig
bool
argv_to_string_quoted(const char *argv[SIZEOF_ARG], char *buf, size_t buflen, const char *sep)
{
	return concat_argv(argv, buf, buflen, sep, true);
}