[CalendarServer-changes] [12904] twext/trunk/twext/internet/tcp.py
source_changes at macosforge.org
source_changes at macosforge.org
Thu Mar 13 20:54:29 PDT 2014
Revision: 12904
http://trac.calendarserver.org//changeset/12904
Author: wsanchez at apple.com
Date: 2014-03-13 20:54:29 -0700 (Thu, 13 Mar 2014)
Log Message:
-----------
lint
Modified Paths:
--------------
twext/trunk/twext/internet/tcp.py
Modified: twext/trunk/twext/internet/tcp.py
===================================================================
--- twext/trunk/twext/internet/tcp.py 2014-03-14 03:47:35 UTC (rev 12903)
+++ twext/trunk/twext/internet/tcp.py 2014-03-14 03:54:29 UTC (rev 12904)
@@ -35,6 +35,7 @@
log = Logger()
+
class MaxAcceptPortMixin(object):
"""
Mixin for resetting maxAccepts.
@@ -74,11 +75,16 @@
self.socket = socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)
self._realPortNumber = self.port = self.socket.getsockname()[1]
+
def createInternetSocket(self):
return self.socket
+
def startListening(self):
- log.info("%s starting on %s" % (self.factory.__class__, self._realPortNumber))
+ log.info(
+ "{self.factory.__class__} starting on {self._realPortNumber}",
+ self=self
+ )
self.factory.doStart()
self.connected = 1
self.fileno = self.socket.fileno
@@ -86,6 +92,7 @@
self.startReading()
+
class InheritedSSLPort(InheritedTCPPort):
"""
An SSL port which uses an inherited file descriptor.
@@ -95,26 +102,31 @@
transport = ssl.Server
+
def __init__(self, fd, factory, ctxFactory, reactor):
InheritedTCPPort.__init__(self, fd, factory, reactor)
self.ctxFactory = ctxFactory
self.socket = SSL.Connection(self.ctxFactory.getContext(), self.socket)
+
def _preMakeConnection(self, transport):
transport._startTLS()
return tcp.Port._preMakeConnection(self, transport)
+
def _allConnectionsClosed(protocolFactory):
"""
Check to see if protocolFactory implements allConnectionsClosed( ) and
if so, call it. Otherwise, return immediately.
This allows graceful shutdown by waiting for all requests to be completed.
- @param protocolFactory: (usually) an HTTPFactory implementing allConnectionsClosed
- which returns a Deferred which fires when all connections are closed.
- @return: A Deferred firing None when all connections are closed, or immediately
- if the given factory does not track its connections (e.g.
+ @param protocolFactory: (usually) an HTTPFactory implementing
+ allConnectionsClosed which returns a Deferred which fires when all
+ connections are closed.
+
+ @return: A Deferred firing None when all connections are closed, or
+ immediately if the given factory does not track its connections (e.g.
InheritingProtocolFactory)
"""
if hasattr(protocolFactory, "allConnectionsClosed"):
@@ -122,6 +134,7 @@
return succeed(None)
+
class MaxAcceptTCPServer(internet.TCPServer):
"""
TCP server which will uses MaxAcceptTCPPorts (and optionally,
@@ -139,27 +152,35 @@
self.backlog = self.kwargs.get("backlog", None)
self.interface = self.kwargs.get("interface", None)
+
def _getPort(self):
from twisted.internet import reactor
if self.inherit:
port = InheritedTCPPort(self.args[0], self.args[1], reactor)
else:
- port = MaxAcceptTCPPort(self.args[0], self.args[1], self.backlog, self.interface, reactor)
+ port = MaxAcceptTCPPort(
+ self.args[0], self.args[1],
+ self.backlog, self.interface, reactor
+ )
port.startListening()
self.myPort = port
return port
+
def stopService(self):
"""
Wait for outstanding requests to finish
- @return: a Deferred which fires when all outstanding requests are complete
+
+ @return: a Deferred which fires when all outstanding requests are
+ complete
"""
internet.TCPServer.stopService(self)
return _allConnectionsClosed(self.protocolFactory)
+
class MaxAcceptSSLServer(internet.SSLServer):
"""
SSL server which will uses MaxAcceptSSLPorts (and optionally,
@@ -174,25 +195,32 @@
self.backlog = self.kwargs.get("backlog", None)
self.interface = self.kwargs.get("interface", None)
+
def _getPort(self):
from twisted.internet import reactor
if self.inherit:
- port = InheritedSSLPort(self.args[0], self.args[1], self.args[2], reactor)
+ port = InheritedSSLPort(
+ self.args[0], self.args[1], self.args[2], reactor
+ )
else:
- port = MaxAcceptSSLPort(self.args[0], self.args[1], self.args[2], self.backlog, self.interface, self.reactor)
+ port = MaxAcceptSSLPort(
+ self.args[0], self.args[1], self.args[2],
+ self.backlog, self.interface, self.reactor
+ )
port.startListening()
self.myPort = port
return port
+
def stopService(self):
"""
Wait for outstanding requests to finish
- @return: a Deferred which fires when all outstanding requests are complete
+
+ @return: a Deferred which fires when all outstanding requests are
+ complete.
"""
internet.SSLServer.stopService(self)
# TODO: check for an ICompletionWaiter interface
return _allConnectionsClosed(self.protocolFactory)
-
-
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140313/1044a38a/attachment.html>
More information about the calendarserver-changes
mailing list