Fix request handler with ssl socket for issue386

This commit is contained in:
Cédric Krier committed 2008-09-22 11:13:57 +02:00
1 parent 05c4ff16be
commit 41a289a722
2 files changed
+13 -11

No files matched your search

+11 -9
View File
@@ -32,20 +32,22 @@ xmlrpclib.Marshaller.dispatch[Decimal] = \
class SSLSocket(object):
def __init__(self, socket):
self.socket = socket
from OpenSSL import SSL
ctx = SSL.Context(SSL.SSLv23_METHOD)
ctx.use_privatekey_file(CONFIG['privatekey'])
ctx.use_certificate_file(CONFIG['certificate'])
self.ssl_socket = SSL.Connection(ctx, socket)
if not hasattr(socket, 'sock_shutdown'):
from OpenSSL import SSL
ctx = SSL.Context(SSL.SSLv23_METHOD)
ctx.use_privatekey_file(CONFIG['privatekey'])
ctx.use_certificate_file(CONFIG['certificate'])
self.socket = SSL.Connection(ctx, socket)
else:
self.socket = socket
def shutdown(self, how):
return self.ssl_socket.sock_shutdown(how)
return self.socket.sock_shutdown(how)
def __getattr__(self, name):
if name == 'shutdown':
return self.shutdown
return getattr(self.ssl_socket, name)
return getattr(self.socket, name)
class Service(object):
@@ -155,7 +157,7 @@ class SimpleXMLRPCRequestHandler(GenericXMLRPCRequestHandler,
class SecureXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
def setup(self):
self.connection = self.request
self.connection = SSLSocket(self.request)
self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
self.wfile = socket._fileobject(self.request, "wb", self.wbufsize)
+2 -2
View File
@@ -8,7 +8,7 @@ from DAV.errors import *
from DAV.constants import COLLECTION, OBJECT
from DAV.utils import get_uriparentpath, get_urifilename
from DAV.davcmd import copyone, copytree, moveone, movetree, delone, deltree
from netsvc import LocalService
from netsvc import LocalService, SSLSocket
import security
import pooler
from version import PACKAGE, VERSION, WEBSITE
@@ -317,6 +317,6 @@ class WebDAVAuthRequestHandler(AuthServer.BufferedAuthRequestHandler,
class SecureWebDAVAuthRequestHandler(WebDAVAuthRequestHandler):
def setup(self):
self.connection = self.request
self.connection = SSLSocket(self.request)
self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
self.wfile = socket._fileobject(self.request, "wb", self.wbufsize)