X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Tools%2FNetTest%2Fmain.c;h=95e70ab07679e56bba39ae854afe123bc7fb99ce;hb=015f48988e0ff398409d71dfc692005ab439490a;hp=d614da6c16fd6eea0c779ca339bbc0789d254771;hpb=d4b0e2edda3080715434db09cf2e25ea52d4340f;p=tpg%2Facess2.git diff --git a/Tools/NetTest/main.c b/Tools/NetTest/main.c index d614da6c..95e70ab0 100644 --- a/Tools/NetTest/main.c +++ b/Tools/NetTest/main.c @@ -9,7 +9,10 @@ #include #include #include +#include +#include +extern int VFS_Init(void); extern int IPStack_Install(char **Args); // === CODE === @@ -18,40 +21,90 @@ void PrintUsage(const char *ProgramName) fprintf(stderr, "Usage: %s \n", ProgramName); fprintf(stderr, "\n"); fprintf(stderr, - "-dev :\n" - "-ip ,,\n" + "Options:\n" + "-dev :\n" + "-ip ,/\n" "-route ,,\n" + "\n" + "Suites:\n" + "netcat \n" ); } int main(int argc, char *argv[]) { + int rv; + if( argc <= 1 ) { PrintUsage(argv[0]); return 1; } - + + srand(time(NULL)); + // Startup + VFS_Init(); { char *ipstack_args[] = {NULL}; IPStack_Install( ipstack_args ); } - for( int i = 0; i < argc; i ++ ) + for( int i = 1; i < argc; i ++ ) { - if( argv[i][0] != '-' ) { + if( argv[i][0] != '-' ) + { + if( strcmp(argv[i], "netcat") == 0 ) + { + if( argc-i != 3 ) { + Log_Error("NetTest", "'netcat' "); + PrintUsage(argv[0]); + return -1; + } + + NetTest_Suite_Netcat(argv[i+1], strtol(argv[i+2], NULL, 0)); + i += 2; + } + else + { + Log_Error("NetTest", "Unknown suite name '%s'", argv[i]); + PrintUsage(argv[0]); + } } - else if( strcmp(argv[i], "-dev") == 0 ) + else { - if( ++i == argc ) { PrintUsage(argv[0]); return 1; } - NativeNic_AddDev(argv[i]); + if( strcmp(argv[i], "-dev") == 0 ) + { + if( ++i == argc ) { PrintUsage(argv[0]); return 1; } + rv = NativeNic_AddDev(argv[i]); + if( rv ) { + Log_Error("NetTest", "Failed to add device %s", argv[i]); + return -1; + } + } + else if( strcmp(argv[i], "-ip") == 0 ) + { + if( ++i == argc ) { PrintUsage(argv[0]); return 1; } + // TODO: parse argument and poke ipstack + if( NetTest_AddAddress(argv[i]) ) { + return -1; + } + } + else + { + Log_Error("NetTest", "Unknown argument '%s'", argv[i]); + PrintUsage(argv[0]); + return -1; + } } } - // Run suite - - // Teardown - + Log_Log("NetTest", "Shutting down"); + fflush(stdout); return 0; } + +size_t NetTest_WriteStdout(const void *Data, size_t Size) +{ + return fwrite(Data, 1, Size, stdout); +}