[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: transports.py
File is not writable. Editing disabled.
# # Helper transport objects # # Copyright (c) 2002--2020 Red Hat, Inc. # # Author: Mihai Ibanescu <misa@redhat.com> # Based on what was previously shipped as cgiwrap: # - Cristian Gafton <gafton@redhat.com> # - Erik Troan <ewt@redhat.com> import xmlrpc import requests import xmlrpc.client as xmlrpclib __version__ = "3.0.4-1.module_el8.10.0+7063+2df472ce.cloudlinux-" class RequestsTransport(xmlrpc.client.Transport): """ Drop in Transport for xmlrpclib that uses Requests instead of httplib """ user_agent = "rhn.rpclib.py/%s" % __version__ def __init__( self, use_https = True, https_verify = True, timeout = None, proxy = None ): self.https_verify = https_verify self.use_https = use_https self.timeout = timeout self._injected_headers = {} self.proxy_uri = proxy super(RequestsTransport, self).__init__() def set_header(self, name, arg): if type(arg) in [ type([]), type(()) ]: self._injected_headers[name] = [str(a) for a in arg] else: self._injected_headers[name] = str(arg) def add_header(self, name, arg): if name in self._injected_headers: vlist = self._injected_headers[name] if not isinstance(vlist, list): vlist = [ vlist ] else: vlist = self._injected_headers[name] = [] vlist.append(str(arg)) def clear_headers(self): self._headers.clear() def set_trusted_cert(self, certfile): self.https_verify = certfile def get_injected_headers(self): for name, arg in self._injected_headers.items(): if type(arg) in [type([]), type(())]: # Multi-valued header # # Per RFC 2616, section 4.2 (Message Headers): # Multiple message-header fields with the same field-name MAY be # present in a message if and only if the entire field-value for # the header field is defined as a comma-separated list [i.e. # #(values)]. It MUST be possible to combine the multiple header # fields into one "field-name: field-value" pair, without # changing the semantics of the message, by appending each # subsequent field-value to the first, each separated by a comma. arg = ','.join(map(str, arg)) yield name, arg def request(self, host, handler, request_body, verbose=False): """ Make an xmlrpc request. """ headers = { 'User-Agent': self.user_agent, 'Content-Type': 'text/xml', 'Accept': '*/*', } extra_headers = dict(self.get_injected_headers()) url = self._build_url(host, handler) kwargs = { 'verify': self.https_verify } resp = requests.post( url, data=request_body, headers={ **headers, **extra_headers }, timeout=self.timeout, proxies={ 'http': self.proxy_uri, 'https': self.proxy_uri }, **kwargs ) try: resp.raise_for_status() except requests.RequestException as e: raise xmlrpc.client.ProtocolError(url, resp.status_code, str(e), resp.headers) else: return self.parse_response(resp) def parse_response(self, response): """ Parse the xmlrpc response. """ p, u = self.getparser() p.feed(response.content) p.close() return u.close() def _build_url(self, host, handler): """ Build a url for our request based on the host, handler and use_http property """ scheme = 'https' if self.use_https else 'http' handler = handler.lstrip('/') return '%s://%s/%s' % (scheme, host, handler)
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server306.web-hosting.com
Server IP: 192.64.117.220
PHP Version: 8.2.31
Server Software: LiteSpeed
System: Linux server306.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
HDD Total: 138.28 GB
HDD Free: 102.1 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
No
pkexec:
No
git:
Yes
User Info
Username: awodbsau
User ID (UID): 4522
Group ID (GID): 4521
Script Owner UID: 4522
Current Dir Owner: N/A