#include <nettest.h>
#include <string.h>
#include <stdlib.h>
+#include <time.h>
extern int VFS_Init(void);
extern int IPStack_Install(char **Args);
fprintf(stderr, "\n");
fprintf(stderr,
"Options:\n"
- "-dev <mac>:<tapdev>\n"
+ "-dev <mac>:<type>:<arg>\n"
"-ip <dev>,<addr>/<mask>\n"
- "-route <net>,<mask>,<nexthop>\n"
+ "-route <net>/<mask>,<nexthop>\n"
"\n"
- "Suites:\n"
+ "Commands:\n"
"netcat <addr> <port>\n"
+ "\n"
+ "Device Types:\n"
+ "tun - Linux TUN/TAP device (takes an optional name)\n"
+ "unix - Unix named pipe (datagram)\n"
);
}
PrintUsage(argv[0]);
return 1;
}
-
+
+ srand(time(NULL));
+
// Startup
VFS_Init();
{
for( int i = 1; i < argc; i ++ )
{
- if( argv[i][0] != '-' )
+ char *arg = argv[i];;
+ if( arg[0] != '-' )
{
- if( strcmp(argv[i], "netcat") == 0 )
+ if( strcmp(arg, "netcat") == 0 )
{
if( argc-i != 3 ) {
Log_Error("NetTest", "'netcat' <addr> <port>");
NetTest_Suite_Netcat(argv[i+1], strtol(argv[i+2], NULL, 0));
i += 2;
}
+ else if( strcmp(arg, "cmdline") == 0 )
+ {
+ NetTest_Suite_Cmdline();
+ }
else
{
- Log_Error("NetTest", "Unknown suite name '%s'", argv[i]);
+ Log_Error("NetTest", "Unknown suite name '%s'", arg);
PrintUsage(argv[0]);
}
}
else
{
- if( strcmp(argv[i], "-dev") == 0 )
+ if( strcmp(arg, "--help") == 0 )
+ {
+ PrintUsage(0);
+ return 0;
+ }
+ else if( strcmp(arg, "-dev") == 0 )
{
- if( ++i == argc ) { PrintUsage(argv[0]); return 1; }
- rv = NativeNic_AddDev(argv[i]);
+ if( i+1 == argc ) { PrintUsage(argv[0]); return 1; }
+ rv = NativeNic_AddDev(argv[i+1]);
if( rv ) {
- Log_Error("NetTest", "Failed to add device %s", argv[i]);
+ Log_Error("NetTest", "Failed to add device %s", argv[i+1]);
return -1;
}
+ i ++;
}
- else if( strcmp(argv[i], "-ip") == 0 )
+ else if( strcmp(arg, "-ip") == 0 )
{
- if( ++i == argc ) { PrintUsage(argv[0]); return 1; }
- // TODO: parse argument and poke ipstack
- if( NetTest_AddAddress(argv[i]) ) {
+ if( i+1 == argc ) { PrintUsage(argv[0]); return 1; }
+ // Parse argument and poke ipstack
+ if( NetTest_AddAddress(argv[i+1]) ) {
return -1;
}
+ i ++;
}
else
{
- Log_Error("NetTest", "Unknown argument '%s'", argv[i]);
+ Log_Error("NetTest", "Unknown argument '%s'", arg);
PrintUsage(argv[0]);
return -1;
}