Skip to content

Commit 5e5d00b

Browse files
committed
fix: resolve clippy warnings and improve code quality
Signed-off-by: Eeshu-Yadav <[email protected]>
1 parent e942545 commit 5e5d00b

File tree

12 files changed

+91
-97
lines changed

12 files changed

+91
-97
lines changed

orion-configuration/src/config/cluster.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ impl From<LbEndpointVecDeser> for Vec<LbEndpoint> {
155155
Address::Internal(internal_addr) => Some(LbEndpoint {
156156
address: EndpointAddress::Internal(InternalEndpointAddress {
157157
server_listener_name: internal_addr.server_listener_name.into(),
158-
endpoint_id: internal_addr.endpoint_id.map(|id| id.into()),
158+
endpoint_id: internal_addr.endpoint_id.map(std::convert::Into::into),
159159
}),
160160
health_status: HealthStatus::default(),
161161
load_balancing_weight: NonZeroU32::MIN,
@@ -193,7 +193,7 @@ impl EndpointAddress {
193193
pub fn into_addr(self) -> Result<SocketAddr, String> {
194194
match self {
195195
EndpointAddress::Socket(addr) => Ok(addr),
196-
EndpointAddress::Internal(_) => Err("Cannot convert internal address to socket address".to_string()),
196+
EndpointAddress::Internal(_) => Err("Cannot convert internal address to socket address".to_owned()),
197197
}
198198
}
199199
}
@@ -785,7 +785,7 @@ mod envoy_conversions {
785785
Address::Socket(socket_addr) => Ok(EndpointAddress::Socket(socket_addr)),
786786
Address::Internal(internal_addr) => Ok(EndpointAddress::Internal(InternalEndpointAddress {
787787
server_listener_name: internal_addr.server_listener_name.into(),
788-
endpoint_id: internal_addr.endpoint_id.map(|id| id.into()),
788+
endpoint_id: internal_addr.endpoint_id.map(std::convert::Into::into),
789789
})),
790790
Address::Pipe(_, _) => {
791791
Err(GenericError::unsupported_variant("Pipe addresses are not supported for endpoints"))

orion-configuration/src/config/core.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ pub mod envoy_conversions {
305305
impl std::fmt::Display for Address {
306306
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
307307
match self {
308-
Self::Socket(addr) => write!(f, "{}", addr),
308+
Self::Socket(addr) => write!(f, "{addr}"),
309309
Self::Internal(internal) => write!(f, "internal:{}", internal.server_listener_name),
310310
Self::Pipe(path, _) => f.write_str(path),
311311
}

orion-configuration/src/config/runtime.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ fn get_cgroup_v2_cpu_limit() -> crate::Result<usize> {
144144
}
145145

146146
fn parse_cgroup_v2_cpu_max(content: &str) -> crate::Result<usize> {
147-
let parts: Vec<&str> = content.trim().split_whitespace().collect();
147+
let parts: Vec<&str> = content.split_whitespace().collect();
148148
if parts.len() == 2 && parts[0] != "max" {
149149
let quota: i64 = parts[0].parse()?;
150150
let period: i64 = parts[1].parse()?;
@@ -160,8 +160,8 @@ fn parse_cgroup_v2_cpu_max(content: &str) -> crate::Result<usize> {
160160

161161
fn get_cgroup_v1_cpu_limit() -> crate::Result<usize> {
162162
let cgroup_path = get_cgroup_v1_cpu_path()?;
163-
let quota_path = format!("{}/cpu.cfs_quota_us", cgroup_path);
164-
let period_path = format!("{}/cpu.cfs_period_us", cgroup_path);
163+
let quota_path = format!("{cgroup_path}/cpu.cfs_quota_us");
164+
let period_path = format!("{cgroup_path}/cpu.cfs_period_us");
165165

166166
let quota_content = std::fs::read_to_string(&quota_path)?;
167167
let period_content = std::fs::read_to_string(&period_path)?;
@@ -193,7 +193,7 @@ fn parse_cgroup_v1_cpu_path(cgroup_content: &str) -> crate::Result<String> {
193193
let mut parts = line.split(':');
194194
if let (Some(_), Some(controllers), Some(path)) = (parts.next(), parts.next(), parts.next()) {
195195
if controllers.split(',').any(|c| c == "cpu") {
196-
return Some(format!("/sys/fs/cgroup/cpu{}", path));
196+
return Some(format!("/sys/fs/cgroup/cpu{path}"));
197197
}
198198
}
199199
None
@@ -202,7 +202,7 @@ fn parse_cgroup_v1_cpu_path(cgroup_content: &str) -> crate::Result<String> {
202202
}
203203

204204
if std::path::Path::new("/sys/fs/cgroup/cpu").exists() {
205-
Ok("/sys/fs/cgroup/cpu".to_string())
205+
Ok("/sys/fs/cgroup/cpu".to_owned())
206206
} else {
207207
Err("CPU cgroup path not found".into())
208208
}

orion-lib/src/clusters/load_assignment.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ impl EndpointAddressType {
8080
if let Ok(socket_addr) = addr_str.parse::<std::net::SocketAddr>() {
8181
EndpointAddress::Socket(socket_addr)
8282
} else {
83-
panic!("Cannot convert authority back to socket address: {}", addr_str);
83+
panic!("Cannot convert authority back to socket address: {addr_str}");
8484
}
8585
},
8686
EndpointAddressType::Internal(internal_addr, _) => EndpointAddress::Internal(internal_addr.clone()),

orion-lib/src/listeners/filter_state.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ pub enum DownstreamConnectionMetadata {
4545
proxy_local_address: SocketAddr,
4646
},
4747
/// Internal connections from in-process communication (e.g., waypoint proxy)
48-
/// - listener_name: identifies which internal listener accepted this connection
49-
/// - endpoint_id: optional identifier for the specific endpoint (used for load balancing)
48+
/// - `listener_name`: identifies which internal listener accepted this connection
49+
/// - `endpoint_id`: optional identifier for the specific endpoint (used for load balancing)
5050
FromInternal {
5151
listener_name: String,
5252
endpoint_id: Option<String>,

orion-lib/src/listeners/http_connection_manager.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,7 +1024,7 @@ impl Service<ExtendedRequest<Incoming>> for HttpRequestHandler {
10241024
add,
10251025
1,
10261026
trans_handler.thread_id(),
1027-
&[KeyValue::new("listener", listener_name_for_route.to_string())]
1027+
&[KeyValue::new("listener", listener_name_for_route.to_owned())]
10281028
);
10291029

10301030
if let Some(state) = trans_handler.span_state.as_ref() {
@@ -1049,7 +1049,7 @@ impl Service<ExtendedRequest<Incoming>> for HttpRequestHandler {
10491049
add,
10501050
nbytes + resp_head_size as u64,
10511051
trans_handler.thread_id(),
1052-
&[KeyValue::new("listener", listener_name_for_response.to_string())]
1052+
&[KeyValue::new("listener", listener_name_for_response.to_owned())]
10531053
);
10541054

10551055
let is_transaction_complete = if let Some(ctx) = trans_handler.access_log_ctx.as_ref() {

orion-lib/src/listeners/http_connection_manager/route.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ impl<'a> RequestHandler<(MatchedRequest<'a>, &HttpConnectionManager)> for &Route
194194
let err = err.into_inner();
195195
let event_error = EventError::try_infer_from(&err);
196196
let flags = event_error.clone().map(ResponseFlags::from).unwrap_or_default();
197-
let event_kind = event_error.map_or(EventKind::ViaUpstream, |e| EventKind::Error(e));
197+
let event_kind = event_error.map_or(EventKind::ViaUpstream, EventKind::Error);
198198
debug!(
199199
"HttpConnectionManager Error processing response {:?}: {}({})",
200200
err,
@@ -211,7 +211,7 @@ impl<'a> RequestHandler<(MatchedRequest<'a>, &HttpConnectionManager)> for &Route
211211
let err = err.into_inner();
212212
let event_error = EventError::try_infer_from(&err);
213213
let flags = event_error.clone().map(ResponseFlags::from).unwrap_or_default();
214-
let event_kind = event_error.map_or(EventKind::ViaUpstream, |e| EventKind::Error(e));
214+
let event_kind = event_error.map_or(EventKind::ViaUpstream, EventKind::Error);
215215
debug!(
216216
"Failed to get an HTTP connection: {:?}: {}({})",
217217
err,

orion-lib/src/listeners/listener.rs

Lines changed: 62 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -57,44 +57,6 @@ use tokio::{
5757
};
5858
use tracing::{debug, info, warn};
5959

60-
async fn handle_internal_connection_static(
61-
listener_name: String,
62-
connection_pair: crate::transport::InternalConnectionPair,
63-
filter_chains: Arc<HashMap<FilterChainMatch, FilterchainType>>,
64-
) -> Result<()> {
65-
use crate::listeners::filter_state::DownstreamConnectionMetadata;
66-
67-
debug!("Handling new internal connection for listener '{}'", listener_name);
68-
69-
let downstream_metadata = DownstreamConnectionMetadata::FromInternal {
70-
listener_name: listener_name.clone(),
71-
endpoint_id: connection_pair.downstream.metadata().endpoint_id.clone(),
72-
};
73-
74-
let filter_chain = match Listener::select_filterchain(&filter_chains, &downstream_metadata, None)? {
75-
Some(fc) => fc,
76-
None => {
77-
warn!("No matching filter chain found for internal connection");
78-
return Err(crate::Error::new("No matching filter chain"));
79-
},
80-
};
81-
82-
let _downstream_stream = connection_pair.downstream;
83-
84-
match &filter_chain.handler {
85-
crate::listeners::filterchain::ConnectionHandler::Http(_http_manager) => {
86-
info!("Processing internal connection through HTTP filter chain");
87-
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
88-
Ok(())
89-
},
90-
crate::listeners::filterchain::ConnectionHandler::Tcp(_tcp_proxy) => {
91-
info!("Processing internal connection through TCP filter chain");
92-
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
93-
Ok(())
94-
},
95-
}
96-
}
97-
9860
#[derive(Debug)]
9961
struct InternalConnectionWorkerPool {
10062
senders: Vec<mpsc::UnboundedSender<InternalConnectionTask>>,
@@ -402,7 +364,7 @@ impl Listener {
402364
maybe_route_update = route_updates_receiver.recv() => {
403365
//todo: add context to the error here once orion-error lands
404366
match maybe_route_update {
405-
Ok(route_update) => {Self::process_route_update(&name, &filter_chains, route_update)},
367+
Ok(route_update) => {Self::process_route_update(name, &filter_chains, route_update)},
406368
Err(e) => {return e.into();}
407369
}
408370
},
@@ -411,7 +373,7 @@ impl Listener {
411373
Ok(secret_update) => {
412374
// todo: possibly expensive clone - may need to rethink this structure
413375
let mut filter_chains_clone = filter_chains.as_ref().clone();
414-
Self::process_secret_update(&name, &mut filter_chains_clone, secret_update);
376+
Self::process_secret_update(name, &mut filter_chains_clone, secret_update);
415377
filter_chains = Arc::new(filter_chains_clone);
416378
}
417379
Err(e) => {return e.into();}
@@ -436,7 +398,7 @@ impl Listener {
436398
let filter_chains = Arc::new(filter_chains);
437399
let factory = global_internal_connection_factory();
438400

439-
let (_handle, mut connection_receiver, _listener_ref) = match factory.register_listener(name.to_string()).await
401+
let (_handle, mut connection_receiver, _listener_ref) = match factory.register_listener(name.to_owned()).await
440402
{
441403
Ok(result) => result,
442404
Err(e) => {
@@ -450,35 +412,32 @@ impl Listener {
450412
loop {
451413
tokio::select! {
452414
maybe_connection = connection_receiver.recv() => {
453-
match maybe_connection {
454-
Some(connection_pair) => {
455-
debug!("Internal listener '{}' received new connection", name);
456-
457-
let filter_chains_clone = filter_chains.clone();
458-
let listener_name = name.to_string();
459-
460-
// Use worker pool instead of tokio::spawn for better performance
461-
// with large numbers of short connections
462-
let task = InternalConnectionTask {
463-
listener_name,
464-
connection_pair,
465-
filter_chains: filter_chains_clone,
466-
};
467-
468-
if let Err(e) = get_internal_worker_pool().submit_task(task) {
469-
warn!("Failed to submit internal connection task: {}", e);
470-
}
471-
}
472-
None => {
473-
warn!("Internal listener '{}' connection channel closed", name);
474-
break;
415+
if let Some(connection_pair) = maybe_connection {
416+
debug!("Internal listener '{}' received new connection", name);
417+
418+
let filter_chains_clone = filter_chains.clone();
419+
let listener_name = name.to_owned();
420+
421+
// Use worker pool instead of tokio::spawn for better performance
422+
// with large numbers of short connections
423+
let task = InternalConnectionTask {
424+
listener_name,
425+
connection_pair,
426+
filter_chains: filter_chains_clone,
427+
};
428+
429+
if let Err(e) = get_internal_worker_pool().submit_task(task) {
430+
warn!("Failed to submit internal connection task: {}", e);
475431
}
432+
} else {
433+
warn!("Internal listener '{}' connection channel closed", name);
434+
break;
476435
}
477436
},
478437
maybe_route_update = route_updates_receiver.recv() => {
479438
match maybe_route_update {
480439
Ok(route_update) => {
481-
Self::process_route_update(&name, &filter_chains, route_update);
440+
Self::process_route_update(name, &filter_chains, route_update);
482441
}
483442
Err(e) => {
484443
error!("Route update error for internal listener '{}': {}", name, e);
@@ -490,7 +449,7 @@ impl Listener {
490449
match maybe_secret_update {
491450
Ok(secret_update) => {
492451
let mut filter_chains_clone = filter_chains.as_ref().clone();
493-
Self::process_secret_update(&name, &mut filter_chains_clone, secret_update);
452+
Self::process_secret_update(name, &mut filter_chains_clone, secret_update);
494453
// TODO: Update the shared filter chains state for active connections
495454
}
496455
Err(e) => {
@@ -616,8 +575,8 @@ impl Listener {
616575

617576
let ssl = AtomicBool::new(false);
618577
defer! {
619-
with_metric!(listeners::DOWNSTREAM_CX_DESTROY, add, 1, shard_id, &[KeyValue::new("listener", listener_name.to_string())]);
620-
with_metric!(listeners::DOWNSTREAM_CX_ACTIVE, sub, 1, shard_id, &[KeyValue::new("listener", listener_name.to_string())]);
578+
with_metric!(listeners::DOWNSTREAM_CX_DESTROY, add, 1, shard_id, &[KeyValue::new("listener", listener_name.to_owned())]);
579+
with_metric!(listeners::DOWNSTREAM_CX_ACTIVE, sub, 1, shard_id, &[KeyValue::new("listener", listener_name.to_owned())]);
621580
if ssl.load(Ordering::Relaxed) {
622581
with_metric!(http::DOWNSTREAM_CX_SSL_ACTIVE, add, 1, shard_id, &[KeyValue::new("listener", listener_name)]);
623582
}
@@ -656,7 +615,7 @@ impl Listener {
656615
add,
657616
1,
658617
shard_id,
659-
&[KeyValue::new("listener", listener_name.to_string())]
618+
&[KeyValue::new("listener", listener_name.to_owned())]
660619
);
661620
with_metric!(
662621
http::DOWNSTREAM_CX_SSL_ACTIVE,
@@ -1014,3 +973,38 @@ filter_chains:
1014973
assert_eq!(Listener::select_filterchain(&m, &metadata, Some("hello.world")).unwrap().copied(), Some(3));
1015974
}
1016975
}
976+
977+
async fn handle_internal_connection_static(
978+
listener_name: String,
979+
connection_pair: crate::transport::InternalConnectionPair,
980+
filter_chains: Arc<HashMap<FilterChainMatch, FilterchainType>>,
981+
) -> Result<()> {
982+
use crate::listeners::filter_state::DownstreamConnectionMetadata;
983+
984+
debug!("Handling new internal connection for listener '{}'", listener_name);
985+
986+
let downstream_metadata = DownstreamConnectionMetadata::FromInternal {
987+
listener_name: listener_name.clone(),
988+
endpoint_id: connection_pair.downstream.metadata().endpoint_id.clone(),
989+
};
990+
991+
let filter_chain = if let Some(fc) = Listener::select_filterchain(&filter_chains, &downstream_metadata, None)? { fc } else {
992+
warn!("No matching filter chain found for internal connection");
993+
return Err(crate::Error::new("No matching filter chain"));
994+
};
995+
996+
let _downstream_stream = connection_pair.downstream;
997+
998+
match &filter_chain.handler {
999+
crate::listeners::filterchain::ConnectionHandler::Http(_http_manager) => {
1000+
info!("Processing internal connection through HTTP filter chain");
1001+
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
1002+
Ok(())
1003+
},
1004+
crate::listeners::filterchain::ConnectionHandler::Tcp(_tcp_proxy) => {
1005+
info!("Processing internal connection through TCP filter chain");
1006+
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
1007+
Ok(())
1008+
},
1009+
}
1010+
}

orion-lib/src/listeners/listeners_manager.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ impl ListenersManager {
119119
warn!("Internal problem when updating a route: {e}");
120120
}
121121
},
122-
_ = ct.cancelled() => {
122+
() = ct.cancelled() => {
123123
warn!("Listener manager exiting");
124124
return Ok(());
125125
}
@@ -128,7 +128,7 @@ impl ListenersManager {
128128
}
129129

130130
pub fn start_listener(&mut self, listener: Listener, listener_conf: ListenerConfig) -> Result<()> {
131-
let listener_name = listener.get_name().to_string();
131+
let listener_name = listener.get_name().to_owned();
132132
if let Some((addr, dev)) = listener.get_socket() {
133133
info!("Listener {} at {addr} (device bind:{})", listener_name, dev.is_some());
134134
} else {
@@ -148,7 +148,7 @@ impl ListenersManager {
148148
let listener_info = ListenerInfo::new(join_handle, listener_conf, version);
149149
self.listener_handles.insert(listener_name.clone(), listener_info);
150150

151-
let version_count = self.listener_handles.get_vec(&listener_name).map(|v| v.len()).unwrap_or(0);
151+
let version_count = self.listener_handles.get_vec(&listener_name).map(std::vec::Vec::len).unwrap_or(0);
152152
info!("Started version {} of listener {} ({} total active version(s))", version, listener_name, version_count);
153153

154154
Ok(())

orion-lib/src/transport/internal_cluster_connector.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ impl InternalChannelConnector {
8383
Ok(InternalChannel {
8484
stream,
8585
cluster_name: self.cluster_name,
86-
listener_name: self.connector.listener_name().to_string(),
87-
endpoint_id: self.connector.endpoint_id().map(|s| s.to_string()),
86+
listener_name: self.connector.listener_name().to_owned(),
87+
endpoint_id: self.connector.endpoint_id().map(std::borrow::ToOwned::to_owned),
8888
})
8989
}
9090

@@ -115,7 +115,7 @@ impl InternalChannel {
115115
}
116116

117117
pub mod cluster_helpers {
118-
use super::*;
118+
use super::{InternalChannelConnector, global_internal_connection_factory};
119119
use orion_configuration::config::cluster::InternalEndpointAddress;
120120

121121
pub fn create_internal_connector(
@@ -125,7 +125,7 @@ pub mod cluster_helpers {
125125
InternalChannelConnector::new(
126126
internal_addr.server_listener_name.to_string(),
127127
cluster_name,
128-
internal_addr.endpoint_id.as_ref().map(|s| s.to_string()),
128+
internal_addr.endpoint_id.as_ref().map(std::string::ToString::to_string),
129129
)
130130
}
131131

0 commit comments

Comments
 (0)