Skip to content

Commit 23c9b92

Browse files
committed
Merge quic and quic_datagram links
The approach taken in 0351b5a wasn't necessary; unreliable QUIC can be implemented within the same link.
1 parent 9848cb2 commit 23c9b92

File tree

14 files changed

+162
-1507
lines changed

14 files changed

+162
-1507
lines changed

Cargo.lock

Lines changed: 0 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ members = [
3333
"io/zenoh-link",
3434
"io/zenoh-link-commons",
3535
"io/zenoh-links/zenoh-link-quic/",
36-
"io/zenoh-links/zenoh-link-quic_datagram/",
3736
"io/zenoh-links/zenoh-link-serial",
3837
"io/zenoh-links/zenoh-link-tcp/",
3938
"io/zenoh-links/zenoh-link-tls/",
@@ -217,7 +216,6 @@ zenoh-keyexpr = { version = "=1.5.0", path = "commons/zenoh-keyexpr", default-fe
217216
zenoh-link = { version = "=1.5.0", path = "io/zenoh-link" }
218217
zenoh-link-commons = { version = "=1.5.0", path = "io/zenoh-link-commons" }
219218
zenoh-link-quic = { version = "=1.5.0", path = "io/zenoh-links/zenoh-link-quic" }
220-
zenoh-link-quic_datagram = { version = "=1.5.0", path = "io/zenoh-links/zenoh-link-quic_datagram" }
221219
zenoh-link-serial = { version = "=1.5.0", path = "io/zenoh-links/zenoh-link-serial" }
222220
zenoh-link-tcp = { version = "=1.5.0", path = "io/zenoh-links/zenoh-link-tcp" }
223221
zenoh-link-tls = { version = "=1.5.0", path = "io/zenoh-links/zenoh-link-tls" }

io/zenoh-link/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ version = { workspace = true }
2626

2727
[features]
2828
transport_quic = ["zenoh-link-quic"]
29-
transport_quic_datagram = ["zenoh-link-quic_datagram"]
3029
transport_serial = ["zenoh-link-serial"]
3130
transport_tcp = ["zenoh-config/transport_tcp", "zenoh-link-tcp"]
3231
transport_tls = ["zenoh-link-tls"]
@@ -43,7 +42,6 @@ transport_ws = ["zenoh-link-ws"]
4342
zenoh-config = { workspace = true }
4443
zenoh-link-commons = { workspace = true }
4544
zenoh-link-quic = { workspace = true, optional = true }
46-
zenoh-link-quic_datagram = { workspace = true, optional = true }
4745
zenoh-link-serial = { workspace = true, optional = true }
4846
zenoh-link-tcp = { workspace = true, optional = true }
4947
zenoh-link-tls = { workspace = true, optional = true }

io/zenoh-link/src/lib.rs

Lines changed: 4 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,6 @@ pub use zenoh_link_quic as quic;
2727
use zenoh_link_quic::{
2828
LinkManagerUnicastQuic, QuicConfigurator, QuicLocatorInspector, QUIC_LOCATOR_PREFIX,
2929
};
30-
#[cfg(feature = "transport_quic_datagram")]
31-
pub use zenoh_link_quic_datagram as quic_datagram;
32-
#[cfg(all(feature = "transport_quic_datagram", not(feature = "transport_quic")))]
33-
use zenoh_link_quic_datagram::QUIC_DATAGRAM_LOCATOR_PREFIX;
34-
#[cfg(feature = "transport_quic_datagram")]
35-
use zenoh_link_quic_datagram::{
36-
LinkManagerUnicastQuicDatagram, QuicDatagramConfigurator, QuicDatagramLocatorInspector,
37-
};
3830
#[cfg(feature = "transport_serial")]
3931
pub use zenoh_link_serial as serial;
4032
#[cfg(feature = "transport_serial")]
@@ -84,7 +76,6 @@ use zenoh_result::{bail, ZResult};
8476
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
8577
pub enum LinkKind {
8678
Quic,
87-
QuicDatagram,
8879
Serial,
8980
Tcp,
9081
Tls,
@@ -107,15 +98,8 @@ impl LinkKind {
10798
UDP_LOCATOR_PREFIX => supported_links.push(LinkKind::Udp),
10899
#[cfg(feature = "transport_tls")]
109100
TLS_LOCATOR_PREFIX => supported_links.push(LinkKind::Tls),
110-
#[cfg(all(feature = "transport_quic_datagram", not(feature = "transport_quic")))]
111-
QUIC_DATAGRAM_LOCATOR_PREFIX => supported_links.push(LinkKind::QuicDatagram),
112-
#[cfg(all(feature = "transport_quic", not(feature = "transport_quic_datagram")))]
113-
QUIC_LOCATOR_PREFIX => supported_links.push(LinkKind::QuicDatagram),
114-
#[cfg(all(feature = "transport_quic", feature = "transport_quic_datagram"))]
115-
QUIC_LOCATOR_PREFIX => {
116-
supported_links.push(LinkKind::Quic);
117-
supported_links.push(LinkKind::QuicDatagram);
118-
}
101+
#[cfg(feature = "transport_quic")]
102+
QUIC_LOCATOR_PREFIX => supported_links.push(LinkKind::Quic),
119103
#[cfg(all(feature = "transport_unixsock-stream", target_family = "unix"))]
120104
UNIXSOCKSTREAM_LOCATOR_PREFIX => supported_links.push(LinkKind::UnixsockStream),
121105
#[cfg(feature = "transport_ws")]
@@ -146,30 +130,8 @@ impl TryFrom<&Locator> for LinkKind {
146130
UDP_LOCATOR_PREFIX => Ok(LinkKind::Udp),
147131
#[cfg(feature = "transport_tls")]
148132
TLS_LOCATOR_PREFIX => Ok(LinkKind::Tls),
149-
#[cfg(all(feature = "transport_quic_datagram", not(feature = "transport_quic")))]
150-
QUIC_DATAGRAM_LOCATOR_PREFIX => {
151-
if !QuicDatagramLocatorInspector.is_reliable(locator)? {
152-
Ok(LinkKind::QuicDatagram)
153-
} else {
154-
Err(zenoh_result::zerror!("Attempted to use a reliable QUIC link without enabling the transport_quic feature").into())
155-
}
156-
}
157-
#[cfg(all(feature = "transport_quic", not(feature = "transport_quic_datagram")))]
158-
QUIC_LOCATOR_PREFIX => {
159-
if QuicLocatorInspector.is_reliable(locator)? {
160-
Ok(LinkKind::Quic)
161-
} else {
162-
Err(zenoh_result::zerror!("Cannot use unreliable QUIC without enabling the transport_quic_datagram feature").into())
163-
}
164-
}
165-
#[cfg(all(feature = "transport_quic", feature = "transport_quic_datagram"))]
166-
QUIC_LOCATOR_PREFIX => {
167-
if QuicLocatorInspector.is_reliable(locator)? {
168-
Ok(LinkKind::Quic)
169-
} else {
170-
Ok(LinkKind::QuicDatagram)
171-
}
172-
}
133+
#[cfg(feature = "transport_quic")]
134+
QUIC_LOCATOR_PREFIX => Ok(LinkKind::Quic),
173135
#[cfg(all(feature = "transport_unixsock-stream", target_family = "unix"))]
174136
UNIXSOCKSTREAM_LOCATOR_PREFIX => Ok(LinkKind::UnixsockStream),
175137
#[cfg(feature = "transport_ws")]
@@ -199,8 +161,6 @@ impl TryFrom<&EndPoint> for LinkKind {
199161
pub const ALL_SUPPORTED_LINKS: &[LinkKind] = &[
200162
#[cfg(feature = "transport_quic")]
201163
LinkKind::Quic,
202-
#[cfg(feature = "transport_quic_datagram")]
203-
LinkKind::QuicDatagram,
204164
#[cfg(feature = "transport_tcp")]
205165
LinkKind::Tcp,
206166
#[cfg(feature = "transport_tls")]
@@ -223,8 +183,6 @@ pub const ALL_SUPPORTED_LINKS: &[LinkKind] = &[
223183
pub struct LocatorInspector {
224184
#[cfg(feature = "transport_quic")]
225185
quic_inspector: QuicLocatorInspector,
226-
#[cfg(feature = "transport_quic_datagram")]
227-
quic_datagram_inspector: QuicDatagramLocatorInspector,
228186
#[cfg(feature = "transport_tcp")]
229187
tcp_inspector: TcpLocatorInspector,
230188
#[cfg(feature = "transport_tls")]
@@ -255,8 +213,6 @@ impl LocatorInspector {
255213
LinkKind::Tls => self.tls_inspector.is_reliable(locator),
256214
#[cfg(feature = "transport_quic")]
257215
LinkKind::Quic => self.quic_inspector.is_reliable(locator),
258-
#[cfg(feature = "transport_quic_datagram")]
259-
LinkKind::QuicDatagram => self.quic_datagram_inspector.is_reliable(locator),
260216
#[cfg(all(feature = "transport_unixsock-stream", target_family = "unix"))]
261217
LinkKind::UnixsockStream => self.unixsock_stream_inspector.is_reliable(locator),
262218
#[cfg(feature = "transport_ws")]
@@ -284,8 +240,6 @@ impl LocatorInspector {
284240
LinkKind::Tls => self.tls_inspector.is_multicast(locator).await,
285241
#[cfg(feature = "transport_quic")]
286242
LinkKind::Quic => self.quic_inspector.is_multicast(locator).await,
287-
#[cfg(feature = "transport_quic_datagram")]
288-
LinkKind::QuicDatagram => self.quic_datagram_inspector.is_multicast(locator).await,
289243
#[cfg(all(feature = "transport_unixsock-stream", target_family = "unix"))]
290244
LinkKind::UnixsockStream => self.unixsock_stream_inspector.is_multicast(locator).await,
291245
#[cfg(feature = "transport_ws")]
@@ -305,8 +259,6 @@ impl LocatorInspector {
305259
pub struct LinkConfigurator {
306260
#[cfg(feature = "transport_tcp")]
307261
tcp_inspector: TcpConfigurator,
308-
#[cfg(feature = "transport_quic_datagram")]
309-
quic_datagram_inspector: QuicDatagramConfigurator,
310262
#[cfg(feature = "transport_quic")]
311263
quic_inspector: QuicConfigurator,
312264
#[cfg(feature = "transport_tls")]
@@ -338,13 +290,6 @@ impl LinkConfigurator {
338290
{
339291
insert_config(LinkKind::Tcp, self.tcp_inspector.inspect_config(config));
340292
}
341-
#[cfg(feature = "transport_quic_datagram")]
342-
{
343-
insert_config(
344-
LinkKind::QuicDatagram,
345-
self.quic_datagram_inspector.inspect_config(config),
346-
);
347-
}
348293
#[cfg(feature = "transport_quic")]
349294
{
350295
insert_config(LinkKind::Quic, self.quic_inspector.inspect_config(config));
@@ -384,10 +329,6 @@ impl LinkManagerBuilderUnicast {
384329
LinkKind::Udp => Ok(std::sync::Arc::new(LinkManagerUnicastUdp::new(_manager))),
385330
#[cfg(feature = "transport_tls")]
386331
LinkKind::Tls => Ok(std::sync::Arc::new(LinkManagerUnicastTls::new(_manager))),
387-
#[cfg(feature = "transport_quic_datagram")]
388-
LinkKind::QuicDatagram => Ok(std::sync::Arc::new(LinkManagerUnicastQuicDatagram::new(
389-
_manager,
390-
))),
391332
#[cfg(feature = "transport_quic")]
392333
LinkKind::Quic => Ok(std::sync::Arc::new(LinkManagerUnicastQuic::new(_manager))),
393334
#[cfg(all(feature = "transport_unixsock-stream", target_family = "unix"))]

0 commit comments

Comments
 (0)