Browse Source

Merge 699fc2e60b into dd7a4a1dea

pull/254/merge
Paper-Dragon 3 days ago
committed by GitHub
parent
commit
97984893b0
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 9
      Dockerfile
  2. 10
      src/lib.rs

9
Dockerfile

@ -25,11 +25,10 @@ FROM rust:latest AS musl-builder
&& rustup target add "$ARCH-unknown-linux-musl" \
&& cargo build --release --target "$ARCH-unknown-linux-musl"
RUN mkdir /.etc \
&& touch /.etc/resolv.conf \
&& mkdir /.tmp \
&& chmod 777 /.tmp \
&& chmod +t /.tmp
RUN mkdir -p etc tmp \
&& touch etc/resolv.conf \
&& chmod 777 tmp \
&& chmod +t tmp
####################################################################################################
## Alpine image

10
src/lib.rs

@ -139,7 +139,15 @@ async fn create_tcp_stream(socket_queue: &Option<Arc<SocketQueue>>, peer: Socket
async fn create_udp_stream(socket_queue: &Option<Arc<SocketQueue>>, peer: SocketAddr) -> std::io::Result<UdpStream> {
match &socket_queue {
None => UdpStream::connect(peer).await,
None => {
let bind_addr = match peer {
SocketAddr::V4(_) => SocketAddr::from((std::net::Ipv4Addr::UNSPECIFIED, 0)),
SocketAddr::V6(_) => SocketAddr::from((std::net::Ipv6Addr::UNSPECIFIED, 0)),
};
let socket = UdpSocket::bind(bind_addr).await?;
socket.connect(peer).await?;
UdpStream::from_tokio(socket, peer).await
}
Some(queue) => {
let socket = queue.recv_udp(peer.ip().into()).await?;
socket.connect(peer).await?;

Loading…
Cancel
Save