/*
* $Id: nemesis.c,v 1.1.1.1 2003/10/31 21:29:38 jnathan Exp $
*
* THE NEMESIS PROJECT
* Copyright (C) 2002, 2003 Jeff Nathan <jeff@snort.org>
*
* nemesis.c (main)
*/
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include "nemesis.h"
int main(int argc, char **argv)
{
char **avtmp, *avval;
extern int optind;
avtmp = argv;
avval = strrchr(*avtmp, '/');
if (avval++ == NULL)
avval = *avtmp;
if (!strncmp(avval, "nemesis-arp", 11))
{
nemesis_arp(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "arp", 3))
{
argv += optind;
argc -= optind;
nemesis_arp(argc, argv);
}
else if (!strncmp(avval, "nemesis-dns", 11))
{
nemesis_dns(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "dns", 3))
{
argv += optind;
argc -= optind;
nemesis_dns(argc, argv);
}
else if (!strncmp(avval, "nemesis-ethernet", 16))
{
nemesis_ethernet(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "ethernet", 8))
{
argv += optind;
argc -= optind;
nemesis_ethernet(argc, argv);
}
else if (!strncmp(avval, "nemesis-icmp", 12))
{
nemesis_icmp(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "icmp", 4))
{
argv += optind;
argc -= optind;
nemesis_icmp(argc, argv);
}
else if (!strncmp(avval, "nemesis-igmp", 12))
{
nemesis_igmp(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "igmp", 4))
{
argv += optind;
argc -= optind;
nemesis_igmp(argc, argv);
}
else if (!strncmp(avval, "nemesis-ip", 10))
{
nemesis_ip(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "ip", 2))
{
argv += optind;
argc -= optind;
nemesis_ip(argc, argv);
}
else if (!strncmp(avval, "nemesis-ospf", 12))
{
nemesis_ospf(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "ospf", 4))
{
argv += optind;
argc -= optind;
nemesis_ospf(argc, argv);
}
else if (!strncmp(avval, "nemesis-rip", 11))
{
nemesis_rip(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "rip", 3))
{
argv += optind;
argc -= optind;
nemesis_rip(argc, argv);
}
else if (!strncmp(avval, "nemesis-tcp", 11))
{
nemesis_tcp(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "tcp", 3))
{
argv += optind;
argc -= optind;
nemesis_tcp(argc, argv);
}
else if (!strncmp(avval, "nemesis-udp", 11))
{
nemesis_udp(argc, argv);
}
else if (argc > 1 && !strncmp(argv[1], "udp", 3))
{
argv += optind;
argc -= optind;
nemesis_udp(argc, argv);
}
else
nemesis_usage(argv[0]);
/* NOTREACHED */
exit(0);
}
void nemesis_usage(char *arg)
{
char *module = "NEMESIS";
nemesis_maketitle(title, module, version);
nemesis_printtitle((const char *)title);
printf("NEMESIS Usage:\n %s [mode] [options]\n\n", arg);
printf("NEMESIS modes:\n"
" arp\n"
" dns\n"
" ethernet\n"
" icmp\n"
" igmp\n"
" ip\n"
" ospf (currently non-functional)\n"
" rip\n"
" tcp\n"
" udp\n\n");
printf("NEMESIS options: \n"
" To display options, specify a mode with the option \"help\".\n");
putchar('\n');
exit(1);
}
syntax highlighted by Code2HTML, v. 0.9.1