mirror of https://github.com/ospab/ostp.git
Fix linux format args, proxy config fields, and unused warnings
This commit is contained in:
parent
1865f66e48
commit
9e50984549
|
|
@ -221,7 +221,7 @@ impl Bridge {
|
|||
}
|
||||
}
|
||||
ProtocolAction::SendDatagram(frame) => {
|
||||
let _ = send_datagram(&session.socket, &frame, (self.transport_mode == "udp")).await;
|
||||
let _ = send_datagram(&session.socket, &frame, self.transport_mode == "udp" ).await;
|
||||
self.metrics.bytes_sent.fetch_add(frame.len() as u64, Ordering::Relaxed);
|
||||
}
|
||||
_ => {}
|
||||
|
|
@ -274,7 +274,7 @@ impl Bridge {
|
|||
let session_index = sessions.len();
|
||||
let socket_clone = sock.clone();
|
||||
let udp_tx_clone = udp_tx.clone();
|
||||
let is_webrtc = (self.transport_mode == "udp");
|
||||
let is_webrtc = self.transport_mode == "udp" ;
|
||||
tokio::spawn(async move {
|
||||
let mut buf = vec![0_u8; 65535];
|
||||
loop {
|
||||
|
|
@ -364,7 +364,7 @@ impl Bridge {
|
|||
let session_index = new_sessions.len();
|
||||
let socket_clone = sock.clone();
|
||||
let udp_tx_clone = udp_tx.clone();
|
||||
let is_webrtc = (self.transport_mode == "udp");
|
||||
let is_webrtc = self.transport_mode == "udp" ;
|
||||
tokio::spawn(async move {
|
||||
let mut buf = vec![0_u8; 65535];
|
||||
loop {
|
||||
|
|
@ -475,7 +475,7 @@ impl Bridge {
|
|||
let session_index = new_sessions.len();
|
||||
let socket_clone = sock.clone();
|
||||
let udp_tx_clone = udp_tx.clone();
|
||||
let is_webrtc = (self.transport_mode == "udp");
|
||||
let is_webrtc = self.transport_mode == "udp" ;
|
||||
tokio::spawn(async move {
|
||||
let mut buf = vec![0_u8; 65535];
|
||||
loop {
|
||||
|
|
@ -529,14 +529,14 @@ impl Bridge {
|
|||
if let Ok(ProtocolAction::SendDatagram(frame)) = session.machine.on_event(OstpEvent::Outbound(0, ping_payload)) {
|
||||
// Must go through send_datagram() for TURN-mode wrapping;
|
||||
// raw socket.send() bypasses the ChannelData header and breaks RTT in TURN.
|
||||
let _ = send_datagram(&session.socket, &frame, (self.transport_mode == "udp")).await;
|
||||
let _ = send_datagram(&session.socket, &frame, self.transport_mode == "udp" ).await;
|
||||
self.metrics.bytes_sent.fetch_add(frame.len() as u64, Ordering::Relaxed);
|
||||
}
|
||||
|
||||
// Send Relay KeepAlive (Force NAT/Server Persistence)
|
||||
let ka_payload = Bytes::from(RelayMessage::KeepAlive.encode());
|
||||
if let Ok(ProtocolAction::SendDatagram(frame)) = session.machine.on_event(OstpEvent::Outbound(0, ka_payload)) {
|
||||
let _ = send_datagram(&session.socket, &frame, (self.transport_mode == "udp")).await;
|
||||
let _ = send_datagram(&session.socket, &frame, self.transport_mode == "udp" ).await;
|
||||
self.metrics.bytes_sent.fetch_add(frame.len() as u64, Ordering::Relaxed);
|
||||
}
|
||||
}
|
||||
|
|
@ -559,7 +559,7 @@ impl Bridge {
|
|||
}
|
||||
}
|
||||
ProtocolAction::SendDatagram(frame) => {
|
||||
let _ = send_datagram(&session.socket, &frame, (self.transport_mode == "udp")).await;
|
||||
let _ = send_datagram(&session.socket, &frame, self.transport_mode == "udp" ).await;
|
||||
self.metrics.bytes_sent.fetch_add(frame.len() as u64, Ordering::Relaxed);
|
||||
}
|
||||
_ => {}
|
||||
|
|
@ -622,7 +622,7 @@ impl Bridge {
|
|||
let out_payload = Bytes::from(relay_msg.encode());
|
||||
match session.machine.on_event(OstpEvent::Outbound(stream_id, out_payload)) {
|
||||
Ok(ProtocolAction::SendDatagram(frame)) => {
|
||||
if send_datagram(&session.socket, &frame, (self.transport_mode == "udp")).await.is_ok() {
|
||||
if send_datagram(&session.socket, &frame, self.transport_mode == "udp" ).await.is_ok() {
|
||||
self.metrics.bytes_sent.fetch_add(frame.len() as u64, Ordering::Relaxed);
|
||||
if self.debug {
|
||||
let _ = tx.send(UiEvent::Log(format!(
|
||||
|
|
@ -636,7 +636,7 @@ impl Bridge {
|
|||
let mut sent = 0usize;
|
||||
for item in list {
|
||||
if let ProtocolAction::SendDatagram(frame) = item {
|
||||
if send_datagram(&session.socket, &frame, (self.transport_mode == "udp")).await.is_ok() {
|
||||
if send_datagram(&session.socket, &frame, self.transport_mode == "udp" ).await.is_ok() {
|
||||
self.metrics.bytes_sent.fetch_add(frame.len() as u64, Ordering::Relaxed);
|
||||
sent += 1;
|
||||
}
|
||||
|
|
@ -830,7 +830,7 @@ impl Bridge {
|
|||
if attempt > 0 {
|
||||
tx.send(UiEvent::Log(format!("Handshake attempt {} lost. Retransmitting...", attempt))).await.ok();
|
||||
}
|
||||
send_datagram(&socket, &handshake_frame, (self.transport_mode == "udp")).await?;
|
||||
send_datagram(&socket, &handshake_frame, self.transport_mode == "udp" ).await?;
|
||||
self.metrics.bytes_sent.fetch_add(handshake_frame.len() as u64, Ordering::Relaxed);
|
||||
|
||||
match timeout(Duration::from_millis(attempt_timeout_ms), socket.recv(&mut buf)).await {
|
||||
|
|
@ -856,7 +856,7 @@ impl Bridge {
|
|||
if attempt > 0 {
|
||||
tx.send(UiEvent::Log(format!("NAT64 handshake attempt {} lost. Retransmitting...", attempt))).await.ok();
|
||||
}
|
||||
send_datagram(&fallback_socket, &handshake_frame, (self.transport_mode == "udp")).await?;
|
||||
send_datagram(&fallback_socket, &handshake_frame, self.transport_mode == "udp" ).await?;
|
||||
match timeout(Duration::from_millis(1200), fallback_socket.recv(&mut buf)).await {
|
||||
Ok(Ok(n)) => {
|
||||
size = n;
|
||||
|
|
|
|||
|
|
@ -169,16 +169,19 @@ pub async fn run_client_core(
|
|||
#[cfg(target_os = "linux")]
|
||||
if config.mode == "proxy" {
|
||||
println!("\n[ostp] ===========================================================================");
|
||||
println!("[ostp] Proxy mode initialized on {}:{}", config.local_proxy.bind_host, config.local_proxy.bind_port);
|
||||
println!("[ostp] Proxy mode initialized on {}", config.local_proxy.bind_addr);
|
||||
println!("[ostp] To use this proxy in your current terminal session, run:");
|
||||
println!("[ostp] export http_proxy=\"http://{}:{}\"", config.local_proxy.bind_host, config.local_proxy.bind_port);
|
||||
println!("[ostp] export https_proxy=\"http://{}:{}\"", config.local_proxy.bind_host, config.local_proxy.bind_port);
|
||||
println!("[ostp] export all_proxy=\"socks5://{}:{}\"", config.local_proxy.bind_host, config.local_proxy.bind_port);
|
||||
println!("[ostp] export http_proxy=\"http://{}\"", config.local_proxy.bind_addr);
|
||||
println!("[ostp] export https_proxy=\"http://{}\"", config.local_proxy.bind_addr);
|
||||
println!("[ostp] export all_proxy=\"socks5://{}\"", config.local_proxy.bind_addr);
|
||||
println!("[ostp] ");
|
||||
println!("[ostp] For GNOME desktop system-wide proxy, you can use:");
|
||||
println!("[ostp] gsettings set org.gnome.system.proxy mode 'manual'");
|
||||
println!("[ostp] gsettings set org.gnome.system.proxy.http host '{}'", config.local_proxy.bind_host);
|
||||
println!("[ostp] gsettings set org.gnome.system.proxy.http port {}", config.local_proxy.bind_port);
|
||||
let mut parts = config.local_proxy.bind_addr.split(':');
|
||||
let host = parts.next().unwrap_or("127.0.0.1");
|
||||
let port = parts.next().unwrap_or("1088");
|
||||
println!("[ostp] gsettings set org.gnome.system.proxy.http host '{}'", host);
|
||||
println!("[ostp] gsettings set org.gnome.system.proxy.http port {}", port);
|
||||
println!("[ostp] ===========================================================================\n");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ mod danger {
|
|||
use rustls::client::danger::{HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier};
|
||||
use rustls::pki_types::{CertificateDer, ServerName, UnixTime};
|
||||
use rustls::DigitallySignedStruct;
|
||||
use rustls::crypto::CryptoProvider;
|
||||
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct NoCertificateVerification;
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ pub async fn run_linux_tunnel(
|
|||
ip route add 1.1.1.1 via {} dev {}; \
|
||||
ip route add 0.0.0.0/1 dev ostp_tun; \
|
||||
ip route add 128.0.0.0/1 dev ostp_tun",
|
||||
server_ip_str, default_gw, default_if,
|
||||
config.ostp.mtu, server_ip_str, default_gw, default_if,
|
||||
default_gw, default_if
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -230,3 +230,12 @@ pub async fn run_wintun_tunnel(
|
|||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
#[allow(dead_code)]
|
||||
pub async fn run_wintun_tunnel(
|
||||
_config: crate::config::ClientConfig,
|
||||
_shutdown: watch::Receiver<bool>,
|
||||
) -> Result<()> {
|
||||
Err(anyhow!("Wintun driver executed on a non-Windows host!"))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ use std::net::SocketAddr;
|
|||
use std::sync::{Arc, RwLock as StdRwLock};
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
use tokio::io::{AsyncReadExt, AsyncWriteExt};
|
||||
use tokio::net::TcpStream;
|
||||
use tokio::sync::{mpsc, RwLock};
|
||||
use tracing::info;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue