pub struct AppInstanceTable {
opens: Mutex<Vec<AppOpen>>,
forced: Mutex<HashSet<LockOwner>>,
}Expand description
Server-wide registry of application-instance opens: a later CREATE with the same AppInstanceId from a different client force-closes the prior open, enabling client failover ([MS-SMB2] §3.3.5.9.13).
Fields§
§opens: Mutex<Vec<AppOpen>>§forced: Mutex<HashSet<LockOwner>>Implementations§
Source§impl AppInstanceTable
impl AppInstanceTable
Sourcepub fn resolve(
&self,
id: [u8; 16],
path: &str,
client_guid: [u8; 16],
is_311: bool,
req_version: Option<(u64, u64)>,
) -> AppInstanceMatch
pub fn resolve( &self, id: [u8; 16], path: &str, client_guid: [u8; 16], is_311: bool, req_version: Option<(u64, u64)>, ) -> AppInstanceMatch
Resolve a CREATE carrying id against existing opens. A match from a
different client force-closes the prior open unless the 3.1.1 version
rules say the existing open is newer/equal (then Reject).
Sourcepub fn register(
&self,
id: [u8; 16],
path: String,
client_guid: [u8; 16],
owner: LockOwner,
version: Option<(u64, u64)>,
)
pub fn register( &self, id: [u8; 16], path: String, client_guid: [u8; 16], owner: LockOwner, version: Option<(u64, u64)>, )
Record a new application-instance open.
Sourcepub fn take_forced(&self, owner: LockOwner) -> bool
pub fn take_forced(&self, owner: LockOwner) -> bool
Consume and report the force-closed flag for owner.
Sourcepub fn close_session(&self, session_id: u64)
pub fn close_session(&self, session_id: u64)
Drop every entry belonging to session_id (logoff/disconnect).
Trait Implementations§
Source§impl Default for AppInstanceTable
impl Default for AppInstanceTable
Source§fn default() -> AppInstanceTable
fn default() -> AppInstanceTable
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for AppInstanceTable
impl RefUnwindSafe for AppInstanceTable
impl Send for AppInstanceTable
impl Sync for AppInstanceTable
impl Unpin for AppInstanceTable
impl UnsafeUnpin for AppInstanceTable
impl UnwindSafe for AppInstanceTable
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more