From b5dd0e18e73866b042ae1a92cbc38ceeceb6b8e3 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Sat, 29 Aug 2026 21:23:39 +0200 Subject: [PATCH 1/2] [CODE HEALTH] Use uint16_t for port numbers in ext/http/server --- .../opentelemetry/ext/http/server/http_server.h | 4 ++-- .../opentelemetry/ext/http/server/socket_tools.h | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ext/include/opentelemetry/ext/http/server/http_server.h b/ext/include/opentelemetry/ext/http/server/http_server.h index a69f1fdd8..75b5d355d 100644 --- a/ext/include/opentelemetry/ext/http/server/http_server.h +++ b/ext/include/opentelemetry/ext/http/server/http_server.h @@ -173,7 +173,7 @@ class HttpServer : private SocketTools::Reactor::SocketCallback m_maxRequestContentSize(2 * 1024 * 1024) {} - HttpServer(const std::string &serverHost, int port = 30000) : HttpServer() + HttpServer(const std::string &serverHost, uint16_t port = 30000) : HttpServer() { std::ostringstream os; os << serverHost << ":" << port; @@ -202,7 +202,7 @@ class HttpServer : private SocketTools::Reactor::SocketCallback void setServerName(std::string const &name) { m_serverHost = name; } - int addListeningPort(int port) + int addListeningPort(uint16_t port) { SocketTools::Socket socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); socket.setNonBlocking(); diff --git a/ext/include/opentelemetry/ext/http/server/socket_tools.h b/ext/include/opentelemetry/ext/http/server/socket_tools.h index 25a8fd2ed..d38ac8f8a 100644 --- a/ext/include/opentelemetry/ext/http/server/socket_tools.h +++ b/ext/include/opentelemetry/ext/http/server/socket_tools.h @@ -175,11 +175,11 @@ struct SocketAddr /// SocketAddr SocketAddr() {} - SocketAddr(u_long addr, int port) + SocketAddr(u_long addr, uint16_t port) { sockaddr_in &inet4 = reinterpret_cast(m_data); inet4.sin_family = AF_INET; - inet4.sin_port = htons(static_cast(port)); + inet4.sin_port = htons(port); inet4.sin_addr.s_addr = htonl(addr); } @@ -223,8 +223,8 @@ struct SocketAddr // accept a leading sign or whitespace and depend on the locale. if (ok && colon) { - char const *p = colon + 1; - unsigned int port = 0; + char const *p = colon + 1; + uint16_t port = 0; if (*p == '\0') { ok = false; // empty port, e.g. "127.0.0.1:" @@ -247,7 +247,7 @@ struct SocketAddr } if (ok) { - parsed.sin_port = htons(static_cast(port)); + parsed.sin_port = htons(port); } } From c190646c1f30ca23c39e44fc734e2a53444ec1f2 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Sat, 29 Aug 2026 23:22:14 +0200 Subject: [PATCH 2/2] Fix msvc warnings --- ext/include/opentelemetry/ext/http/server/socket_tools.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/include/opentelemetry/ext/http/server/socket_tools.h b/ext/include/opentelemetry/ext/http/server/socket_tools.h index d38ac8f8a..c52c90a37 100644 --- a/ext/include/opentelemetry/ext/http/server/socket_tools.h +++ b/ext/include/opentelemetry/ext/http/server/socket_tools.h @@ -236,7 +236,7 @@ struct SocketAddr ok = false; break; } - unsigned int const digit = static_cast(*p - '0'); + const uint16_t digit = static_cast(*p - '0'); if (port > (65535u - digit) / 10u) { ok = false; // would exceed 65535