Skip to content

Commit e873e9f

Browse files
committed
improvement: readability and refactor
Signed-off-by: Aminu 'Seun Joshua <[email protected]>
1 parent ae1b608 commit e873e9f

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

crates/trigger-http/src/server.rs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,16 @@ impl<F: RuntimeFactors> HttpServer<F> {
153153
Err(err) => {
154154
if self.find_free_port && err.kind() == ErrorKind::AddrInUse {
155155
let mut found_listener = None;
156+
let mut addr = self.listen_addr;
156157
for _ in 1..=9 {
157-
let mut addr = self.listen_addr;
158158
addr.set_port(addr.port() + 1);
159159

160+
if !addr.port() == u16::MAX {
161+
return Err(anyhow::anyhow!(
162+
"Couldn't find a free port as we've reached the maximum port number. Consider retrying with a lower base port."
163+
));
164+
}
165+
160166
match TcpListener::bind(addr).await {
161167
Ok(listener) => {
162168
found_listener = Some(listener);
@@ -166,21 +172,21 @@ impl<F: RuntimeFactors> HttpServer<F> {
166172
if err.kind() == ErrorKind::AddrInUse {
167173
continue;
168174
}
169-
return Err(anyhow::anyhow!("Unable to listen on {}", addr));
175+
return Err(anyhow::anyhow!(
176+
"Unable to listen on {}",
177+
self.listen_addr
178+
));
170179
}
171180
}
172181
}
173182

174-
match found_listener {
175-
Some(listener) => listener,
176-
None => {
177-
return Err(anyhow::anyhow!(
178-
"All retries failed. Unable to bind to a free port"
179-
));
180-
}
181-
}
183+
found_listener.ok_or_else(|| anyhow::anyhow!(
184+
"Couldn't find a free port in the range {}-{}. Consider retrying with a different base port.",
185+
self.listen_addr.port(),
186+
self.listen_addr.port() + 9
187+
))?
182188
} else {
183-
return Err(anyhow::anyhow!("Unable to listen on {}", self.listen_addr));
189+
return Err(anyhow::anyhow!("Unable to listen on {}. To have Spin search for a free port, use the --find-free-port option.", self.listen_addr));
184190
}
185191
}
186192
};

tests/testing-framework/src/runtimes/in_process_spin.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ async fn initialize_trigger(
104104
.await?;
105105

106106
let app = spin_app::App::new("my-app", locked_app);
107-
let trigger = HttpTrigger::new(&app, "127.0.0.1:80".parse().unwrap(), None, true)?;
107+
let trigger = HttpTrigger::new(&app, "127.0.0.1:80".parse().unwrap(), None, false)?;
108108
let mut builder = TriggerAppBuilder::<_, FactorsBuilder>::new(trigger);
109109
let trigger_app = builder
110110
.build(

0 commit comments

Comments
 (0)