Author: damoxc

Revision: 5407

Log:
        add ssl support to the webui webserver

Diff:
Modified: trunk/deluge/ui/web/server.py
===================================================================
--- trunk/deluge/ui/web/server.py       2009-06-23 17:50:21 UTC (rev 5406)
+++ trunk/deluge/ui/web/server.py       2009-06-23 18:21:25 UTC (rev 5407)
@@ -47,6 +47,7 @@
 
 from twisted.application import service, internet
 from twisted.internet import reactor, error
+from twisted.internet.ssl import SSL
 from twisted.web import http, resource, server, static
 
 from deluge import common, component
@@ -378,6 +379,15 @@
         request.setHeader("content-type", "text/html; charset=utf-8")
         return template.render(scripts=scripts, stylesheets=self.stylesheets)
 
+class ServerContextFactory:
+    
+    def getContext(self):
+        """Creates an SSL context."""
+        ctx = SSL.Context(SSL.SSLv3_METHOD)
+        
ctx.use_privatekey_file(common.get_default_config_dir(os.path.join('ssl', 
'web.key')))
+        
ctx.use_certificate_file(common.get_default_config_dir(os.path.join('ssl', 
'web.crt')))
+        return ctx
+
 class DelugeWeb(component.Component):
 
     def __init__(self):
@@ -409,6 +419,7 @@
         self.top_level = TopLevel()
         self.site = server.Site(self.top_level)
         self.port = self.config["port"]
+        self.https = self.config["https"]
         self.web_api = WebApi()
         self.auth = Auth()
 
@@ -439,6 +450,14 @@
             self.port, self.port)
         self.plugins.enable_plugins()
         reactor.run()
+    
+    def start_ssl(self):
+        log.info("%s %s.", _("Starting server in PID"), os.getpid())
+        reactor.listenSSL(self.port, self.site, ServerContextFactory())
+        log.info("serving on %s:%s view at https://127.0.0.1:%s";, "0.0.0.0",
+            self.port, self.port)
+        self.plugins.enable_plugins()
+        reactor.run()
 
     def shutdown(self, *args):
         log.info("Shutting down webserver")

Modified: trunk/deluge/ui/web/web.py
===================================================================
--- trunk/deluge/ui/web/web.py  2009-06-23 17:50:21 UTC (rev 5406)
+++ trunk/deluge/ui/web/web.py  2009-06-23 18:21:25 UTC (rev 5407)
@@ -54,6 +54,8 @@
         group.add_option("-p", "--port", dest="port", type="int",
             help="Sets the port to be used for the webserver",
             action="store", default=None)
+        group.add_option("--ssl", dest="ssl", action="store_true",
+            help="Tells the webserver to use ssl", default=False)
         self.parser.add_option_group(group)
     
     @property
@@ -67,9 +69,13 @@
         self.__server = server.DelugeWeb()
         
         if self.options.port:
-            self.server.port =  self.options.port
+            self.server.port = self.options.port
         
-        self.server.start()
+        if self.options.ssl or self.server.https:
+            self.server.https = self.options.ssl
+            self.server.start_ssl()
+        else:
+            self.server.start()
 
 def start():
     web = Web()



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"deluge-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/deluge-commit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to