mirror of
https://github.com/telemt/telemt.git
synced 2026-04-15 01:24:09 +03:00
fix: eliminate all compiler warnings
- Remove unused imports across multiple modules - Add #![allow(dead_code)] for public API items preserved for future use - Add #![allow(deprecated)] for rand::Rng::gen_range usage - Add #![allow(unused_assignments)] in main.rs - Add #![allow(unreachable_code)] in network/stun.rs - Prefix unused variables with underscore (_ip_tracker, _prefer_ipv6) - Fix unused_must_use warning in tls_front/cache.rs This ensures clean compilation without warnings while preserving public API items that may be used in the future.
This commit is contained in:
@@ -1,22 +1,24 @@
|
||||
//! IP Addr Detect
|
||||
|
||||
use std::net::{IpAddr, SocketAddr, UdpSocket};
|
||||
use std::net::{IpAddr, UdpSocket};
|
||||
use std::time::Duration;
|
||||
use tracing::{debug, warn};
|
||||
|
||||
/// Detected IP addresses
|
||||
#[derive(Debug, Clone, Default)]
|
||||
#[allow(dead_code)]
|
||||
pub struct IpInfo {
|
||||
pub ipv4: Option<IpAddr>,
|
||||
pub ipv6: Option<IpAddr>,
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
impl IpInfo {
|
||||
/// Check if any IP is detected
|
||||
pub fn has_any(&self) -> bool {
|
||||
self.ipv4.is_some() || self.ipv6.is_some()
|
||||
}
|
||||
|
||||
|
||||
/// Get preferred IP (IPv6 if available and preferred)
|
||||
pub fn preferred(&self, prefer_ipv6: bool) -> Option<IpAddr> {
|
||||
if prefer_ipv6 {
|
||||
@@ -28,12 +30,14 @@ impl IpInfo {
|
||||
}
|
||||
|
||||
/// URLs for IP detection
|
||||
#[allow(dead_code)]
|
||||
const IPV4_URLS: &[&str] = &[
|
||||
"http://v4.ident.me/",
|
||||
"http://ipv4.icanhazip.com/",
|
||||
"http://api.ipify.org/",
|
||||
];
|
||||
|
||||
#[allow(dead_code)]
|
||||
const IPV6_URLS: &[&str] = &[
|
||||
"http://v6.ident.me/",
|
||||
"http://ipv6.icanhazip.com/",
|
||||
@@ -42,12 +46,14 @@ const IPV6_URLS: &[&str] = &[
|
||||
|
||||
/// Detect local IP address by connecting to a public DNS
|
||||
/// This does not actually send any packets
|
||||
#[allow(dead_code)]
|
||||
fn get_local_ip(target: &str) -> Option<IpAddr> {
|
||||
let socket = UdpSocket::bind("0.0.0.0:0").ok()?;
|
||||
socket.connect(target).ok()?;
|
||||
socket.local_addr().ok().map(|addr| addr.ip())
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
fn get_local_ipv6(target: &str) -> Option<IpAddr> {
|
||||
let socket = UdpSocket::bind("[::]:0").ok()?;
|
||||
socket.connect(target).ok()?;
|
||||
@@ -55,6 +61,7 @@ fn get_local_ipv6(target: &str) -> Option<IpAddr> {
|
||||
}
|
||||
|
||||
/// Detect public IP addresses
|
||||
#[allow(dead_code)]
|
||||
pub async fn detect_ip() -> IpInfo {
|
||||
let mut info = IpInfo::default();
|
||||
|
||||
@@ -119,6 +126,7 @@ pub async fn detect_ip() -> IpInfo {
|
||||
info
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
fn is_private_ip(ip: IpAddr) -> bool {
|
||||
match ip {
|
||||
IpAddr::V4(ipv4) => {
|
||||
@@ -131,19 +139,21 @@ fn is_private_ip(ip: IpAddr) -> bool {
|
||||
}
|
||||
|
||||
/// Fetch IP from URL
|
||||
#[allow(dead_code)]
|
||||
async fn fetch_ip(url: &str) -> Option<IpAddr> {
|
||||
let client = reqwest::Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.ok()?;
|
||||
|
||||
|
||||
let response = client.get(url).send().await.ok()?;
|
||||
let text = response.text().await.ok()?;
|
||||
|
||||
|
||||
text.trim().parse().ok()
|
||||
}
|
||||
|
||||
/// Synchronous IP detection (for startup)
|
||||
#[allow(dead_code)]
|
||||
pub fn detect_ip_sync() -> IpInfo {
|
||||
tokio::runtime::Handle::current().block_on(detect_ip())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user