diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-10-21 17:59:08 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-10-21 17:59:08 +0000 |
commit | 52a8a6d2bd1f015103f42eb7f1902f4f470f2318 (patch) | |
tree | 6629e278c04894dc591a2b3018a077172077b29a /src/modules | |
parent | 1afe64600c5affe07bc51cb0be4cc9f2229247da (diff) |
Fixed ssl clients on trunk. The problem peavey was having was that before ReadBuffer was char[] now its char*. sizeof() on char[] returns its size in chars, and sizeof on char* returns 4. :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8263 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/extra/m_ssl_openssl.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp index df47762af..2e86151ce 100644 --- a/src/modules/extra/m_ssl_openssl.cpp +++ b/src/modules/extra/m_ssl_openssl.cpp @@ -414,6 +414,8 @@ class ModuleSSLOpenSSL : public Module return; } + ServerInstance->Log(DEBUG,"OnRawSocketAccept begin handshake"); + Handshake(session); } @@ -446,6 +448,7 @@ class ModuleSSLOpenSSL : public Module virtual void OnRawSocketClose(int fd) { + ServerInstance->Log(DEBUG,"OnRawSocketClose %d", fd); /* Are there any possibilities of an out of range fd? Hope not, but lets be paranoid */ if ((fd < 0) || (fd > MAX_DESCRIPTORS)) return; @@ -465,6 +468,7 @@ class ModuleSSLOpenSSL : public Module virtual int OnRawSocketRead(int fd, char* buffer, unsigned int count, int &readresult) { + ServerInstance->Log(DEBUG,"OnRawSocketRead"); /* Are there any possibilities of an out of range fd? Hope not, but lets be paranoid */ if ((fd < 0) || (fd > MAX_DESCRIPTORS)) return 0; @@ -535,13 +539,10 @@ class ModuleSSLOpenSSL : public Module // Zero the offset, as there's nothing there.. session->inbufoffset = 0; } - + ServerInstance->Log(DEBUG,"Read result=%d",readresult); return 1; } - else - { - return ret; - } + return ret; } } @@ -722,9 +723,7 @@ class ModuleSSLOpenSSL : public Module int ret; if (session->outbound) - { ret = SSL_connect(session->sess); - } else ret = SSL_accept(session->sess); @@ -734,12 +733,14 @@ class ModuleSSLOpenSSL : public Module if (err == SSL_ERROR_WANT_READ) { + ServerInstance->Log(DEBUG,"Handshake Want read"); session->rstat = ISSL_READ; session->status = ISSL_HANDSHAKING; return true; } else if (err == SSL_ERROR_WANT_WRITE) { + ServerInstance->Log(DEBUG,"Handshake Want write"); session->wstat = ISSL_WRITE; session->status = ISSL_HANDSHAKING; MakePollWrite(session); @@ -747,6 +748,7 @@ class ModuleSSLOpenSSL : public Module } else { + ServerInstance->Log(DEBUG,"Handshake close session"); CloseSession(session); } @@ -754,6 +756,7 @@ class ModuleSSLOpenSSL : public Module } else if (ret > 0) { + ServerInstance->Log(DEBUG,"Handshake complete"); // Handshake complete. // This will do for setting the ssl flag...it could be done earlier if it's needed. But this seems neater. User* u = ServerInstance->FindDescriptor(session->fd); @@ -809,7 +812,12 @@ class ModuleSSLOpenSSL : public Module //OnRawSocketWrite(session->fd, NULL, 0); EventHandler* eh = ServerInstance->FindDescriptor(session->fd); if (eh) + { ServerInstance->SE->WantWrite(eh); + ServerInstance->Log(DEBUG,"Made want write"); + } + else + ServerInstance->Log(DEBUG,"Couldnt find descriptor to make writeable!"); } virtual void OnBufferFlushed(User* user) |