diff --git a/src/SSLSocket.h b/src/SSLSocket.h index 82659be..4c82b72 100644 --- a/src/SSLSocket.h +++ b/src/SSLSocket.h @@ -39,6 +39,9 @@ #endif - initWithSocket: (OFTCPSocket*)socket; +- initWithSocket: (OFTCPSocket*)socket + privateKeyFile: (OFString*)privateKeyFile + certificateFile: (OFString*)certificateFile; /* Change the return type */ - (SSLSocket*)accept; - (void)setPrivateKeyFile: (OFString*)file; diff --git a/src/SSLSocket.m b/src/SSLSocket.m index 8d2c31a..d09f52b 100644 --- a/src/SSLSocket.m +++ b/src/SSLSocket.m @@ -105,10 +105,22 @@ ssl_locking_callback(int mode, int n, const char *file, int line) } - initWithSocket: (OFTCPSocket*)socket +{ + return [self initWithSocket: socket + privateKeyFile: nil + certificateFile: nil]; +} + +- initWithSocket: (OFTCPSocket*)socket + privateKeyFile: (OFString*)privateKeyFile_ + certificateFile: (OFString*)certificateFile_ { self = [self init]; @try { + privateKeyFile = privateKeyFile_; + certificateFile = certificateFile_; + sock = dup(socket->sock); if ((ssl = SSL_new(ctx)) == NULL || !SSL_set_fd(ssl, sock)) {