HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/UpdateManager/Core/__pycache__/LivePatchSocket.cpython-38.pyc
U

ρ�f��@shddlmZddlZddlZddlZddlZdZGdd�dejj	�Z
Gdd�de�ZGdd	�d	e�Z
dS)
�)�GLibNz5/var/snap/canonical-livepatch/current/livepatchd.sockc@seZdZdd�Zdd�ZdS)�UHTTPConnectioncCstjj�|d�||_dS)NZ	localhost)�http�client�HTTPConnection�__init__�path)�selfr�r
�D/usr/lib/python3/dist-packages/UpdateManager/Core/LivePatchSocket.pyr"szUHTTPConnection.__init__cCs&t�tjtj�}|�|j�||_dS�N)�socketZAF_UNIXZSOCK_STREAM�connectr�sock)r	rr
r
rr&szUHTTPConnection.connectN)�__name__�
__module__�__qualname__rrr
r
r
rr src@sBeZdZddd�Zdd�Zedd��Zedd	��Zed
d��ZdS)
�LivePatchSocketNcCs|dkrtt�|_n||_dSr)r�	HOST_NAME�conn)r	Z	http_connr
r
rr.szLivePatchSocket.__init__cs&��fdd�}tj|d�}|��dS)Ncs�z4�j�dd��j��}|jdk�t�|���}Wntk
rRd�t�}YnXt	�
|��t	�|��t	�|��t
������fdd��dS)NZGETz/status?verbose=True��Fcs������Srr
r
)�active�check_state�fixes�on_done�patch_stater
r�<lambda>Bs
�z=LivePatchSocket.get_status.<locals>.do_call.<locals>.<lambda>)rZrequestZgetresponse�status�yamlZ	safe_load�read�	Exception�dictr�get_check_state�get_patch_state�	get_fixesrZidle_add)�r�data�rr	)rrrrr�do_call6s




z+LivePatchSocket.get_status.<locals>.do_call)�target)�	threadingZThread�start)r	rr(�threadr
r'r�
get_status4szLivePatchSocket.get_statuscCsFz*|d}tdd�|D�d�}|ddWStk
r@YdSXdS)Nrcss|]}|dr|VqdS��runningNr
��.0�kr
r
r�	<genexpr>Lsz2LivePatchSocket.get_check_state.<locals>.<genexpr>�	livepatchZ
checkStatezcheck-failed��nextr �r&r�kernelr
r
rr"HszLivePatchSocket.get_check_statecCsFz*|d}tdd�|D�d�}|ddWStk
r@YdSXdS)Nrcss|]}|dr|VqdSr.r
r0r
r
rr3Usz2LivePatchSocket.get_patch_state.<locals>.<genexpr>r4Z
patchState�unknownr5r7r
r
rr#QszLivePatchSocket.get_patch_statecCsfzF|d}tdd�|D�d�}|dd}dd�|�dd	��d
�D�WStk
r`t�YSXdS)Nrcss|]}|dr|VqdSr.r
r0r
r
rr3^sz,LivePatchSocket.get_fixes.<locals>.<genexpr>r4rcSs g|]}t|�dkrt|��qS)r)�len�LivePatchFix)r1�fr
r
r�
<listcomp>`s�z-LivePatchSocket.get_fixes.<locals>.<listcomp>z* ��
)r6�replace�splitr �list)r&rr8rr
r
rr$Zs�zLivePatchSocket.get_fixes)N)	rrrrr-�staticmethodr"r#r$r
r
r
rr,s


rc@s$eZdZdd�Zdd�Zdd�ZdS)r;cCs&d}|�|�dk|_|�|d�|_dS)Nz (unpatched)���r>)�find�patchedr@�name)r	�textZpatched_patternr
r
rrhszLivePatchFix.__init__cCs&t|t�r"|j|jko |j|jkStSr)�
isinstancer;rGrF�NotImplemented)r	�otherr
r
r�__eq__ms
zLivePatchFix.__eq__cCs|�|�}|tkr|S|Sr)rLrJ)r	rK�resultr
r
r�__ne__rs
zLivePatchFix.__ne__N)rrrrrLrNr
r
r
rr;fsr;)Z
gi.repositoryrZhttp.clientrr
r*rrrrr�objectrr;r
r
r
r�<module>s: