aboutsummaryrefslogtreecommitdiff
path: root/lldb/tools/debugserver/source/debugserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/debugserver/source/debugserver.cpp')
-rw-r--r--lldb/tools/debugserver/source/debugserver.cpp16
1 files changed, 4 insertions, 12 deletions
diff --git a/lldb/tools/debugserver/source/debugserver.cpp b/lldb/tools/debugserver/source/debugserver.cpp
index bc1954d..0cb72f4 100644
--- a/lldb/tools/debugserver/source/debugserver.cpp
+++ b/lldb/tools/debugserver/source/debugserver.cpp
@@ -1345,18 +1345,10 @@ int main(int argc, char *argv[]) {
show_usage_and_exit(1);
}
// accept 'localhost:' prefix on port number
- std::string host_specifier = argv[0];
- auto colon_location = host_specifier.rfind(':');
- if (colon_location != std::string::npos) {
- host = host_specifier.substr(0, colon_location);
- std::string port_str =
- host_specifier.substr(colon_location + 1, std::string::npos);
- char *end_ptr;
- port = strtoul(port_str.c_str(), &end_ptr, 0);
- if (end_ptr < port_str.c_str() + port_str.size())
- show_usage_and_exit(2);
- if (host.front() == '[' && host.back() == ']')
- host = host.substr(1, host.size() - 2);
+
+ int items_scanned = ::sscanf(argv[0], "%[^:]:%i", str, &port);
+ if (items_scanned == 2) {
+ host = str;
DNBLogDebug("host = '%s' port = %i", host.c_str(), port);
} else {
// No hostname means "localhost"