HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/samba/tests/__pycache__/audit_log_base.cpython-310.pyc
o

�/a��@stdZddlZddlmZddlmZmZddlm	Z	ddl
Z
ddlZddlZddl
Z
dd�ZGdd	�d	ejj�ZdS)
zTests for DSDB audit logging.
�N)�	Messaging)�MSG_AUTH_LOG�AUTH_EVENT_NAME)�LoadParmcCs d|vrdS|d}||}|S)N�type�)�messager�auditrr�</usr/lib/python3/dist-packages/samba/tests/audit_log_base.py�getAudits
rcsZeZdZ�fdd�Zdd�Zdd�Zddd	�Zd
d�ZdZd
d�Z	dd�Z
dd�Z�ZS)�AuditLogTestBasecstt����t�d�}|rt|d�}n���}td|d��_�j�	�j
����}|�d�d}|�d�d}|�_
�fdd	���fd
d�}gdd��_|�jf�_�jj�j�jd
��j�	t��fdd�}ddd��_|�jf�_�jj�jtd
����tjd�_d�_dS)N�SERVERCONFFILE)�filename_for_non_global_lp)�)�lp_ctx�
interfacesr�/csXt|�}|dur
dS|d}|durdSz
|�d�}|d�jkWSty+YdSw)NF�
remoteAddress�:r)r�splitr�
IndexError)rr	�remote�addr��selfrr
�isRemoteFs
�z(AuditLogTestBase.setUp.<locals>.isRemotecslt|�t�|�}|ddks|ddks|ddkr(�|�r(|d�|�dS|ddkr4||d<dSdS)Nr�passwordChange�
dsdbChange�groupChange�messages�dsdbTransaction�
txnMessage)�print�json�loads�append��context�msgType�srcr�jsonMsg�rrr
�messageHandlerUs
��z.AuditLogTestBase.setUp.<locals>.messageHandler)rr!��msg_typecsRt�|�}|ddkr%�|�r't|�|dd|d<|dd|d<dSdSdS)Nr�
Authorization�	sessionId�serviceDescription)r#r$r"r&r+rr
�authHandleris


��z+AuditLogTestBase.setUp.<locals>.authHandler�)r0r1�SERVER)�superr�setUp�os�getenvr�get_loadparmr�msg_ctx�
irpc_add_name�
event_type�getrrr'�msg_handler_and_context�register�message_typer�auth_context�auth_handler_and_contextr�discardMessages�environ�server�
connection)r�server_confr�client_ip_and_mask�	client_ipr,r2��	__class__)rrr
r6)s8


�

�
zAuditLogTestBase.setUpcCs\|��|j�|j�|j�t�|jr|jj|j|jd�|jr,|jj|jt	d�dSdS)Nr-)
rCr:�irpc_remove_namer<rr>�
deregisterr@rBrrrrr
�tearDown}s
�

��zAuditLogTestBase.tearDowncCsd|dur
t|jd�|kSd}|jdD]}t|�}|d��|��kr/|d7}||kr/dSqdS)Nrr�dnrTF)�lenr'r�lower)r�expectedrO�received�msgr	rrr
�haveExpected�s�zAuditLogTestBase.haveExpectedNcCs�||_t��}|�||�s*|j�d�t��|dkr$d|_td�gS|�||�r
d|_|dur6|jdSg}|jdD]}t|�}|d��|��krR|�	|�q=|S)z�Wait for all the expected messages to arrive
        The connection is passed through to keep the connection alive
        until all the logging messages have been received.
        g�������?rNz	Timed outrrO)
rF�timerUr:�	loop_oncer"r'rrQr%)r�numberrFrO�
start_timerrTr	rrr
�waitForMessages�s&�

�z AuditLogTestBase.waitForMessagescCsl|j�d�t|jd�s|jddur4g|jd<d|jd<|j�d�t|jd�s|jddusdSdS)Ng����MbP?rr!)r:rWrPr'rrrr
rC�s

�z AuditLogTestBase.discardMessagesz<[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}cCst�|j|�S)N)�re�match�GUID_RE)r�guidrrr
�is_guid�szAuditLogTestBase.is_guidcC�
|jdS)Nr0�rArrrr
�get_session��
zAuditLogTestBase.get_sessioncCr`)Nr1rarrrr
�get_service_description�rcz(AuditLogTestBase.get_service_description)NN)
�__name__�
__module__�__qualname__r6rNrUrZrCr]r_rbrd�
__classcell__rrrJr
r'sT

	r)�__doc__�samba.tests�samba�samba.messagingr�samba.dcerpc.messagingrr�samba.paramrrVr#r7r[r�tests�TestCaserrrrr
�<module>s