/* $CompileFlags: pkgconfversion("openssl","0.9.7") pkgconfincludes("openssl","/openssl/ssl.h","") */
/* $LinkerFlags: rpath("pkg-config --libs openssl") pkgconflibs("openssl","/libssl.so","-lssl -lcrypto -ldl") */
/* $ModDep: transport.h */
+/* $NoPedantic */
enum issl_status { ISSL_NONE, ISSL_HANDSHAKING, ISSL_OPEN };
enum issl_io_status { ISSL_WRITE, ISSL_READ };
ModuleSSLOpenSSL(InspIRCd* Me)
: Module(Me), PublicInstance(Me)
{
- ServerInstance->Modules->PublishInterface("InspSocketHook", this);
+ ServerInstance->Modules->PublishInterface("BufferedSocketHook", this);
// Not rehashable...because I cba to reduce all the sizes of existing buffers.
inbufsize = ServerInstance->Config->NetBufferSize;
char* ret = "OK";
try
{
- ret = ServerInstance->Config->AddIOHook((Module*)this, (InspSocket*)ISR->Sock) ? (char*)"OK" : NULL;
+ ret = ServerInstance->Config->AddIOHook((Module*)this, (BufferedSocket*)ISR->Sock) ? (char*)"OK" : NULL;
}
catch (ModuleException &e)
{
}
else if (strcmp("IS_UNHOOK", request->GetId()) == 0)
{
- return ServerInstance->Config->DelIOHook((InspSocket*)ISR->Sock) ? (char*)"OK" : NULL;
+ return ServerInstance->Config->DelIOHook((BufferedSocket*)ISR->Sock) ? (char*)"OK" : NULL;
}
else if (strcmp("IS_HSDONE", request->GetId()) == 0)
{
issl_session* session = &sessions[ISR->Sock->GetFd()];
if (session->sess)
{
- VerifyCertificate(session, (InspSocket*)ISR->Sock);
+ VerifyCertificate(session, (BufferedSocket*)ISR->Sock);
return "OK";
}
}
{
int ret = DoRead(session);
- ServerInstance->Log(DEBUG, "<***> DoRead count: " + ConvToStr(count));
- ServerInstance->Log(DEBUG, "<***> DoRead ret: " + ConvToStr(ret));
- ServerInstance->Log(DEBUG, "<***> DoRead session->inbufoffset: " + ConvToStr(session->inbufoffset));
-
if (ret > 0)
{
if (count <= session->inbufoffset)
// Zero the offset, as there's nothing there..
session->inbufoffset = 0;
}
-
return 1;
}
- else
- {
- return ret;
- }
+ return ret;
}
}
int ret;
if (session->outbound)
- {
ret = SSL_connect(session->sess);
- }
else
ret = SSL_accept(session->sess);
}
else if (ret == 0)
{
- int ssl_err = SSL_get_error(session->sess, ret);
- char buf[1024];
- ERR_print_errors_fp(stderr);
- ServerInstance->Log(DEBUG,"Handshake fail 2: %d: %s", ssl_err, ERR_error_string(ssl_err,buf));
CloseSession(session);
return true;
}
//OnRawSocketWrite(session->fd, NULL, 0);
EventHandler* eh = ServerInstance->FindDescriptor(session->fd);
if (eh)
+ {
ServerInstance->SE->WantWrite(eh);
+ }
}
virtual void OnBufferFlushed(User* user)
return 0;
}
-MODULE_INIT(ModuleSSLOpenSSL);
+MODULE_INIT(ModuleSSLOpenSSL)