Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
mode_specs.cpython-313.pyc96 linesDownload Raw Back to __pycache__
1�

2��j�'��3�%SrSSKJr SSKrSSKrSSKrSSKrSSKJr SSKJ	r	 SSKJ4r5 SSKJr SSK
Jr SS	K
Jr SSKrSS6KJr SSKJr \R*S:aSS
KJr OSS
K
Jr \7"SS9"SS\\S95rSrS\S'SrS\S'SrS\S'Sr"SS\5r"SS\5r"SS \5r "S!S"\5r!"S#S$\5r""S%S&\5r#"S'S(\5r$"S)S*\5r%"S+S,\5r&"S-S.\5r'g)/a�8This module is responsible for parsing proxy mode specifications such as9`"regular"`, `"reverse:https://example.com"`, or `"socks5@1234"`. The general syntax is10 11    mode [: mode_configuration] [@ [listen_addr:]listen_port]12 13For a full example, consider `reverse:https://example.com@127.0.0.1:443`.14This would spawn a reverse proxy on port 443 bound to localhost.15The mode is `reverse`, and the mode data is `https://example.com`.16Examples:17 18    mode = ProxyMode.parse("regular@1234")19    assert mode.listen_port == 123420    assert isinstance(mode, RegularMode)21 22    ProxyMode.parse("reverse:example.com@invalid-port")  # ValueError23 24    RegularMode.parse("regular")  # ok25    RegularMode.parse("socks5")  # ValueError26 27�)�annotationsN)�ABCMeta)�abstractmethod)�	dataclass)�cache)�ClassVar)�Literal)�Serializable)�server_spec)��)�SelfT)�frozenc�*�\rSrSr%SrS\S'S\S'S\S'S\S	'S28\S'0rS\S
'SrSr\	SSj5r29\\	SSj55r\SSj5r
\\	SSj55r\\S Sj55rS!S"SjjrS!S#Sjjr\S5rSrSrSrg)$�	ProxyMode�.zy30Parsed representation of a proxy mode spec. Subclassed for each specific mode,31which then does its own data validation.32�str�	full_spec�data�33str | None�custom_listen_host�34int | None�custom_listen_portz
ClassVar[str]�	type_namez$ClassVar[dict[str, type[ProxyMode]]]�_ProxyMode__typesc���URRS5R5UlUR[R35;deU[R36UR'g)N�Mode)�__name__�removesuffix�lowerrrr)�cls�kwargss  �`D:\code\apps\devtools\python\user_packages\Python313\site-packages\mitmproxy/proxy/mode_specs.py�__init_subclass__�ProxyMode.__init_subclass__DsM�����1�1�&�9�?�?�A��
��}�}�I�$5�$5�5�5�5�+.�	���#�-�-�(�c�$�SUR<S3$)NzProxyMode.parse(�)�r��selfs r#�__repr__�ProxyMode.__repr__Is��!�$�.�.�!3�1�5�5r&c��g)z Validation of data happens here.N�r*s r#�
__post_init__�ProxyMode.__post_init__L��r&c��g)z=The mode description that will be used in server logs and UI.Nr/r*s r#�description�ProxyMode.descriptionPr2r&c��g)zN37Default listen port of servers for this mode, see `ProxyMode.listen_port()`.38i�r/r*s r#�default_port�ProxyMode.default_portUs��39r&c��g)z2The transport protocol used by this mode's server.Nr/r*s r#�transport_protocol�ProxyMode.transport_protocol\r2r&c��URS5up#nU(dUnSnURS5upSnU(a>SU;aURS5upsnOSnUn[U5n	U	S:dSU	:a[eOSnSn	[R40UR
5n41[X�5(d[U<S	URS4235eU43"XXyS9$![a [SU35ef=f![a [S5ef=f)zU44Parse a proxy mode specification and return the corresponding `ProxyMode` instance.45�@��:Nri��zinvalid port: zunknown modez is not a spec for a z mode)rrrr)46�47rpartition�	partition�int�48ValueErrorrrr �KeyError�49issubclassr)r!�spec�head�_�	listen_at�moder�host�port_str�port�mode_clss           r#�parse�ProxyMode.parseas'��"�_�_�S�1������D��I����s�+�
�����i��$-�$8�$8��$=�!�����$��
>��8�}���!�8�u�t�|�$�$� ,�50�D��D�	.� �(�(�����6�H��(�(�(���x�'<�S�]�]�O�5�Q�R�R���$�51�	52���
>� �>�(��!<�=�=�
>���	.��|�-�-�	.�s�C�>!C.�C+�.DNc�@�URbUR$UbU$g)z�53Return the address a server for this mode should listen on. This can be either directly54specified in the spec or taken from a user-configured global default (`options.listen_host`).55By default, return an empty string to listen on all hosts.56r>)r�r+�defaults  r#�listen_host�ProxyMode.listen_host�s*���"�"�.��*�*�*�
�
 ��N�r&c�V�URbUR$UbU$UR$)a-57Return the port a server for this mode should listen on. This can be either directly58specified in the spec, taken from a user-configured global default (`options.listen_port`),59or from `ProxyMode.default_port`.60May be `None` for modes that don't bind to a specific address, e.g. local redirect mode.61)rr7rRs  r#�listen_port�ProxyMode.listen_port�s3���"�"�.��*�*�*�
�
 ��N��$�$�$r&c�,�[RU5$�N)rrO)r!�states  r#�62from_state�ProxyMode.from_state�s�����u�%�%r&c��UR$rZr)r*s r#�	get_state�ProxyMode.get_state�s���~�~�r&c�N�XR:wa[R"S5eg)NzProxy modes are immutable.)r�dataclasses�FrozenInstanceError)r+r[s  r#�	set_state�ProxyMode.set_state�s#���N�N�"��1�1�2N�O�O�#r&r/��return�None)rgr�rgr)rg�Literal['tcp', 'udp', 'both'])rFrrgrrZ)rSrrgr)rSrrgr)r�63__module__�__qualname__�__firstlineno__�__doc__�__annotations__rr$r,rr0�propertyr4r7r:�classmethodrrOrTrWr\r_rd�__static_attributes__r/r&r#rr.s����64�N�:�65
�I�A�"�"�9�"�"�9���L�46�G�
1�6�/�666��/��/���L���L�������A���A��67�%68���%69�N�%��&��&��Pr&r)�	metaclass�tcprj�TCP�udp�UDP�both�BOTHc�(�U(a[S5eg)Nzmode takes no arguments�rC)rs r#�_check_emptyr|�s����2�3�3�r&c�*�\rSrSrSrSr\rSSjrSr	g)�RegularMode�zfA regular HTTP(S) proxy that is interfaced with `HTTP CONNECT` calls (or absolute-form HTTP requests).z
HTTP(S) proxyc�.�[UR5 grZ�r|rr*s r#r0�RegularMode.__post_init__�����T�Y�Y�r&r/Nrf�70rrkrlrmrnr4rur:r0rrr/r&r#r~r~�s��p�!�K��� r&r~c�*�\rSrSrSrSr\rSSjrSr	g)�TransparentMode��zJA transparent proxy, see https://docs.mitmproxy.org/dev/howto-transparent/zTransparent Proxyc�.�[UR5 grZr�r*s r#r0�TransparentMode.__post_init__�r�r&r/Nrfr�r/r&r#r�r��s��T�%�K��� r&r�c�@�\rSrSr%SrSr\rS\S'S\S'SSjr	S	r71g72)�UpstreamMode��z^A regular HTTP(S) proxy, but all connections are forwarded to a second upstream HTTP(S) proxy.zHTTP(S) proxy (upstream mode)zLiteral['http', 'https']�scheme�tuple[str, int]�addressc��[R"URSS9uolUS:waUS:wa[	S5eXlg)N�http��default_scheme�httpszinvalid upstream proxy scheme)rrOrr�rCr�)r+r�s  r#r0�UpstreamMode.__post_init__�s=��*�0�0����6�R�����V���'� 1��<�=�=��r&)r�r�Nrf)rrkrlrmrnr4rur:ror0rrr/r&r#r�r��s!��h�1�K���$�$�
��r&r�c�b^�\rSrSr%SrSr\rS\S'S\S'SSjr	\73SU4S	jj5rS74rU=r
$)
�ReverseMode��z^A reverse proxy. This acts like a normal server, but redirects all requests to a fixed target.z
reverse proxyzMLiteral['http', 'https', 'http3', 'tls', 'dtls', 'tcp', 'udp', 'dns', 'quic']r�r�r�c�75�[R"URSS9uUlUlURS;a[76UlOURS;a[UlURSUR3Ulg)Nr�r�)�http3�dtlsrv�quic)�dnsr�z to )	rrOrr�r�rwr:ryr4r*s r#r0�ReverseMode.__post_init__�sj��$/�$5�$5�d�i�i�PW�$X�!���T�\��;�;�:�:�&)�D�#�
�[�[�,�
,�&*�D�#�"�.�.�/�t�D�I�I�;�?��r&c�:>�URS:Xag[TU]$)Nr��5)r��superr7)r+�	__class__s �r#r7�ReverseMode.default_port�s����;�;�%����w�#�#r&)r�r4r�r:rfri)rrkrlrmrnr4rur:ror0rpr7rr�
__classcell__)r�s@r#r�r��s=���h�!�K���
����@��$��$r&r�c�.�\rSrSrSrSrSr\rSSjr	Sr77g)	�78Socks5Mode��zA SOCKSv5 proxy.zSOCKS v5 proxyi8c�.�[UR5 grZr�r*s r#r0�Socks5Mode.__post_init__r�r&r/Nrf)rrkrlrmrnr4r7rur:r0rrr/r&r#r�r��s���"�K��L��� r&r�c�.�\rSrSrSrSrSr\rSSjr	Sr79g)	�DnsModeiz
A DNS server.z80DNS serverr�c�.�[UR5 grZr�r*s r#r0�DnsMode.__post_init__r�r&r/Nrf�rrkrlrmrnr4r7ryr:r0rrr/r&r#r�r�s����K��L��� r&r�c�.�\rSrSrSrSrSr\rSSjr	Sr81g)	�
WireGuardModeizProxy Server based on WireGuardzWireGuard serveril�c��grZr/r*s r#r0�WireGuardMode.__post_init__#s��r&r/Nrf)rrkrlrmrnr4r7rwr:r0rrr/r&r#r�r�s��)�$�K��L���
r&r�c�.�\rSrSrSrSr\rSrSSjr	Sr82g)�	LocalModei'zOS-level transparent proxy.zLocal redirectorNc�j�[RRRUR5 grZ)�mitmproxy_rs�local�LocalRedirector�
describe_specrr*s r#r0�LocalMode.__post_init__.s �����*�*�8�8����Cr&r/rf�rrkrlrmrnr4ryr:r7r0rrr/r&r#r�r�'s��%�$�K����L�Dr&r�c�.�\rSrSrSrSrSr\rSSjr	Sr83g)�TunModei3zA Tun interface.z
TUN interfaceNc���UR=(aE [R"5S:H=(a& [R"SUR5(+nU(a[SURS35eg)N�Darwinz	^utun\d+$zInvalid tun name: zS. On macOS, the tun name must be the form utunx where x is a number, such as utun3.)r�platform�system�re�matchrC)r+�invalid_tun_names  r#r0�TunMode.__post_init__:sg���9�9�84��O�O���)�S�"�(�(�<����2S�.S�	���$�T�Y�Y�K�0d�e��
�r&r/rfr�r/r&r#r�r�3s���!�K��L���	r&r�c�.�\rSrSrSrSr\rSrSSjr	Sr85g)�OsProxyModeiFzDeprecated alias for LocalModeNc��[S5e)NzYosproxy mode has been renamed to local mode. Thanks for trying our experimental features!r{r*s r#r0�OsProxyMode.__post_init__Ms���g�86�	87r&r/rfr�r/r&r#r�r�Fs��(�2�K����L�88r&r�)(rn�89__future__rrbr�r��sys�abcrrr�	functoolsr�typingrr	r�� mitmproxy.coretypes.serializabler90�
mitmproxy.netr�version_info�typing_extensionsrrrurorwryr|r~r�r�r�r�r�r�r�r�r�r/r&r#�<module>r�s���,#���	�91���!�����9�%����g��&���$��P���P��P�D&+��"�*�%*��"�*�&,��#�,�4�92 �)� � �i� �
�9�
� $�)�$�4 �� � �i� �0
�I�
�	D�	�	D��i��&9394�)�9596r&
codekingpro/portable-devtools · Team Ai