Add error handling to the unit_atoX() functions #1394
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
master
or3.1-STABLE
) to which this pull request applies: masterHi there,
I added an error handling to the
unit_atoX()
functions here when parsing commandline arguments.src/units.c needs to include the large iperf_api.h now for
i_errno
only. It could be cleaner to factor out the declarations of i_errno and related functions to an iperf_error.h instead to reduce the coupling here. I could change that, if preferred?Citing the commit for more description of the change:
Previously, the
unit_atoX()
functions did not have any error handling: Calling e.g.iperf3 -nZ -c ...
would silently hide the fact that-n
requires a numeric argument and also not apply the-Z
(it was “consumed” byunit_atoi()
). The intention was to pass-NZ
here.With this change, iperf3 will refuse options where
unit_atoX()
did not find any numeric value or detect an invalid suffix (not one of KMGT). For example: