windows-nt/Source/XPSP1/NT/net/snmp/newagent/exe/args.c

121 lines
3.1 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1992-1997 Microsoft Corporation
Module Name:
args.c
Abstract:
Contains routines for processing command line arguments.
Environment:
User Mode - Win32
Revision History:
10-Feb-1997 DonRyan
Rewrote to implement SNMPv2 support.
--*/
///////////////////////////////////////////////////////////////////////////////
// //
// Include files //
// //
///////////////////////////////////////////////////////////////////////////////
#include "globals.h"
#include "args.h"
#include "stdlib.h"
///////////////////////////////////////////////////////////////////////////////
// //
// Public procedures //
// //
///////////////////////////////////////////////////////////////////////////////
BOOL
ProcessArguments(
DWORD NumberOfArgs,
LPSTR ArgumentPtrs[]
)
/*++
Routine Description:
Processes command line arguments.
Arguments:
NumberOfArgs - number of command line arguments.
ArgumentPtrs - array of pointers to arguments.
Return Values:
Returns true if successful.
--*/
{
DWORD dwArgument;
LPSTR pCurrentArg;
// initialize logging arguments
g_CmdLineArguments.nLogLevel = INVALID_ARGUMENT;
g_CmdLineArguments.nLogType = INVALID_ARGUMENT;
// initialize service controller argument
g_CmdLineArguments.fBypassCtrlDispatcher = FALSE;
// process arguments
while (NumberOfArgs--) {
// retrieve argument pointer
pCurrentArg = ArgumentPtrs[NumberOfArgs];
// make sure valid argument passed
if (IS_ARGUMENT(pCurrentArg, LOGLEVEL)) {
// convert string into dword argument
dwArgument = DWORD_ARGUMENT(pCurrentArg, LOGLEVEL);
// store in global argument structure
g_CmdLineArguments.nLogLevel = dwArgument;
// modify the level at which logging occurs
SnmpSvcSetLogLevel(g_CmdLineArguments.nLogLevel);
} else if (IS_ARGUMENT(pCurrentArg, LOGTYPE)) {
// convert string into dword argument
dwArgument = DWORD_ARGUMENT(pCurrentArg, LOGTYPE);
// store in global argument structure
g_CmdLineArguments.nLogType = dwArgument;
// modify the log type used during logging
SnmpSvcSetLogType(g_CmdLineArguments.nLogType);
} else if (IS_ARGUMENT(pCurrentArg, DEBUG)) {
// disable service controller when debugging
g_CmdLineArguments.fBypassCtrlDispatcher = TRUE;
} else if (NumberOfArgs) {
SNMPDBG((
SNMP_LOG_WARNING,
"SNMP: SVC: Ignoring argument %s.\n",
pCurrentArg
));
}
}
return TRUE;
}