관리-도구
편집 파일: connection.cpython-39.pyc
a �)g� � @ s� d dl mZmZmZ eZd dlZd dlZd dlZd dl Z d dl Z d dlZd dlZd dl mZ d dlmZmZ d dlmZ d dlmZ d dlmZ dd � Zd d� Zdd � Zdd� Zdd� ZG dd� de�ZG dd� de�Z dS )� )�absolute_import�division�print_functionN)�partial)�to_bytes�to_text)�AnsibleJSONEncoder)� iteritems)�cPicklec C s` t j|dd�}|�dd�}tt�|��� �}t�| dt |� � t�| |� t�| d| � dS )z�Handles making sure all data is properly written to file descriptor fd. In particular, that data is encoded in a character stream-friendly way and that all data gets written before returning. r )Zprotocol� s \rs %d s %s N) r �dumps�replacer �hashlibZsha1Z hexdigest�os�write�len)�fd�obj�srcZ data_hash� r �C/usr/lib/python3.9/site-packages/ansible/module_utils/connection.py�write_to_file_descriptor/ s r c C s t �dt|��}| �|| �S )N�!Q)�struct�packr Zsendall)�s�dataZ packed_lenr r r � send_dataF s r c C s� d}t d�}t|�|k r<| �|t|� �}|s2d S ||7 }qt�d|d |� �d }||d � }t|�|k r�| �|t|� �}|s�d S ||7 }q`|S )N� � r r )r r Zrecvr �unpack)r Z header_lenr �dZdata_lenr r r � recv_dataK s r"