mirror of
https://github.com/rustdesk/rustdesk-server.git
synced 2024-11-27 14:59:21 +08:00
v1.1.12
This commit is contained in:
parent
3b386b6b54
commit
6f18a97644
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -779,7 +779,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "hbbs"
|
||||
version = "1.1.11-1"
|
||||
version = "1.1.12"
|
||||
dependencies = [
|
||||
"async-speed-limit",
|
||||
"async-trait",
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "hbbs"
|
||||
version = "1.1.11-1"
|
||||
version = "1.1.12"
|
||||
authors = ["rustdesk <info@rustdesk.com>"]
|
||||
edition = "2021"
|
||||
build = "build.rs"
|
||||
|
4
debian/changelog
vendored
4
debian/changelog
vendored
@ -1,3 +1,7 @@
|
||||
rustdesk-server (1.1.12) UNRELEASED; urgency=medium
|
||||
* WS real ip
|
||||
* Bump s6-overlay to v3.2.0.0 and fix env warnings
|
||||
|
||||
rustdesk-server (1.1.11-1) UNRELEASED; urgency=medium
|
||||
* set reuse port to make restart friendly
|
||||
* revert hbbr `-k` to not ruin back-compatibility
|
||||
|
@ -392,19 +392,30 @@ async fn handle_connection(
|
||||
|
||||
async fn make_pair(
|
||||
stream: TcpStream,
|
||||
addr: SocketAddr,
|
||||
mut addr: SocketAddr,
|
||||
key: &str,
|
||||
limiter: Limiter,
|
||||
ws: bool,
|
||||
) -> ResultType<()> {
|
||||
if ws {
|
||||
make_pair_(
|
||||
tokio_tungstenite::accept_async(stream).await?,
|
||||
addr,
|
||||
key,
|
||||
limiter,
|
||||
)
|
||||
.await;
|
||||
use tokio_tungstenite::tungstenite::handshake::server::{Request, Response};
|
||||
let callback = |req: &Request, response: Response| {
|
||||
let headers = req.headers();
|
||||
let real_ip = headers
|
||||
.get("X-Real-IP")
|
||||
.or_else(|| headers.get("X-Forwarded-For"))
|
||||
.and_then(|header_value| header_value.to_str().ok());
|
||||
if let Some(ip) = real_ip {
|
||||
if ip.contains('.') {
|
||||
addr = format!("{ip}:0").parse().unwrap_or(addr);
|
||||
} else {
|
||||
addr = format!("[{ip}]:0").parse().unwrap_or(addr);
|
||||
}
|
||||
}
|
||||
Ok(response)
|
||||
};
|
||||
let ws_stream = tokio_tungstenite::accept_hdr_async(stream, callback).await?;
|
||||
make_pair_(ws_stream, addr, key, limiter).await;
|
||||
} else {
|
||||
make_pair_(FramedStream::from(stream, addr), addr, key, limiter).await;
|
||||
}
|
||||
|
@ -1106,13 +1106,29 @@ impl RendezvousServer {
|
||||
async fn handle_listener_inner(
|
||||
&mut self,
|
||||
stream: TcpStream,
|
||||
addr: SocketAddr,
|
||||
mut addr: SocketAddr,
|
||||
key: &str,
|
||||
ws: bool,
|
||||
) -> ResultType<()> {
|
||||
let mut sink;
|
||||
if ws {
|
||||
let ws_stream = tokio_tungstenite::accept_async(stream).await?;
|
||||
use tokio_tungstenite::tungstenite::handshake::server::{Request, Response};
|
||||
let callback = |req: &Request, response: Response| {
|
||||
let headers = req.headers();
|
||||
let real_ip = headers
|
||||
.get("X-Real-IP")
|
||||
.or_else(|| headers.get("X-Forwarded-For"))
|
||||
.and_then(|header_value| header_value.to_str().ok());
|
||||
if let Some(ip) = real_ip {
|
||||
if ip.contains('.') {
|
||||
addr = format!("{ip}:0").parse().unwrap_or(addr);
|
||||
} else {
|
||||
addr = format!("[{ip}]:0").parse().unwrap_or(addr);
|
||||
}
|
||||
}
|
||||
Ok(response)
|
||||
};
|
||||
let ws_stream = tokio_tungstenite::accept_hdr_async(stream, callback).await?;
|
||||
let (a, mut b) = ws_stream.split();
|
||||
sink = Some(Sink::Ws(a));
|
||||
while let Ok(Some(Ok(msg))) = timeout(30_000, b.next()).await {
|
||||
|
@ -15,7 +15,7 @@
|
||||
!define PRODUCT_NAME "rustdesk_server"
|
||||
!define PRODUCT_DESCRIPTION "Installer for ${PRODUCT_NAME}"
|
||||
!define COPYRIGHT "Copyright © 2021"
|
||||
!define VERSION "1.1.10"
|
||||
!define VERSION "1.1.12"
|
||||
|
||||
VIProductVersion "${VERSION}.0"
|
||||
VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
|
||||
|
Loading…
Reference in New Issue
Block a user