Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(transport): Add GlobalOnly Transport implementation #3814

Merged
merged 27 commits into from
May 10, 2023
Merged
Changes from 2 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
fab04b1
upstream GlobalIpOnly
tcoratger Apr 13, 2023
adbf33c
Merge remote-tracking branch 'origin/master' into GlobalOnlyTransport
tcoratger Apr 23, 2023
0521653
add is_global function and utils for ipv4 in GlobalOnly
tcoratger Apr 23, 2023
5ab87b4
add is_global for ipv6
tcoratger Apr 24, 2023
9d81e2a
Merge branch 'master' into GlobalOnlyTransport
tcoratger Apr 25, 2023
d46b9e3
add changelog
tcoratger Apr 25, 2023
6560de1
Update core/src/transport/global_only.rs
tcoratger Apr 25, 2023
c41452e
Merge branch 'master' into GlobalOnlyTransport
thomaseizinger Apr 25, 2023
6eaa889
Update core/src/transport/global_only.rs
tcoratger Apr 25, 2023
16db216
pub const functions ipv4 and ipv6 to const functions
tcoratger Apr 25, 2023
65bbfbe
early returns in dial
tcoratger Apr 25, 2023
4d6f143
replace Ipv4Global and Ipv6Global pub struct by private mod
tcoratger Apr 25, 2023
7e8a53d
add test is_global address to dial_as_listener
tcoratger Apr 26, 2023
85d90ef
Merge branch 'master' into GlobalOnlyTransport
tcoratger Apr 26, 2023
819f357
Merge branch 'master' into GlobalOnlyTransport
tcoratger Apr 27, 2023
3f76a8a
Merge branch 'master' into GlobalOnlyTransport
tcoratger May 8, 2023
cb61a13
rename GlobalIpOnly to Transport
tcoratger May 8, 2023
391afb2
Merge branch 'master' into GlobalOnlyTransport
tcoratger May 8, 2023
08f1bd3
Update core/CHANGELOG.md
tcoratger May 8, 2023
c3c9d11
move changelog item to top
tcoratger May 8, 2023
7d9640c
remove import to fully-qualifying
tcoratger May 8, 2023
da5e61c
add std implementation for is_global ipv4 and ipv6
tcoratger May 8, 2023
f01dc2b
fix clippy
tcoratger May 9, 2023
79d1903
Merge branch 'master' into GlobalOnlyTransport
tcoratger May 9, 2023
13233a4
remove #in doc examples
tcoratger May 9, 2023
318fbb5
Merge branch 'master' into GlobalOnlyTransport
tcoratger May 9, 2023
b2512cd
Merge branch 'master' into GlobalOnlyTransport
mergify[bot] May 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions core/src/transport/global_only.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@
use crate::{
multiaddr::{Multiaddr, Protocol},
transport::{ListenerId, TransportError, TransportEvent},
Transport,
};

use crate::Transport as TransportCore;
tcoratger marked this conversation as resolved.
Show resolved Hide resolved
use log::debug;
use std::{
pin::Pin,
Expand All @@ -31,7 +32,7 @@ use std::{

/// Dropping all dial requests to non-global IP addresses.
#[derive(Debug, Clone, Default)]
pub struct GlobalIpOnly<T> {
pub struct Transport<T> {
inner: T,
}

Expand Down Expand Up @@ -290,17 +291,17 @@ mod ipv6_global {
}
}

impl<T> GlobalIpOnly<T> {
impl<T> Transport<T> {
pub fn new(transport: T) -> Self {
GlobalIpOnly { inner: transport }
Transport { inner: transport }
}
}

impl<T: Transport + Unpin> Transport for GlobalIpOnly<T> {
type Output = <T as Transport>::Output;
type Error = <T as Transport>::Error;
type ListenerUpgrade = <T as Transport>::ListenerUpgrade;
type Dial = <T as Transport>::Dial;
impl<T: TransportCore + Unpin> TransportCore for Transport<T> {
type Output = <T as TransportCore>::Output;
type Error = <T as TransportCore>::Error;
type ListenerUpgrade = <T as TransportCore>::ListenerUpgrade;
type Dial = <T as TransportCore>::Dial;
tcoratger marked this conversation as resolved.
Show resolved Hide resolved

fn listen_on(&mut self, addr: Multiaddr) -> Result<ListenerId, TransportError<Self::Error>> {
self.inner.listen_on(addr)
Expand Down