File: //usr/lib/python3/dist-packages/samba/__pycache__/join.cpython-310.pyc
o
�Kya�. � @ s* d Z ddlmZ ddlmZ ddlmZmZmZm Z m
Z
ddlZddlZddlZddl
mZmZ ddlmZmZmZmZmZmZmZmZ ddlmZ dd lmZmZ dd
lmZm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&Z& ddl'm(Z( dd
lm)Z) ddl*m+Z+ ddl,m-Z- ddlm.Z. ddlm/Z/ ddl0m1Z1 ddlm2Z2m3Z3 ddlm4Z4 ddl5m6Z6m7Z7m8Z8 ddl9Z9ddl:Z:ddl;Z;ddl<Z<ddl=Z=ddl>Z>ddl?m@Z@ ddlAmBZB ddlCmDZD G dd� deE�ZFG dd� deG�ZH d)dd�ZI d)d d!�ZJ d*d#d$�ZKG d%d&� d&eH�ZLG d'd(� d(eL�ZMdS )+zJoining a domain.� )�system_session)�SamDB)�gensec�Ldb� drs_utils�arcfour_encrypt�string_to_byte_arrayN)�ndr_pack�
ndr_unpack)�security�drsuapi�misc�nbt�lsa�drsblobs� dnsserver�dnsp)�DS_DOMAIN_FUNCTION_2003)�Credentials�DONT_USE_KERBEROS)�secretsdb_self_join� provision�provision_fill�FILL_DRS�FILL_SUBDOMAIN�DEFAULTSITE)�
setup_path)�Schema)�
descriptor)�Net)�setup_bind9_dns)�read_and_sub_file)�werror)� b64encode)�WERRORError�
NTSTATUSError)�sd_utils)�ARecord�
AAAARecord�CNAMERecord)�OrderedDict)�
get_string)�CommandErrorc s e Zd Z� fdd�Z� ZS )�DCJoinExceptionc s t t| ��d| � d S )NzCan't join, error: %s)�superr- �__init__)�self�msg�� __class__� �,/usr/lib/python3/dist-packages/samba/join.pyr/ 9 s zDCJoinException.__init__)�__name__�
__module__�__qualname__r/ �
__classcell__r4 r4 r2 r5 r- 7 s r- c @ s@ e Zd ZdZ dJdd�ZdKdd�ZdKdd �ZdKd
d�Zdd
� Zdd� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� ZdLd.d/�Zd0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� Zd<d=� Z d>d?� Z!d@dA� Z"dBdC� Z#dDdE� Z$dFdG� Z%dHdI� Z&dS )M�
DCJoinContextzPerform a DC join.NFc
C s || _ || _|| _|| _|| _|
| _|
| _|| _|| _|| _ d | _
g | _g | _| j�
|�� tjB � t| j| jd�| _|| _|| _|rL|| _| jj| _n5| jr[|d u rZ| �| j�| _n| j �d| � | �|�| _| j �d| j � td| j t� | j| jd�| _| jd u r�t| _z| jjtjg d� W n tj y� } z |j!\}}t"|��d }~ww t#| j�$� �| _%t#| j�&� �| _'t#| j�(� �| _)t#| j�*� �| _+t,�-| j�.� �| _/| j/| _0| �1� | _2| �3� | _4t5�6t#t7�8� ��| _9| j�:� | _;| �<� | _=| �>� | _?| d u�r| | _@ntA�Bdd�| _@| j�C� | _D|�r�|| _Ed| jE | _Fd | jE| j| j+f | _Gd
| jG | _Hd| jE| j%f | _Id| jE�J� | jDf | _K| j�L� | _Md
| j% }| �N|��r]d| jE|f | _Ond | _Od| jE d| jK d| jK| jMf g| _P| jjtjdg| j%d�}|d d d | _Qd| j% | _Rd| j' | _Sdt�T| jR� }| jjtjUg | j�V� |d�}|d u �r�d| _WntX|�dk�r�d| _WtYd� n|| _W| jD| _Zd | _[t\j]t\j^B t\j_B t\j`B t\jaB | _bd | _cd | _dd | _ed| _fd | _gd | _\d | _hd| _id | _jd | _kd | _ld | _md| _nd S )N)�creds�lpz&Finding a writeable DC for domain '%s'zFound DC %s� ldap://%s��url�session_info�credentialsr<