Current File : //usr/local/lib/python3.6/site-packages/ptrace/syscall/__pycache__/socketcall.cpython-36.pyc
3

�d@	�@s�ddlmZddlmZmZddlmZddlmZm	Z	ddl
mZmZm
Z
mZddlmZddlmZddlmZmZmZer�dd	lmZdd
l
mZdZdd
�Zdd�Zdd�Zdd�Zdd�ZdS)�)�
CPU_WORD_SIZE)�ntoh_ushort�	ntoh_uint)�SYSCALL_PROTOTYPES)�
SOCKETCALL�
SOCKET_FAMILY)�sockaddr�sockaddr_in�sockaddr_in6�sockaddr_un)�c_int)�
RUNNING_LINUX)�AF_INET�AF_INET6�	inet_ntoa)�
AF_NETLINK)�sockaddr_nl�cCsD|j}|dj}|dkr<|j}|jj|t�}|jd||�SdSdS)N�optlen�z<%s>)�function�value�process�
readStructr�
formatPointer)�argumentrr�addr�text�r�B/tmp/pip-build-in2aja_b/python-ptrace/ptrace/syscall/socketcall.py�formatOptVals
r cCs�|j}|jjj|t�}|j}|tkr0|j|t�S|tkrD|j|t	�S|t
krX|j|t�Strp|t
krp|j|t�Stj||�}|jd||�S)Nz<sockaddr family=%s>)rrrrr�familyrr	rr
�AF_FILErr
rrr�getr)r�argtype�addressrr!rrr�formatSockaddrsr&cCs^|j�||_|j�|_t|j\|_}x0|D](\}}|j|�}|j|||�|t7}q.WdS)N)	ZclearArgumentsrZgetText�namer�restypeZreadWordZaddArgumentr)rrZ
socketcallr%�formatsr$Zargnamerrrr�setupSocketCall,s

r*cCs|dkrt|�SdS)NZsin_port)r)rr'rrrr�formatSockaddrInStruct=sr+cCs|dkrt|�SdS)NZ	sin6_port)r)rr'rrrr�formatSockaddrIn6StructCsr,N)Zptrace.cpu_inforZptrace.ctypes_toolsrrZptrace.syscallrZ#ptrace.syscall.socketcall_constantsrrZ ptrace.syscall.socketcall_structrr	r
r�ctypesrZptrace.os_toolsr
�socketrrrrrr"r r&r*r+r,rrrr�<module>s