1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "remoting/protocol/network_settings.h"
10 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/string_util.h"
17 bool NetworkSettings::ParsePortRange(const std::string
& port_range
,
19 uint16
* out_max_port
) {
20 size_t separator_index
= port_range
.find('-');
21 if (separator_index
== std::string::npos
)
24 std::string min_port_string
, max_port_string
;
25 base::TrimWhitespaceASCII(port_range
.substr(0, separator_index
),
28 base::TrimWhitespaceASCII(port_range
.substr(separator_index
+ 1),
32 unsigned min_port
, max_port
;
33 if (!base::StringToUint(min_port_string
, &min_port
) ||
34 !base::StringToUint(max_port_string
, &max_port
)) {
38 if (min_port
== 0 || min_port
> max_port
|| max_port
> USHRT_MAX
)
41 *out_min_port
= static_cast<uint16
>(min_port
);
42 *out_max_port
= static_cast<uint16
>(max_port
);
46 } // namespace protocol
47 } // namespace remoting