File: //usr/lib/python3/dist-packages/mercurial/__pycache__/mail.cpython-310.pyc
o
�]LbXD � @ s� d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZddl
mZ ddlmZmZ ddlmZmZmZmZmZ ddlmZmZmZ ejrqd dlmZmZmZm Z e!eeee f�sqJ �G d d
� d
e
j"�Z#G dd� de
j"�Z$d
d� Z%dd� Z&dd� Z'dd� Z(dd� Z)d;dd�Z*d;dd�Z+dd� Z,dd� Z-d<d!d"�Z.d#d$� Z/d%d&� Z0d'd(� Z1d=d)d*�Z2d;d+d,�Z3d=d-d.�Z4d=d/d0�Z5d=d1d2�Z6ej7r�ej8j9Z:d3d4� Z;d5d6� Z<nej8j:Z:d7d4� Z;d8d6� Z<d9d:� Z=dS )>� )�absolute_importN� )�_)�getattr�open)�encoding�error�pycompat�sslutil�util)�procutil�
stringutil�urlutil)�Any�List�Tuple�Unionc @ s$ e Zd ZdZddd�Zddd�ZdS ) �STARTTLSz�Derived class to verify the peer certificate for STARTTLS.
This class allows to pass any keyword arguments to SSL socket creation.
Nc K s$ t jj| fi |�� || _|| _d S �N)�smtplib�SMTP�__init__�_ui�_host)�self�ui�host�kwargs� r �0/usr/lib/python3/dist-packages/mercurial/mail.pyr 5 s
zSTARTTLS.__init__c C sx | � d�sd}t�|��| �d�\}}|dkr8tj| j||| j| jd�| _| j� d�| _
d | _d | _i | _
d| _||fS )N�starttlss* STARTTLS extension not supported by serverr �� �r �serverhostname�rbr )�has_extnr �
SMTPException�docmdr
�
wrapsocket�sockr r �makefile�file� helo_resp� ehlo_resp�esmtp_features�
does_esmtp)r �keyfile�certfile�msg�resp�replyr r r r : s$
�zSTARTTLS.starttlsr )NN)�__name__�
__module__�__qualname__�__doc__r r r r r r r / s
r c @ s"