fix: parse Disc qwinsta rows so RDG flap auto-logoff works (0.5.14)
Empty SESSIONNAME broke session matching; auto-disconnect failed with 'No matching Windows session'.
This commit is contained in:
@@ -74,6 +74,32 @@ def test_parse_qwinsta_sessions_filters_user():
|
||||
assert filtered[0].session_id == "2"
|
||||
|
||||
|
||||
def test_parse_qwinsta_sessions_disconnected_without_sessionname():
|
||||
"""Disc rows often omit SESSIONNAME; auto flap logoff relies on these."""
|
||||
stdout = """SESSIONNAME USERNAME ID STATE
|
||||
rdp-tcp#0 B26\\s.shelkovaya 2 Active
|
||||
B26\\s.shelkovaya 5 Disc
|
||||
rdp-tcp 65536 Listen
|
||||
services 0 Disc
|
||||
"""
|
||||
rows = parse_qwinsta_sessions(stdout)
|
||||
assert {(r.session_id, r.state.split()[0], r.session_name) for r in rows} == {
|
||||
("2", "Active", "rdp-tcp#0"),
|
||||
("5", "Disc", ""),
|
||||
}
|
||||
filtered = parse_qwinsta_sessions(stdout, filter_user=r"B26\s.shelkovaya")
|
||||
assert [r.session_id for r in filtered] == ["2", "5"]
|
||||
|
||||
|
||||
def test_parse_qwinsta_sessions_filters_domain_user():
|
||||
stdout = """SESSIONNAME USERNAME ID STATE
|
||||
rdp-tcp#1 B26\\bob 3 Active
|
||||
"""
|
||||
rows = parse_qwinsta_sessions(stdout, filter_user=r"B26\bob")
|
||||
assert len(rows) == 1
|
||||
assert rows[0].session_id == "3"
|
||||
|
||||
|
||||
def test_event_supports_session_terminate_types():
|
||||
class HostStub:
|
||||
os_family = "linux"
|
||||
|
||||
Reference in New Issue
Block a user