mirror of
https://github.com/rustdesk/rustdesk-server.git
synced 2025-07-01 23:35:38 +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'
|
||||
-s, --serial=[NUMBER(default={0})] 'Sets configure update serial number'
|
||||
-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'",
|
||||
DEFAULT_PORT
|
||||
);
|
||||
@ -59,6 +60,13 @@ async fn main() -> ResultType<()> {
|
||||
log::info!("relay-server={}", relay_server);
|
||||
log::info!("serial={}", serial);
|
||||
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(())
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ use hbb_common::{
|
||||
allow_err,
|
||||
bytes::{Bytes, BytesMut},
|
||||
bytes_codec::BytesCodec,
|
||||
config::Config,
|
||||
futures_util::{
|
||||
sink::SinkExt,
|
||||
stream::{SplitSink, StreamExt},
|
||||
@ -129,6 +128,8 @@ pub struct RendezvousServer {
|
||||
relay_server: String,
|
||||
serial: i32,
|
||||
rendezvous_servers: Vec<String>,
|
||||
version: String,
|
||||
software_url: String,
|
||||
}
|
||||
|
||||
impl RendezvousServer {
|
||||
@ -137,6 +138,7 @@ impl RendezvousServer {
|
||||
relay_server: String,
|
||||
serial: i32,
|
||||
rendezvous_servers: Vec<String>,
|
||||
software_url: String,
|
||||
) -> ResultType<()> {
|
||||
let mut socket = FramedSocket::new(addr).await?;
|
||||
let (tx, mut rx) = mpsc::unbounded_channel::<(RendezvousMessage, SocketAddr)>();
|
||||
@ -147,6 +149,8 @@ impl RendezvousServer {
|
||||
relay_server,
|
||||
serial,
|
||||
rendezvous_servers,
|
||||
version: hbb_common::get_version_from_url(&software_url),
|
||||
software_url,
|
||||
};
|
||||
let mut listener = new_listener(addr, false).await?;
|
||||
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> {
|
||||
if host.contains(":") {
|
||||
Config::to_socket_addr(host)
|
||||
hbb_common::to_socket_addr(host)
|
||||
} 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