main.cpp : Updates to sockMgrTest() to support supplying an optional NIC device label.
This commit is contained in:
parent
c6e9b8585f
commit
1bce935b05
@ -257,36 +257,61 @@ void socketSrvTcpTest( cw::object_t* cfg, int argc, const char* argv[] )
|
|||||||
|
|
||||||
void sockMgrTest( cw::object_t* cfg, int argc, const char* argv[] )
|
void sockMgrTest( cw::object_t* cfg, int argc, const char* argv[] )
|
||||||
{
|
{
|
||||||
bool tcpFl = false;
|
bool tcpFl = false;
|
||||||
unsigned short localPort = 0;
|
const char* localNicDev = nullptr;
|
||||||
const char* remoteIp = nullptr;
|
unsigned short localPort = 0;
|
||||||
unsigned short remotePort = 0;
|
const char* remoteIp = nullptr;
|
||||||
|
unsigned short remotePort = 0;
|
||||||
|
int argi = 0;
|
||||||
|
|
||||||
if( argc <3 )
|
if( argc <3 )
|
||||||
{
|
{
|
||||||
printf("Invalid argument count.");
|
printf("Error: Invalid argument count.");
|
||||||
printf("Usage: ./cw_rt <cfg_fn> sockMgrTest 'udp | tcp' <localPort> { <remote_ip> <remote_port> }\n");
|
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The first arg. must be 'tcp' or 'udp'.
|
||||||
if( argc >= 4 )
|
|
||||||
{
|
|
||||||
remoteIp = argv[3];
|
|
||||||
|
|
||||||
if( argc >= 5 )
|
|
||||||
remotePort = atoi(argv[4]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if( strcmp(argv[1],"tcp")!=0 && strcmp(argv[1],"udp")!=0 )
|
if( strcmp(argv[1],"tcp")!=0 && strcmp(argv[1],"udp")!=0 )
|
||||||
{
|
{
|
||||||
printf("The first argument must be 'udp' or 'tcp'\n");
|
printf("Error: The first argument must be 'udp' or 'tcp'\n");
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
tcpFl = strcmp(argv[1],"tcp")==0;
|
|
||||||
localPort = atoi(argv[2]);
|
tcpFl = strcmp(argv[1],"tcp")==0;
|
||||||
|
|
||||||
|
argi = 2;
|
||||||
|
|
||||||
|
// If the next token is 'dev' ...
|
||||||
|
if( strcmp(argv[argi++],"dev") == 0 )
|
||||||
|
{
|
||||||
|
if( argc <= argi )
|
||||||
|
{
|
||||||
|
printf("Error: No local NIC given.\n");
|
||||||
|
goto errLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
// .. then the next arg is the localNicDev
|
||||||
|
localNicDev = argv[argi++];
|
||||||
|
}
|
||||||
|
|
||||||
|
if( argc <= argi )
|
||||||
|
{
|
||||||
|
printf("Error: No local port was given.\n");
|
||||||
|
goto errLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the local port
|
||||||
|
localPort = atoi(argv[argi++]);
|
||||||
|
|
||||||
|
if( argc > argi)
|
||||||
|
{
|
||||||
|
remoteIp = argv[argi++];
|
||||||
|
|
||||||
|
if( argc > argi)
|
||||||
|
remotePort = atoi(argv[argi++]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if( remoteIp != nullptr && remotePort == 0 )
|
if( remoteIp != nullptr && remotePort == 0 )
|
||||||
{
|
{
|
||||||
@ -296,10 +321,16 @@ void sockMgrTest( cw::object_t* cfg, int argc, const char* argv[] )
|
|||||||
|
|
||||||
printf("style:%s local:%i to remote:%s %i\n", argv[1], localPort, cwStringNullGuard(remoteIp), remotePort);
|
printf("style:%s local:%i to remote:%s %i\n", argv[1], localPort, cwStringNullGuard(remoteIp), remotePort);
|
||||||
|
|
||||||
cw::socksrv::testMain( tcpFl, localPort, remoteIp, remotePort );
|
cw::socksrv::testMain( tcpFl, localNicDev, localPort, remoteIp, remotePort );
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
errLabel:
|
errLabel:
|
||||||
|
|
||||||
|
// 1 2 3 4
|
||||||
|
// 1 2 3 4 5 6
|
||||||
|
printf("Usage: ./cwtest <cfg_fn> sockMgrTest 'udp | tcp' {'dev' <localNicDevice>} <localPort> { <remote_ip> <remote_port> }\n");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user