summaryrefslogtreecommitdiff
path: root/src/modules/extra
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-10-21 17:59:08 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-10-21 17:59:08 +0000
commit52a8a6d2bd1f015103f42eb7f1902f4f470f2318 (patch)
tree6629e278c04894dc591a2b3018a077172077b29a /src/modules/extra
parent1afe64600c5affe07bc51cb0be4cc9f2229247da (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/extra')
-rw-r--r--src/modules/extra/m_ssl_openssl.cpp22
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)