Skip to content

Commit fbe6068

Browse files
committed
Fix formatting for PR
Signed-off-by: asingh-g <[email protected]>
1 parent 27b7cdc commit fbe6068

File tree

11 files changed

+304
-283
lines changed

11 files changed

+304
-283
lines changed

api/client/options.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ message CommandLineOptions {
162162
Protocol protocol = 107;
163163
}
164164

165-
// Options for routing requests via a proxy. if set, requests
165+
// Options for routing requests via a proxy. if set, requests
166166
// are encapsulated and forwarded to a terminating proxy running at
167167
// tunnel_uri.
168168
// When the oneof_protocol field is set to H1 or H2, an HTTP CONNECT
@@ -185,7 +185,7 @@ message CommandLineOptions {
185185
// auto is recommended to avoid bottlenecking nighthawk with encapsulation
186186
// Default: auto.
187187
google.protobuf.StringValue tunnel_concurrency =
188-
119; // [(validate.rules).string = {pattern: "^([0-9]*|auto)$"}];
188+
119; // [(validate.rules).string = {pattern: "^([0-9]*|auto)$"}];
189189
}
190190

191191
TunnelOptions tunnel_options = 114;

source/client/BUILD

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,16 @@ envoy_cc_library(
5050
"//include/nighthawk/client:options_lib",
5151
"//source/common:nighthawk_common_lib",
5252
"@envoy//source/common/common:statusor_lib_with_external_headers",
53+
"@envoy//source/common/formatter:formatter_extension_lib",
54+
"@envoy//source/extensions/filters/network/tcp_proxy:config",
55+
"@envoy//source/extensions/filters/udp/udp_proxy:config",
56+
"@envoy//source/extensions/filters/udp/udp_proxy:udp_proxy_filter_lib",
57+
"@envoy//source/extensions/filters/udp/udp_proxy/session_filters/http_capsule:config",
5358
"@envoy_api//envoy/config/bootstrap/v3:pkg_cc_proto",
5459
"@envoy_api//envoy/extensions/filters/network/tcp_proxy/v3:pkg_cc_proto",
5560
"@envoy_api//envoy/extensions/filters/udp/udp_proxy/session/dynamic_forward_proxy/v3:pkg_cc_proto",
56-
"@envoy_api//envoy/extensions/filters/udp/udp_proxy/v3:pkg_cc_proto",
57-
"@envoy//source/extensions/filters/udp/udp_proxy/session_filters/http_capsule:config",
5861
"@envoy_api//envoy/extensions/filters/udp/udp_proxy/session/http_capsule/v3:pkg_cc_proto",
59-
"@envoy//source/extensions/filters/udp/udp_proxy:udp_proxy_filter_lib",
60-
"@envoy//source/extensions/filters/network/tcp_proxy:config",
61-
"@envoy//source/extensions/filters/udp/udp_proxy:config",
62-
"@envoy//source/common/formatter:formatter_extension_lib",
62+
"@envoy_api//envoy/extensions/filters/udp/udp_proxy/v3:pkg_cc_proto",
6363
],
6464
)
6565

@@ -130,7 +130,6 @@ envoy_cc_library(
130130
"@envoy//source/common/network:address_lib_with_external_headers",
131131
"@envoy//source/common/protobuf:message_validator_lib_with_external_headers",
132132
"@envoy//source/common/protobuf:utility_lib_with_external_headers",
133-
"@envoy//source/exe:main_common_lib_with_external_headers",
134133
"@envoy//source/common/router:context_lib_with_external_headers",
135134
"@envoy//source/common/runtime:runtime_lib_with_external_headers",
136135
"@envoy//source/common/secret:secret_manager_impl_lib_with_external_headers",
@@ -145,6 +144,7 @@ envoy_cc_library(
145144
"@envoy//source/common/tracing:tracer_lib_with_external_headers",
146145
"@envoy//source/common/upstream:cluster_manager_lib_with_external_headers",
147146
"@envoy//source/exe:all_extensions_lib_with_external_headers",
147+
"@envoy//source/exe:main_common_lib_with_external_headers",
148148
"@envoy//source/exe:platform_header_lib_with_external_headers",
149149
"@envoy//source/exe:platform_impl_lib",
150150
"@envoy//source/exe:process_wide_lib_with_external_headers",

source/client/options_impl.cc

Lines changed: 60 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
#include "source/client/options_impl.h"
22

3+
#include <sys/socket.h>
4+
5+
#include <cerrno>
6+
#include <cstdint>
7+
#include <exception>
8+
39
#include "external/envoy/source/common/protobuf/message_validator_impl.h"
410
#include "external/envoy/source/common/protobuf/protobuf.h"
511
#include "external/envoy/source/common/protobuf/utility.h"
@@ -12,15 +18,10 @@
1218
#include "source/common/version_info.h"
1319

1420
#include "absl/strings/numbers.h"
21+
#include "absl/strings/str_cat.h"
1522
#include "absl/strings/str_split.h"
1623
#include "absl/types/optional.h"
17-
#include "absl/strings/str_cat.h"
18-
1924
#include "fmt/ranges.h"
20-
#include <cerrno>
21-
#include <cstdint>
22-
#include <exception>
23-
#include <sys/socket.h>
2425

2526
namespace Nighthawk {
2627
namespace Client {
@@ -36,8 +37,8 @@ using ::nighthawk::client::Protocol;
3637
uint16_t OptionsImpl::GetAvailablePort(bool udp) {
3738
int family = (address_family_ == nighthawk::client::AddressFamily::V4) ? AF_INET : AF_INET6;
3839
int sock = socket(family, udp ? SOCK_DGRAM : SOCK_STREAM, udp ? 0 : IPPROTO_TCP);
39-
if(sock < 0) {
40-
throw NighthawkException(absl::StrCat("could not create socket: ", strerror(errno)) );
40+
if (sock < 0) {
41+
throw NighthawkException(absl::StrCat("could not create socket: ", strerror(errno)));
4142
return 0;
4243
}
4344

@@ -53,52 +54,48 @@ uint16_t OptionsImpl::GetAvailablePort(bool udp) {
5354
struct sockaddr_in6 sin6;
5455
} addr;
5556
size_t size;
56-
if(family == AF_INET){
57+
if (family == AF_INET) {
5758
size = sizeof(sockaddr_in);
5859
memset(&addr, 0, size);
5960
addr.sin.sin_family = AF_INET;
6061
addr.sin.sin_addr.s_addr = INADDR_ANY;
6162
addr.sin.sin_port = 0;
62-
}
63-
else {
63+
} else {
6464
size = sizeof(sockaddr_in6);
6565
memset(&addr, 0, size);
6666
addr.sin6.sin6_family = AF_INET6;
6767
addr.sin6.sin6_addr = in6addr_any;
68-
addr.sin6.sin6_port = 0;
68+
addr.sin6.sin6_port = 0;
6969
}
7070

71-
if (bind(sock, reinterpret_cast<struct sockaddr *>(&addr), size) < 0) {
72-
if(errno == EADDRINUSE) {
73-
throw NighthawkException(absl::StrCat("Port allocated already in use"));
74-
} else {
75-
throw NighthawkException(absl::StrCat("Could not bind to process: ", strerror(errno)) );
76-
}
77-
return 0;
71+
if (bind(sock, reinterpret_cast<struct sockaddr*>(&addr), size) < 0) {
72+
if (errno == EADDRINUSE) {
73+
throw NighthawkException(absl::StrCat("Port allocated already in use"));
74+
} else {
75+
throw NighthawkException(absl::StrCat("Could not bind to process: ", strerror(errno)));
76+
}
77+
return 0;
7878
}
7979

8080
socklen_t len = size;
81-
if (getsockname(sock, reinterpret_cast<struct sockaddr *>(&addr), &len) == -1) {
82-
throw NighthawkException(absl::StrCat("Could not get sock name: ", strerror(errno)) );
83-
return 0;
81+
if (getsockname(sock, reinterpret_cast<struct sockaddr*>(&addr), &len) == -1) {
82+
throw NighthawkException(absl::StrCat("Could not get sock name: ", strerror(errno)));
83+
return 0;
8484
}
8585

86-
uint16_t port = ntohs(family == AF_INET
87-
? reinterpret_cast<struct sockaddr_in *>(&addr)->sin_port
88-
: reinterpret_cast<struct sockaddr_in6 *>(&addr)->sin6_port);
86+
uint16_t port =
87+
ntohs(family == AF_INET ? reinterpret_cast<struct sockaddr_in*>(&addr)->sin_port
88+
: reinterpret_cast<struct sockaddr_in6*>(&addr)->sin6_port);
8989

9090
// close the socket, freeing the port to be used later.
91-
if (close (sock) < 0 ) {
92-
throw NighthawkException(absl::StrCat("Could not close socket: ", strerror(errno)) );
93-
return 0;
91+
if (close(sock) < 0) {
92+
throw NighthawkException(absl::StrCat("Could not close socket: ", strerror(errno)));
93+
return 0;
9494
}
9595

9696
return port;
97-
9897
}
9998

100-
101-
10299
OptionsImpl::OptionsImpl(int argc, const char* const* argv) {
103100
setNonTrivialDefaults();
104101
// Override some defaults, we are in CLI-mode.
@@ -159,8 +156,8 @@ OptionsImpl::OptionsImpl(int argc, const char* const* argv) {
159156
"{quic_protocol_options:{max_concurrent_streams:1}}",
160157
false, "", "string", cmd);
161158

162-
std::vector<std::string> tunnel_protocols = {"http1", "http2", "http3"};
163-
TCLAP::ValuesConstraint<std::string> tunnel_protocols_allowed(tunnel_protocols);
159+
std::vector<std::string> tunnel_protocols = {"http1", "http2", "http3"};
160+
TCLAP::ValuesConstraint<std::string> tunnel_protocols_allowed(tunnel_protocols);
164161
TCLAP::ValueArg<std::string> tunnel_protocol(
165162
"", "tunnel-protocol",
166163
fmt::format(
@@ -170,7 +167,8 @@ OptionsImpl::OptionsImpl(int argc, const char* const* argv) {
170167
"and protocol = HTTP3 and tunnel_protocol = HTTP3"
171168
"When protocol is set to HTTP3 and tunneling is enabled, the CONNECT-UDP method is used"
172169
"Otherwise, the HTTP CONNECT method is used",
173-
absl::AsciiStrToLower(nighthawk::client::Protocol_ProtocolOptions_Name(tunnel_protocol_))),
170+
absl::AsciiStrToLower(
171+
nighthawk::client::Protocol_ProtocolOptions_Name(tunnel_protocol_))),
174172
false, "", &tunnel_protocols_allowed, cmd);
175173
TCLAP::ValueArg<std::string> tunnel_uri(
176174
"", "tunnel-uri",
@@ -182,7 +180,8 @@ OptionsImpl::OptionsImpl(int argc, const char* const* argv) {
182180
TCLAP::ValueArg<std::string> tunnel_http3_protocol_options(
183181
"", "tunnel-http3-protocol-options",
184182
"Tunnel HTTP3 protocol options (envoy::config::core::v3::Http3ProtocolOptions) in json. If "
185-
"specified, Nighthawk uses these HTTP3 protocol options when encapsulating requests. Only valid "
183+
"specified, Nighthawk uses these HTTP3 protocol options when encapsulating requests. Only "
184+
"valid "
186185
"with --tunnel-protocol http3.",
187186
false, "", "string", cmd);
188187
TCLAP::ValueArg<std::string> tunnel_tls_context(
@@ -208,8 +207,7 @@ OptionsImpl::OptionsImpl(int argc, const char* const* argv) {
208207
fmt::format(
209208
"The number of concurrent event loops that should be used. Specify 'auto' to let "
210209
"Nighthawk use half the threads specified via the concurrency flag for tunneling.",
211-
"Default: auto",
212-
tunnel_concurrency_),
210+
"Default: auto", tunnel_concurrency_),
213211
false, "auto", "string", cmd);
214212

215213
std::vector<std::string> log_levels = {"trace", "debug", "info", "warn", "error", "critical"};
@@ -797,31 +795,31 @@ OptionsImpl::OptionsImpl(int argc, const char* const* argv) {
797795
if (tunnel_protocol.isSet()) {
798796
std::string upper_cased = tunnel_protocol.getValue();
799797
absl::AsciiStrToUpper(&upper_cased);
800-
RELEASE_ASSERT(nighthawk::client::Protocol::ProtocolOptions_Parse(upper_cased, &tunnel_protocol_),
801-
"Failed to parse tunnel protocol");
802-
if(!tunnel_uri.isSet()){
798+
RELEASE_ASSERT(
799+
nighthawk::client::Protocol::ProtocolOptions_Parse(upper_cased, &tunnel_protocol_),
800+
"Failed to parse tunnel protocol");
801+
if (!tunnel_uri.isSet()) {
803802
throw MalformedArgvException("--tunnel-protocol requires --tunnel-uri");
804803
}
805804
tunnel_uri_ = tunnel_uri.getValue();
806805
encap_port_ = GetAvailablePort(/*udp=*/protocol_ == Protocol::HTTP3);
807806
tunnel_concurrency_ = tunnel_concurrency.getValue();
808807

809-
}
810-
else if (tunnel_uri.isSet() ||tunnel_http3_protocol_options.isSet()
811-
|| tunnel_tls_context.isSet() || tunnel_concurrency.isSet()) {
808+
} else if (tunnel_uri.isSet() || tunnel_http3_protocol_options.isSet() ||
809+
tunnel_tls_context.isSet() || tunnel_concurrency.isSet()) {
812810
throw MalformedArgvException("tunnel flags require --tunnel-protocol");
813811
}
814812

815813
if (!tunnel_tls_context.getValue().empty()) {
816814
try {
817-
tunnel_tls_context_.emplace(envoy::extensions::transport_sockets::tls::v3::UpstreamTlsContext());
815+
tunnel_tls_context_.emplace(
816+
envoy::extensions::transport_sockets::tls::v3::UpstreamTlsContext());
818817
Envoy::MessageUtil::loadFromJson(tunnel_tls_context.getValue(), tunnel_tls_context_.value(),
819818
Envoy::ProtobufMessage::getStrictValidationVisitor());
820-
} catch (const Envoy::EnvoyException& e) {
819+
} catch (const Envoy::EnvoyException& e) {
821820
throw MalformedArgvException(e.what());
822821
}
823-
}
824-
else if(tunnel_protocol_ == Protocol::HTTP3){
822+
} else if (tunnel_protocol_ == Protocol::HTTP3) {
825823
throw MalformedArgvException("--tunnel-tls-context is required to use --tunnel-protocol http3");
826824
}
827825

@@ -841,12 +839,14 @@ OptionsImpl::OptionsImpl(int argc, const char* const* argv) {
841839
}
842840
}
843841

844-
if(tunnel_protocol.isSet()){
845-
if(tunnel_protocol_ == Protocol::HTTP3 && protocol_ == Protocol::HTTP3){
846-
throw MalformedArgvException("--protocol HTTP3 over --tunnel-protocol HTTP3 is not supported");
842+
if (tunnel_protocol.isSet()) {
843+
if (tunnel_protocol_ == Protocol::HTTP3 && protocol_ == Protocol::HTTP3) {
844+
throw MalformedArgvException(
845+
"--protocol HTTP3 over --tunnel-protocol HTTP3 is not supported");
847846
}
848-
if(tunnel_protocol_ == Protocol::HTTP1 && protocol_ == Protocol::HTTP3){
849-
throw MalformedArgvException("--protocol HTTP3 over --tunnel-protocol HTTP1 is not supported");
847+
if (tunnel_protocol_ == Protocol::HTTP1 && protocol_ == Protocol::HTTP3) {
848+
throw MalformedArgvException(
849+
"--protocol HTTP3 over --tunnel-protocol HTTP1 is not supported");
850850
}
851851
}
852852

@@ -863,7 +863,6 @@ Envoy::Http::Protocol OptionsImpl::protocol() const {
863863
}
864864
}
865865

866-
867866
Envoy::Http::Protocol OptionsImpl::tunnelProtocol() const {
868867
if (tunnel_protocol_ == Protocol::HTTP2) {
869868
return Envoy::Http::Protocol::Http2;
@@ -937,18 +936,20 @@ OptionsImpl::OptionsImpl(const nighthawk::client::CommandLineOptions& options) {
937936
burst_size_ = PROTOBUF_GET_WRAPPED_OR_DEFAULT(options, burst_size, burst_size_);
938937
address_family_ = PROTOBUF_GET_WRAPPED_OR_DEFAULT(options, address_family, address_family_);
939938

940-
941-
if(options.has_tunnel_options()) {
942-
tunnel_protocol_ = PROTOBUF_GET_WRAPPED_OR_DEFAULT(options.tunnel_options(), tunnel_protocol, tunnel_protocol_);
939+
if (options.has_tunnel_options()) {
940+
tunnel_protocol_ = PROTOBUF_GET_WRAPPED_OR_DEFAULT(options.tunnel_options(), tunnel_protocol,
941+
tunnel_protocol_);
943942
tunnel_uri_ = options.tunnel_options().tunnel_uri();
944-
943+
945944
// we must find an available port for the encap listener
946945
encap_port_ = GetAvailablePort(/*is_udp=*/protocol_ == Protocol::HTTP3);
947-
concurrency_ = PROTOBUF_GET_WRAPPED_OR_DEFAULT(options.tunnel_options(), tunnel_concurrency, tunnel_concurrency_);
946+
concurrency_ = PROTOBUF_GET_WRAPPED_OR_DEFAULT(options.tunnel_options(), tunnel_concurrency,
947+
tunnel_concurrency_);
948948

949949
if (options.tunnel_options().has_tunnel_http3_protocol_options()) {
950950
tunnel_http3_protocol_options_.emplace(Http3ProtocolOptions());
951-
tunnel_http3_protocol_options_.value().MergeFrom(options.tunnel_options().tunnel_http3_protocol_options());
951+
tunnel_http3_protocol_options_.value().MergeFrom(
952+
options.tunnel_options().tunnel_http3_protocol_options());
952953
}
953954
tunnel_tls_context_->MergeFrom(options.tunnel_options().tunnel_tls_context());
954955
}

source/client/options_impl.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,13 @@ class OptionsImpl : public Options, public Envoy::Logger::Loggable<Envoy::Logger
4444
std::string tunnelUri() const override { return tunnel_uri_; }
4545
uint32_t encapPort() const override { return encap_port_; }
4646
virtual const absl::optional<envoy::extensions::transport_sockets::tls::v3::UpstreamTlsContext>
47-
tunnelTlsContext() const override {return tunnel_tls_context_;}
47+
tunnelTlsContext() const override {
48+
return tunnel_tls_context_;
49+
}
4850
virtual const absl::optional<envoy::config::core::v3::Http3ProtocolOptions>&
49-
tunnelHttp3ProtocolOptions() const override{return tunnel_http3_protocol_options_;}
51+
tunnelHttp3ProtocolOptions() const override {
52+
return tunnel_http3_protocol_options_;
53+
}
5054

5155
const absl::optional<envoy::config::core::v3::Http3ProtocolOptions>&
5256
http3ProtocolOptions() const override {
@@ -156,7 +160,8 @@ class OptionsImpl : public Options, public Envoy::Logger::Loggable<Envoy::Logger
156160
uint32_t encap_port_{0};
157161
std::string tunnel_concurrency_;
158162
absl::optional<envoy::config::core::v3::Http3ProtocolOptions> tunnel_http3_protocol_options_;
159-
absl::optional<envoy::extensions::transport_sockets::tls::v3::UpstreamTlsContext> tunnel_tls_context_;
163+
absl::optional<envoy::extensions::transport_sockets::tls::v3::UpstreamTlsContext>
164+
tunnel_tls_context_;
160165

161166
nighthawk::client::Verbosity::VerbosityOptions verbosity_{nighthawk::client::Verbosity::WARN};
162167
nighthawk::client::OutputFormat::OutputFormatOptions output_format_{

0 commit comments

Comments
 (0)