From cfc348764aa1accd089b9a58a2ee74f2ff5a5108 Mon Sep 17 00:00:00 2001 From: Nikolay Kim Date: Mon, 1 Apr 2024 23:18:44 +0300 Subject: [PATCH] Fix external configuration handling (#332) --- ntex-server/CHANGES.md | 4 ++++ ntex-server/Cargo.toml | 2 +- ntex-server/src/net/config.rs | 20 +++++++++++--------- ntex-server/src/net/service.rs | 5 ++--- ntex-server/src/wrk.rs | 4 ++-- ntex/Cargo.toml | 2 +- 6 files changed, 21 insertions(+), 16 deletions(-) diff --git a/ntex-server/CHANGES.md b/ntex-server/CHANGES.md index df8b14acd..fde095fac 100644 --- a/ntex-server/CHANGES.md +++ b/ntex-server/CHANGES.md @@ -1,5 +1,9 @@ # Changes +## [1.0.5] - 2024-04-02 + +* Fix external configuration handling + ## [1.0.4] - 2024-03-30 * Fix signals support #324 diff --git a/ntex-server/Cargo.toml b/ntex-server/Cargo.toml index 4af4af0bd..322fe4ef9 100644 --- a/ntex-server/Cargo.toml +++ b/ntex-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ntex-server" -version = "1.0.4" +version = "1.0.5" authors = ["ntex contributors "] description = "Server for ntex framework" keywords = ["network", "framework", "async", "futures"] diff --git a/ntex-server/src/net/config.rs b/ntex-server/src/net/config.rs index bf9508c30..72a30c6f0 100644 --- a/ntex-server/src/net/config.rs +++ b/ntex-server/src/net/config.rs @@ -193,15 +193,17 @@ impl FactoryService for ConfiguredService { let mut services = mem::take(&mut rt.0.borrow_mut().services); let mut res = Vec::new(); - while let Some(Some(svc)) = services.pop() { - for entry in names.values() { - if entry.idx == services.len() { - res.push(NetService { - pool: entry.pool, - tokens: entry.tokens.clone(), - factory: svc, - }); - break; + while let Some(svc) = services.pop() { + if let Some(svc) = svc { + for entry in names.values() { + if entry.idx == services.len() { + res.push(NetService { + pool: entry.pool, + tokens: entry.tokens.clone(), + factory: svc, + }); + break; + } } } } diff --git a/ntex-server/src/net/service.rs b/ntex-server/src/net/service.rs index b015ec4ad..efdcd56a7 100644 --- a/ntex-server/src/net/service.rs +++ b/ntex-server/src/net/service.rs @@ -107,6 +107,7 @@ impl ServiceFactory for StreamService { for info in &self.services { match info.factory.create(()).await { Ok(svc) => { + log::debug!("Constructed server service for {:?}", info.tokens); services.push(svc); let idx = services.len() - 1; for (token, tag) in &info.tokens { @@ -123,12 +124,10 @@ impl ServiceFactory for StreamService { } } - let conns = MAX_CONNS_COUNTER.with(|conns| conns.priv_clone()); - Ok(StreamServiceImpl { tokens, services, - conns, + conns: MAX_CONNS_COUNTER.with(|conns| conns.priv_clone()), }) } } diff --git a/ntex-server/src/wrk.rs b/ntex-server/src/wrk.rs index b208aa92a..a19554da8 100644 --- a/ntex-server/src/wrk.rs +++ b/ntex-server/src/wrk.rs @@ -90,9 +90,9 @@ impl Worker { let _ = spawn(async move { log::info!("Starting worker {:?}", id); - log::debug!("Creating server instance in {:?} worker", id); + log::debug!("Creating server instance in {:?}", id); let factory = cfg.create().await; - log::debug!("Server instance has been created in {:?} worker", id); + log::debug!("Server instance has been created in {:?}", id); match create(id, rx1, rx2, factory, avail_tx).await { Ok((svc, wrk)) => { diff --git a/ntex/Cargo.toml b/ntex/Cargo.toml index 294b40bb8..fc6c340a8 100644 --- a/ntex/Cargo.toml +++ b/ntex/Cargo.toml @@ -64,7 +64,7 @@ ntex-service = "2.0.1" ntex-macros = "0.1.3" ntex-util = "1.0.1" ntex-bytes = "0.1.24" -ntex-server = "1.0.3" +ntex-server = "1.0.5" ntex-h2 = "0.5.2" ntex-rt = "0.4.12" ntex-io = "1.0.1"