1
0
Fork 0
forked from wry/wry

autocommit 2022-03-09 14:01:21 CET

This commit is contained in:
Julian Orth 2022-03-09 14:01:21 +01:00
parent aa0cb94143
commit 4df6b559b7
32 changed files with 1121 additions and 172 deletions

View file

@ -1,8 +1,9 @@
use crate::dbus::{DbusError, DbusSocket, Reply};
use crate::org::freedesktop::login1::session::TakeControlReply;
use crate::dbus::{DbusError, DbusSocket};
use crate::org::freedesktop::login1::session::TakeDeviceReply;
use crate::{org, FALSE};
use std::rc::Rc;
use thiserror::Error;
use uapi::c;
const LOGIND_NAME: &str = "org.freedesktop.login1";
const MANAGER_PATH: &str = "/org/freedesktop/login1";
@ -72,8 +73,22 @@ impl Session {
)
.await;
match res {
Ok(r) => Ok(()),
Ok(_) => Ok(()),
Err(e) => Err(LogindError::TakeControl(e)),
}
}
pub fn get_device<F>(&self, dev: c::dev_t, f: F)
where
F: FnOnce(Result<&TakeDeviceReply, DbusError>) + 'static,
{
let major = uapi::major(dev) as _;
let minor = uapi::minor(dev) as _;
self.socket.call(
LOGIND_NAME,
&self.session_path,
org::freedesktop::login1::session::TakeDevice { major, minor },
move |r| f(r),
);
}
}