mirror of
https://github.com/rustdesk/rustdesk-server.git
synced 2025-07-04 00:35:35 +00:00
software_url
This commit is contained in:
parent
f3425044a6
commit
7aaa2d7aeb
@ -1 +1 @@
|
|||||||
Subproject commit e4313f5f0f317fecfb0e8d2dbf2be62ae99edc90
|
Subproject commit ce6dd559f2fb56314fdef1e2e435c0381632f1b3
|
10
src/main.rs
10
src/main.rs
@ -15,6 +15,7 @@ async fn main() -> ResultType<()> {
|
|||||||
-p, --port=[NUMBER(default={})] 'Sets the listening port'
|
-p, --port=[NUMBER(default={})] 'Sets the listening port'
|
||||||
-s, --serial=[NUMBER(default={0})] 'Sets configure update serial number'
|
-s, --serial=[NUMBER(default={0})] 'Sets configure update serial number'
|
||||||
-R, --rendezvous-servers=[HOSTS] 'Sets rendezvous servers, seperated by colon'
|
-R, --rendezvous-servers=[HOSTS] 'Sets rendezvous servers, seperated by colon'
|
||||||
|
-u, --software-url=[URL] 'Sets download url of RustDesk software of newest version'
|
||||||
-r, --relay-server=[HOST] 'Sets the default relay server'",
|
-r, --relay-server=[HOST] 'Sets the default relay server'",
|
||||||
DEFAULT_PORT
|
DEFAULT_PORT
|
||||||
);
|
);
|
||||||
@ -59,6 +60,13 @@ async fn main() -> ResultType<()> {
|
|||||||
log::info!("relay-server={}", relay_server);
|
log::info!("relay-server={}", relay_server);
|
||||||
log::info!("serial={}", serial);
|
log::info!("serial={}", serial);
|
||||||
log::info!("rendzvous-servers={:?}", rendezvous_servers);
|
log::info!("rendzvous-servers={:?}", rendezvous_servers);
|
||||||
RendezvousServer::start(&addr, relay_server, serial, rendezvous_servers).await?;
|
RendezvousServer::start(
|
||||||
|
&addr,
|
||||||
|
relay_server,
|
||||||
|
serial,
|
||||||
|
rendezvous_servers,
|
||||||
|
get_arg("software-url", ""),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ use hbb_common::{
|
|||||||
allow_err,
|
allow_err,
|
||||||
bytes::{Bytes, BytesMut},
|
bytes::{Bytes, BytesMut},
|
||||||
bytes_codec::BytesCodec,
|
bytes_codec::BytesCodec,
|
||||||
config::Config,
|
|
||||||
futures_util::{
|
futures_util::{
|
||||||
sink::SinkExt,
|
sink::SinkExt,
|
||||||
stream::{SplitSink, StreamExt},
|
stream::{SplitSink, StreamExt},
|
||||||
@ -129,6 +128,8 @@ pub struct RendezvousServer {
|
|||||||
relay_server: String,
|
relay_server: String,
|
||||||
serial: i32,
|
serial: i32,
|
||||||
rendezvous_servers: Vec<String>,
|
rendezvous_servers: Vec<String>,
|
||||||
|
version: String,
|
||||||
|
software_url: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RendezvousServer {
|
impl RendezvousServer {
|
||||||
@ -137,6 +138,7 @@ impl RendezvousServer {
|
|||||||
relay_server: String,
|
relay_server: String,
|
||||||
serial: i32,
|
serial: i32,
|
||||||
rendezvous_servers: Vec<String>,
|
rendezvous_servers: Vec<String>,
|
||||||
|
software_url: String,
|
||||||
) -> ResultType<()> {
|
) -> ResultType<()> {
|
||||||
let mut socket = FramedSocket::new(addr).await?;
|
let mut socket = FramedSocket::new(addr).await?;
|
||||||
let (tx, mut rx) = mpsc::unbounded_channel::<(RendezvousMessage, SocketAddr)>();
|
let (tx, mut rx) = mpsc::unbounded_channel::<(RendezvousMessage, SocketAddr)>();
|
||||||
@ -147,6 +149,8 @@ impl RendezvousServer {
|
|||||||
relay_server,
|
relay_server,
|
||||||
serial,
|
serial,
|
||||||
rendezvous_servers,
|
rendezvous_servers,
|
||||||
|
version: hbb_common::get_version_from_url(&software_url),
|
||||||
|
software_url,
|
||||||
};
|
};
|
||||||
let mut listener = new_listener(addr, false).await?;
|
let mut listener = new_listener(addr, false).await?;
|
||||||
loop {
|
loop {
|
||||||
@ -303,6 +307,16 @@ impl RendezvousServer {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some(rendezvous_message::Union::software_update(su)) => {
|
||||||
|
if !self.version.is_empty() && su.url != self.version {
|
||||||
|
let mut msg_out = RendezvousMessage::new();
|
||||||
|
msg_out.set_software_update(SoftwareUpdate {
|
||||||
|
url: self.software_url.clone(),
|
||||||
|
..Default::default()
|
||||||
|
});
|
||||||
|
socket.send(&msg_out, addr).await?;
|
||||||
|
}
|
||||||
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -561,8 +575,8 @@ impl RendezvousServer {
|
|||||||
|
|
||||||
pub fn test_if_valid_server(host: &str) -> ResultType<SocketAddr> {
|
pub fn test_if_valid_server(host: &str) -> ResultType<SocketAddr> {
|
||||||
if host.contains(":") {
|
if host.contains(":") {
|
||||||
Config::to_socket_addr(host)
|
hbb_common::to_socket_addr(host)
|
||||||
} else {
|
} else {
|
||||||
Config::to_socket_addr(&format!("{}:{}", host, 0))
|
hbb_common::to_socket_addr(&format!("{}:{}", host, 0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user