Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 19 additions & 20 deletions Lib/ssl.py
Original file line number Diff line number Diff line change
Expand Up @@ -786,17 +786,16 @@ def __init__(self, sock=None, keyfile=None, certfile=None,
self.do_handshake_on_connect = do_handshake_on_connect
self.suppress_ragged_eofs = suppress_ragged_eofs
if sock is not None:
socket.__init__(self,
family=sock.family,
type=sock.type,
proto=sock.proto,
fileno=sock.fileno())
super().__init__(family=sock.family,
type=sock.type,
proto=sock.proto,
fileno=sock.fileno())
self.settimeout(sock.gettimeout())
sock.detach()
elif fileno is not None:
socket.__init__(self, fileno=fileno)
super().__init__(fileno=fileno)
else:
socket.__init__(self, family=family, type=type, proto=proto)
super().__init__(family=family, type=type, proto=proto)

# See if we are connected
try:
Expand Down Expand Up @@ -952,17 +951,17 @@ def send(self, data, flags=0):
self.__class__)
return self._sslobj.write(data)
else:
return socket.send(self, data, flags)
return super().send(data, flags)

def sendto(self, data, flags_or_addr, addr=None):
self._checkClosed()
if self._sslobj:
raise ValueError("sendto not allowed on instances of %s" %
self.__class__)
elif addr is None:
return socket.sendto(self, data, flags_or_addr)
return super().sendto(data, flags_or_addr)
else:
return socket.sendto(self, data, flags_or_addr, addr)
return super().sendto(data, flags_or_addr, addr)

def sendmsg(self, *args, **kwargs):
# Ensure programs don't send data unencrypted if they try to
Expand All @@ -984,7 +983,7 @@ def sendall(self, data, flags=0):
v = self.send(byte_view[count:])
count += v
else:
return socket.sendall(self, data, flags)
return super().sendall(data, flags)

def sendfile(self, file, offset=0, count=None):
"""Send a file, possibly by using os.sendfile() if this is a
Expand All @@ -1005,7 +1004,7 @@ def recv(self, buflen=1024, flags=0):
self.__class__)
return self.read(buflen)
else:
return socket.recv(self, buflen, flags)
return super().recv(buflen, flags)

def recv_into(self, buffer, nbytes=None, flags=0):
self._checkClosed()
Expand All @@ -1020,23 +1019,23 @@ def recv_into(self, buffer, nbytes=None, flags=0):
self.__class__)
return self.read(nbytes, buffer)
else:
return socket.recv_into(self, buffer, nbytes, flags)
return super().recv_into(buffer, nbytes, flags)

def recvfrom(self, buflen=1024, flags=0):
self._checkClosed()
if self._sslobj:
raise ValueError("recvfrom not allowed on instances of %s" %
self.__class__)
else:
return socket.recvfrom(self, buflen, flags)
return super().recvfrom(buflen, flags)

def recvfrom_into(self, buffer, nbytes=None, flags=0):
self._checkClosed()
if self._sslobj:
raise ValueError("recvfrom_into not allowed on instances of %s" %
self.__class__)
else:
return socket.recvfrom_into(self, buffer, nbytes, flags)
return super().recvfrom_into(buffer, nbytes, flags)

def recvmsg(self, *args, **kwargs):
raise NotImplementedError("recvmsg not allowed on instances of %s" %
Expand All @@ -1056,7 +1055,7 @@ def pending(self):
def shutdown(self, how):
self._checkClosed()
self._sslobj = None
socket.shutdown(self, how)
super().shutdown(how)

def unwrap(self):
if self._sslobj:
Expand All @@ -1068,7 +1067,7 @@ def unwrap(self):

def _real_close(self):
self._sslobj = None
socket._real_close(self)
super()._real_close()

def do_handshake(self, block=False):
"""Perform a TLS/SSL handshake."""
Expand All @@ -1093,10 +1092,10 @@ def _real_connect(self, addr, connect_ex):
session=self._session)
try:
if connect_ex:
rc = socket.connect_ex(self, addr)
rc = super().connect_ex(addr)
else:
rc = None
socket.connect(self, addr)
super().connect(addr)
if not rc:
self._connected = True
if self.do_handshake_on_connect:
Expand All @@ -1121,7 +1120,7 @@ def accept(self):
a tuple containing that new connection wrapped with a server-side
SSL channel, and the address of the remote client."""

newsock, addr = socket.accept(self)
newsock, addr = super().accept()
newsock = self.context.wrap_socket(newsock,
do_handshake_on_connect=self.do_handshake_on_connect,
suppress_ragged_eofs=self.suppress_ragged_eofs,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Use super().method instead of socket.method in SSLSocket. They were
there most likely for legacy reasons.