diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2021-03-29 16:39:31 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-29 22:39:31 +0900 |
commit | c1b073a630bb731de18bb17afb2b8b1388b92a72 (patch) | |
tree | 9be9c9c8f9e8d2b893ddc976c34015bf54d87ace /Lib/xmlrpc/client.py | |
parent | 70cdf1812cf479c6b1cd7435a6fc0679ec1fb0da (diff) | |
download | cpython-git-c1b073a630bb731de18bb17afb2b8b1388b92a72.tar.gz |
bpo-43433: Preserve query and fragment in the URL of the server in ServerProxy. (GH-25057)
Diffstat (limited to 'Lib/xmlrpc/client.py')
-rw-r--r-- | Lib/xmlrpc/client.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/xmlrpc/client.py b/Lib/xmlrpc/client.py index d15d60d293..9e7449c88d 100644 --- a/Lib/xmlrpc/client.py +++ b/Lib/xmlrpc/client.py @@ -1421,11 +1421,13 @@ class ServerProxy: # establish a "logical" server connection # get the url - p = urllib.parse.urlparse(uri) + p = urllib.parse.urlsplit(uri) if p.scheme not in ("http", "https"): raise OSError("unsupported XML-RPC protocol") self.__host = p.netloc - self.__handler = p.path or "/RPC2" + self.__handler = urllib.parse.urlunsplit(["", "", *p[2:]]) + if not self.__handler: + self.__handler = "/RPC2" if transport is None: if p.scheme == "https": |