mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-01-19 16:33:01 +08:00
prevent frequent loginctl calls
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
This commit is contained in:
parent
58bbc33aa6
commit
0931341a7f
@ -183,6 +183,15 @@ pub fn is_active(sid: &str) -> bool {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_active_and_seat0(sid: &str) -> bool {
|
||||
if let Ok(output) = run_loginctl(Some(vec!["show-session", sid])) {
|
||||
String::from_utf8_lossy(&output.stdout).contains("State=active")
|
||||
&& String::from_utf8_lossy(&output.stdout).contains("Seat=seat0")
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
pub fn run_cmds(cmds: &str) -> ResultType<String> {
|
||||
let output = std::process::Command::new("sh")
|
||||
.args(vec!["-c", cmds])
|
||||
|
@ -1073,13 +1073,11 @@ mod desktop {
|
||||
}
|
||||
|
||||
pub fn refresh(&mut self) {
|
||||
let seat0_values = get_values_of_seat0(&[0, 1, 2]);
|
||||
if !self.sid.is_empty() && is_active(&self.sid) {
|
||||
if self.sid == seat0_values[0] {
|
||||
if !self.sid.is_empty() && is_active_and_seat0(&self.sid) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
let seat0_values = get_values_of_seat0(&[0, 1, 2]);
|
||||
if seat0_values[0].is_empty() {
|
||||
*self = Self::default();
|
||||
self.is_rustdesk_subprocess = false;
|
||||
|
Loading…
Reference in New Issue
Block a user