[CalendarServer-changes] [3809] CalendarServer/trunk

source_changes at macosforge.org source_changes at macosforge.org
Tue Mar 10 15:51:00 PDT 2009


Revision: 3809
          http://trac.macosforge.org/projects/calendarserver/changeset/3809
Author:   wsanchez at apple.com
Date:     2009-03-10 15:51:00 -0700 (Tue, 10 Mar 2009)
Log Message:
-----------
RedirectRequest isn't generic enough to be factored out.

Modified Paths:
--------------
    CalendarServer/trunk/calendarserver/tap/caldav.py
    CalendarServer/trunk/twistedcaldav/httpfactory.py

Modified: CalendarServer/trunk/calendarserver/tap/caldav.py
===================================================================
--- CalendarServer/trunk/calendarserver/tap/caldav.py	2009-03-10 22:50:10 UTC (rev 3808)
+++ CalendarServer/trunk/calendarserver/tap/caldav.py	2009-03-10 22:51:00 UTC (rev 3809)
@@ -49,6 +49,7 @@
 from twisted.web2.server import Site
 from twisted.web2.channel import HTTPFactory
 from twisted.web2.static import File as FileResource
+from twisted.web2.http import Request, RedirectResponse
 
 from twext.internet.ssl import ChainingOpenSSLContextFactory
 
@@ -67,7 +68,7 @@
 from twistedcaldav.directory.sudo import SudoDirectoryService
 from twistedcaldav.directory.util import NotFilePath
 from twistedcaldav.directory.wiki import WikiDirectoryService
-from twistedcaldav.httpfactory import HTTP503LoggingFactory, RedirectRequest
+from twistedcaldav.httpfactory import HTTP503LoggingFactory
 from twistedcaldav.static import CalendarHomeProvisioningFile
 from twistedcaldav.static import IScheduleInboxFile
 from twistedcaldav.static import TimezoneServiceFile
@@ -729,18 +730,37 @@
             for port in config.BindHTTPPorts:
 
                 if config.RedirectHTTPToHTTPS:
+                    #
                     # Redirect non-SSL ports to the configured SSL port.
-                    RedirectRequest.port = config.SSLPort
-                    self.log_info("Redirecting %s:%s to %s" %
-                        (bindAddress, port, RedirectRequest.port))
-                    TCPServer(int(port), HTTPFactory(RedirectRequest),
+                    #
+                    class SSLRedirectRequest(Request):
+                        def process(self):
+                            if config.SSLPort == 443:
+                                location = (
+                                    "https://%s%s"
+                                    % (config.ServerHostName, self.uri)
+                                )
+                            else:
+                                location = (
+                                    "https://%s:%d%s"
+                                    % (config.ServerHostName, config.SSLPort, self.uri)
+                                )
+                            self.writeResponse(RedirectResponse(location))
+
+                    self.log_info(
+                        "Redirecting HTTP port %s:%s to HTTPS port %s:%s"
+                        % (bindAddress, port, bindAddress, config.SSLPort)
+                    )
+                    TCPServer(int(port), HTTPFactory(SSLRedirectRequest),
                         interface=bindAddress, backlog=config.ListenBacklog,
                     ).setServiceParent(service)
 
                 else:
                     # Set up non-SSL port
-                    self.log_info("Adding server at %s:%s" %
-                        (bindAddress, port))
+                    self.log_info(
+                        "Adding server at %s:%s"
+                        % (bindAddress, port)
+                    )
                     TCPServer(int(port), channel,
                         interface=bindAddress, backlog=config.ListenBacklog,
                     ).setServiceParent(service)

Modified: CalendarServer/trunk/twistedcaldav/httpfactory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/httpfactory.py	2009-03-10 22:50:10 UTC (rev 3808)
+++ CalendarServer/trunk/twistedcaldav/httpfactory.py	2009-03-10 22:51:00 UTC (rev 3809)
@@ -17,7 +17,6 @@
 from twisted.internet import protocol
 from twisted.python import log
 from twisted.web2.channel.http import HTTPFactory
-from twisted.web2.http import Request, RedirectResponse
 
 from twistedcaldav.config import config
 
@@ -59,17 +58,3 @@
         for arg,value in self.protocolArgs.iteritems():
             setattr(p, arg, value)
         return p
-
-
-class RedirectRequest(Request):
-    """ Use 301 redirects to send client to SSL port """
-
-    port = 443
-
-    def process(self):
-        if self.port == 443:
-            location = "https://%s%s" % (config.ServerHostName, self.uri)
-        else:
-            location = "https://%s:%d%s" % (config.ServerHostName, self.port,
-                self.uri)
-        self.writeResponse(RedirectResponse(location))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090310/88b4d0e8/attachment-0001.html>


More information about the calendarserver-changes mailing list