Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
Kea
Commits
b8d6b949
Commit
b8d6b949
authored
Feb 12, 2013
by
Marcin Siodelski
Browse files
[2700] Fix issue where the cmd line switches are printed as ASCII codes.
parent
ea110815
Changes
3
Hide whitespace changes
Inline
Side-by-side
tests/tools/perfdhcp/command_options.cc
View file @
b8d6b949
// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
// Copyright (C) 2012
-2013
Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
...
...
@@ -87,7 +87,7 @@ CommandOptions::reset() {
}
bool
CommandOptions
::
parse
(
int
argc
,
char
**
const
argv
)
{
CommandOptions
::
parse
(
int
argc
,
char
**
const
argv
,
bool
print_cmd_line
)
{
// Reset internal variables used by getopt
// to eliminate undefined behavior when
// parsing different command lines multiple times
...
...
@@ -125,7 +125,7 @@ CommandOptions::parse(int argc, char** const argv) {
reset
();
// Informs if program has been run with 'h' or 'v' option.
bool
help_or_version_mode
=
initialize
(
argc
,
argv
);
bool
help_or_version_mode
=
initialize
(
argc
,
argv
,
print_cmd_line
);
if
(
!
help_or_version_mode
)
{
validate
();
}
...
...
@@ -133,7 +133,7 @@ CommandOptions::parse(int argc, char** const argv) {
}
bool
CommandOptions
::
initialize
(
int
argc
,
char
**
argv
)
{
CommandOptions
::
initialize
(
int
argc
,
char
**
argv
,
bool
print_cmd_line
)
{
int
opt
=
0
;
// Subsequent options returned by getopt()
std
::
string
drop_arg
;
// Value of -D<value>argument
size_t
percent_loc
=
0
;
// Location of % sign in -D<value>
...
...
@@ -151,10 +151,10 @@ CommandOptions::initialize(int argc, char** argv) {
// they will be tuned and validated elsewhere
while
((
opt
=
getopt
(
argc
,
argv
,
"hv46r:t:R:b:n:p:d:D:l:P:a:L:"
"s:iBc1T:X:O:E:S:I:x:w:"
))
!=
-
1
)
{
stream
<<
" -"
<<
opt
;
stream
<<
" -"
<<
static_cast
<
char
>
(
opt
)
;
if
(
optarg
)
{
stream
<<
" "
<<
optarg
;
}
}
switch
(
opt
)
{
case
'1'
:
use_first_
=
true
;
...
...
@@ -416,7 +416,9 @@ CommandOptions::initialize(int argc, char** argv) {
}
}
std
::
cout
<<
"Running: "
<<
stream
.
str
()
<<
std
::
endl
;
if
(
print_cmd_line
)
{
std
::
cout
<<
"Running: "
<<
stream
.
str
()
<<
std
::
endl
;
}
// Handle the local '-l' address/interface
if
(
!
localname_
.
empty
())
{
...
...
tests/tools/perfdhcp/command_options.h
View file @
b8d6b949
// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
// Copyright (C) 2012
-2013
Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
...
...
@@ -56,9 +56,10 @@ public:
///
/// \param argc Argument count passed to main().
/// \param argv Argument value array passed to main().
/// \param print_cmd_line Print the command line being run to the console.
/// \throws isc::InvalidParameter if parse fails.
/// \return true if program has been run in help or version mode ('h' or 'v' flag).
bool
parse
(
int
argc
,
char
**
const
argv
);
bool
parse
(
int
argc
,
char
**
const
argv
,
bool
print_cmd_line
=
false
);
/// \brief Returns IP version.
///
...
...
@@ -261,9 +262,10 @@ private:
///
/// \param argc Argument count passed to main().
/// \param argv Argument value array passed to main().
/// \param print_cmd_line Print the command line being run to the console.
/// \throws isc::InvalidParameter if command line options initialization fails.
/// \return true if program has been run in help or version mode ('h' or 'v' flag).
bool
initialize
(
int
argc
,
char
**
argv
);
bool
initialize
(
int
argc
,
char
**
argv
,
bool
print_cmd_line
);
/// \brief Validates initialized options.
///
...
...
tests/tools/perfdhcp/main.cc
View file @
b8d6b949
// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
// Copyright (C) 2012
-2013
Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
...
...
@@ -32,7 +32,11 @@ main(int argc, char* argv[]) {
// If parser returns true it means that user specified
// 'h' or 'v' command line option. Program shows the
// help or version message and exits here.
if
(
command_options
.
parse
(
argc
,
argv
))
{
// The third argument indicates that the command line
// should be printed when it gets parsed. This is useful
// in particular when the command line needs to be
// extracted from the log file.
if
(
command_options
.
parse
(
argc
,
argv
,
true
))
{
return
(
ret_code
);
}
}
catch
(
isc
::
Exception
&
e
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment