shell bypass 403

Cubjrnet7 Shell


name : networkd.cpython-39.pyc
a

'�Dg3�@s�ddlZddlmZddlmZddlmZmZddlm	Z	m
Z
ddlmZe�
e�ZGdd�d�ZGd	d
�d
e	j�Zd
dd�ZdS)�N)�OrderedDict)�Optional)�subp�util)�renderer�should_add_gateway_onlink_flag)�NetworkStatec@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	CfgParserc	Cstggggggid��|_dS)N)�Match�Link�Network�DHCPv4�DHCPv6�Address�Route)r�	conf_dict)�self�r�:/usr/lib/python3.9/site-packages/cloudinit/net/networkd.py�__init__s��zCfgParser.__init__cCs`|j��D]P}||kr
|j|�|dt|��tt�|j|��|j|<|j|��q
dS)N�=�r�keys�append�str�list�dict�fromkeys�sort)r�sec�key�val�krrr�update_section s
zCfgParser.update_sectioncCs�|j��D]|}||kr
||j|vr2g|j||<|j||�|dt|��tt�|j||��|j||<|j||��q
dS)z�
        For each route section we use rid as a key, this allows us to isolate
        this route from others on subsequent calls.
        rNr)rr�ridr r!r"rrr�update_route_section(s �zCfgParser.update_route_sectioncCs�d}t|j���D]�\}}|s q|dkr\t|�D](}|d|d7}||d7}|d7}q0q|dkr�t|�D]:}|d|d7}t||�D]}||d7}q�|d7}qlq|d|d7}t|�D]}||d7}q�|d7}q|S)N�r�[z]
�
r)�sortedr�items)r�contentsr"�v�e�nrrr�get_final_conf8s(
zCfgParser.get_final_confN)�__name__�
__module__�__qualname__rr#r%r/rrrrr	s
r	c@s�eZdZdZddd�Zed�dd�Zed�dd	�Zed�d
d�Zed�dd
�Z	ed�dd�Z
eed�dd�Zed�dd�Z
dd�Zdeeedd�dd�Zeed�dd�ZdS)�Rendererz�
    Renders network information in /etc/systemd/network

    This Renderer is currently experimental and doesn't support all the
    use cases supported by the other renderers yet.
    NcCs(|si}|�dd�|_|�dd�|_dS)N�resolve_conf_fnz/etc/systemd/resolved.conf�network_conf_dirz/etc/systemd/network/)�getr4r5)r�configrrrrYs��zRenderer.__init__)�cfgcCsTd}dddd�}|sdS|��D]*\}}||vr ||r |�||||�q |dS)Nr
�NameZDriverZ
MACAddress)�nameZdriverZmac_addressr:)r*r#)r�ifacer8rZ
match_dictr"r,rrr�generate_match_sectioncs�zRenderer.generate_match_sectioncCsPd}|sdSd|vr.|dr.|�|d|d�d|vrL|drL|�|dd�dS)NrZmtuZMTUBytesZoptionalZRequiredForOnline�no)r#)rr;r8rrrr�generate_link_sectiontszRenderer.generate_link_sectionc	Cspd}dddd�}d}d|vr,dt|d�}|��D]6\}}||vrFq4|d	krV||7}|�|||||�q4d
S)zy
        Parse a route and use rid as a key in order to isolate the route from
        others in the route dict.
        r�GatewayZDestinationZMetric)�gateway�networkZmetricr&�prefix�/rAN)rr*r%)	rr$�confr8rZ
route_cfg_maprBr"r,rrr�parse_routes�s�zRenderer.parse_routesc
	Cs�d}d}d}|�dg�D�]�}|d}|dks6|dkrR|dkrDd}qt|d	krtd
}n"|dkrt|dkrhd	}n|dkrtd
}d|vr�|dr�|dD] }|�d
|��||�|d}q�d|vr|d}	d|vr�|	dt|d�7}	ddddd�}
|��D]�\}}|dk�r|�d|
||	�q�|dk�rt|�dd|��|
||�t||	��rjt�d||	�|�dd|��dd
�|d}q�|dk�s�|dkr�|�||
|d�	|��q�q|�|d|�t
|�d d!�t��r�|�|d"|d �|S)#Nr=rr�subnets�typeZdhcp4�dhcpZipv4Zipv6�yesZdhcp6Zroutes�r��addressrBrCrr?�DNS�Domains)rLr@�dns_nameservers�
dns_searchr@r�azGGateway %s is not contained within subnet %s, adding GatewayOnLink flagZ
GatewayOnLinkrOrP� ZDHCPz	accept-rar&ZIPv6AcceptRA)r6rErr*r#r%r�LOG�debug�join�
isinstance�bool)
rr;r8rHrr$r-�t�i�addrZsubnet_cfg_mapr"r,rrr�
parse_subnets�sf
�

���
zRenderer.parse_subnetsc	Cs�dD]�}||vrqt||���}zt�|�}|r6dnd}Wn*tyf|dkrbt�d|�d}Yn0|dkrvd}nd}|�|d	|�qdS)
N)�dhcp4domainZdhcp6domainrIr=�routezInvalid dhcp4domain value - %sr\r
r�
UseDomains)r�casefoldrZtranslate_bool�
ValueErrorrSZwarningr#)r�dr8�item�ret�sectionrrr�dhcp_domain�s

zRenderer.dhcp_domain)r8�nscCs�d}|�d�}|s,|jdkr,|j|jd�}n|s>|jdkr>dS|�d�r`|�|dd�|d��|�d	�r�|�|d
d�|d	��dS)Nr�dnsrK)�search�nameservers�rhrNrRrirM)r6�versionZdns_searchdomainsrOr#rU)rr;r8rfrrgrrr�	parse_dns�s
�

zRenderer.parse_dnsc	Cs�ddddd�}|dkr,|�ddd	d
dd��d
|�d�|vr�|dd|��fvr�|d
|�d�}|��D](\}}||vrf|�d|��|||�qfdS)Nzuse-dns�use-domainszuse-hostnamezuse-ntp)ZUseDNSr^ZUseHostnameZUseNTP�4z
send-hostname�hostnamezroute-metriczuse-mtuz
use-routes)ZSendHostnameZHostnameZRouteMetricZUseMTUZ	UseRoutesrH�
-overridesrIZipvZDHCPv)�updater*r#)	rr8�devicerHrkZdhcp_config_mapsZdhcp_overridesr"r,rrr�parse_dhcp_overrides�s,���
�zRenderer.parse_dhcp_overridescCs>d}t�d|�|d|d}t�||�t�|||�dS)Nzsystemd-networkz Setting Networking Config for %sz10-cloud-init-z.network)rSrTrZ
write_fileZchownbyname)r�linkrDZnwk_dirZnet_fn_ownerZnet_fnrrr�create_network_files
zRenderer.create_network_file)�
network_state�	templates�returncCsP|j}|rt�|�|}t�|�|�|�}|��D]\}}|�|||�q4dS)N)r5rZtarget_pathrZ
ensure_dir�_render_contentr*ru)rrvrw�targetZnetwork_dir�ret_dictr"r,rrr�render_network_states

zRenderer.render_network_state)rfrxcCshi}|��D�]T}t�}|�||�}|�||�|�||�}|�|||�d}|��D] }|�d|��||�|d}qV|jdk�rP|d}	|j	d�
�D]&\}
}d|vr�|�d�|	kr�|
}	q�q�|	|j	dv�rP|j	d|	}|�||�dD]^}
d	|
�d
�|v�r>d|�d	|
�d�i�v�r>|	�d
|
�d|
�d�}t
|��|�||||
�q�|�||��i�q|S)Nr�crKrjr:Z	ethernetszset-name)rn�6rH�domainrmrpz has both dhcpzdomain and dhcpz*-overrides.use-domains configured. Use one)Ziter_interfacesr	r<r>r[rlZiter_routesrErkr7r*r6re�RuntimeErrorrsrqr/)rrfr{r;r8rtrHr$r]r:Zdev_nameZdev_cfgrrrk�	exceptionrrrry/sH

�����zRenderer._render_content)N)NN)r0r1r2�__doc__rr	r<r>rEr[rerrlrsrurrr|ryrrrrr3Qs$

?��r3cCs4ddg}ddg}|D]}tj|||d�sdSqdS)N�ipZ	systemctlz	/usr/sbinz/bin)rhrzFT)r�which)rzZexpectedrh�prrr�	availablejsr�)N)Zlogging�collectionsr�typingrZ	cloudinitrrZ
cloudinit.netrrZcloudinit.net.network_staterZ	getLoggerr0rSr	r3r�rrrr�<module>s
?

© 2025 Cubjrnet7