From b1568ca01e8c4e1b25c285fdd3879dd8177b9d2a Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Tue, 21 Apr 2026 12:42:20 -0400 Subject: [PATCH] Fix some issues with remote video forwarding --- confluent_server/confluent/core.py | 2 +- confluent_server/confluent/vinzmanager.py | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/confluent_server/confluent/core.py b/confluent_server/confluent/core.py index 597f23c5..bb141e68 100644 --- a/confluent_server/confluent/core.py +++ b/confluent_server/confluent/core.py @@ -1166,7 +1166,7 @@ async def handle_node_request(configmanager, inputdata, operation, if pathcomponents == ['console', 'ikvm']: if not vinz: import confluent.vinzmanager as vinz - vinz.assure_vinz() + await vinz.assure_vinz() manager = nodeattr[node].get('collective.manager', {}).get( 'value', None) if manager: diff --git a/confluent_server/confluent/vinzmanager.py b/confluent_server/confluent/vinzmanager.py index 77c2123c..ce9c7722 100644 --- a/confluent_server/confluent/vinzmanager.py +++ b/confluent_server/confluent/vinzmanager.py @@ -142,19 +142,20 @@ async def send_grant(conn, nodename, rqtype): bmcuser = bmcuser.decode() if not isinstance(bmcpass, str): bmcpass = bmcpass.decode() - rsp = wc.grab_json_response_with_status( + rsp = await wc.grab_json_response_with_status( '/login', {'data': [bmcuser, bmcpass]}, headers={'Content-Type': 'application/json', 'Accept': 'application/json'}) - cookies['SESSION'] = wc.cookies['SESSION'] - cookies['XSRF-TOKEN'] = wc.cookies['XSRF-TOKEN'] + for cky in wc.cookies: + if cky.key == 'SESSION' or cky.key == 'XSRF-TOKEN': + cookies[cky.key] = cky.value if rqtype == 1: # unfortunately, the original protocol failed to # provide a means for separate tracking bmc side # and confluent side # chances are pretty good still - sessionid = wc.cookies['SESSION'] - sessiontok = wc.cookies['XSRF-TOKEN'] + sessionid = cookies['SESSION'] + sessiontok = cookies['XSRF-TOKEN'] protos.append(sessiontok) _usersessions[sessionid] = { 'webclient': wc,