From 9cf56d917d92959701694477f7944d45ad2c38ed Mon Sep 17 00:00:00 2001 From: w00t Date: Sat, 19 May 2007 15:56:42 +0000 Subject: Windows support. Tested and working to compile on freebsd and linux. Next step is to make sure it actually works in windows too. ;p. Add Burlex to contributors. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7043 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree/main.cpp | 4 ++-- src/modules/m_spanningtree/treesocket1.cpp | 6 ++++++ src/modules/m_spanningtree/treesocket2.cpp | 16 +++++----------- src/modules/m_spanningtree/utils.h | 4 ++++ 4 files changed, 17 insertions(+), 13 deletions(-) (limited to 'src/modules/m_spanningtree') diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp index d037b7101..50de7da64 100644 --- a/src/modules/m_spanningtree/main.cpp +++ b/src/modules/m_spanningtree/main.cpp @@ -37,7 +37,7 @@ /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h */ ModuleSpanningTree::ModuleSpanningTree(InspIRCd* Me) - : Module::Module(Me), max_local(0), max_global(0) + : Module(Me), max_local(0), max_global(0) { ServerInstance->UseInterface("InspSocketHook"); Utils = new SpanningTreeUtilities(Me, this); @@ -1379,7 +1379,7 @@ class ModuleSpanningTreeFactory : public ModuleFactory }; -extern "C" void * init_module( void ) +extern "C" DllExport void * init_module( void ) { return new ModuleSpanningTreeFactory; } diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index b858061cb..27737c7ff 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -294,12 +294,18 @@ std::string TreeSocket::RandString(unsigned int length) { char* randombuf = new char[length+1]; std::string out; +#ifdef WINDOWS + int fd = -1; +#else int fd = open("/dev/urandom", O_RDONLY, 0); +#endif if (fd >= 0) { +#ifndef WINDOWS read(fd, randombuf, length); close(fd); +#endif } else { diff --git a/src/modules/m_spanningtree/treesocket2.cpp b/src/modules/m_spanningtree/treesocket2.cpp index afba5b96a..da4dd5d4c 100644 --- a/src/modules/m_spanningtree/treesocket2.cpp +++ b/src/modules/m_spanningtree/treesocket2.cpp @@ -1496,19 +1496,13 @@ bool TreeSocket::ProcessLine(std::string &line) { strparams[q] = params[q].c_str(); } - switch (this->Instance->CallCommandHandler(command.c_str(), strparams, params.size(), who)) + if(!this->Instance->CallCommandHandler(command.c_str(), strparams, params.size(), who)) { - case CMD_INVALID: - this->SendError("Unrecognised command '"+std::string(command.c_str())+"' -- possibly loaded mismatched modules"); - return false; - break; - case CMD_FAILURE: - return true; - break; - default: - /* CMD_SUCCESS and CMD_USER_DELETED fall through here */ - break; + this->SendError("Unrecognised command '"+std::string(command.c_str())+"' -- possibly loaded mismatched modules"); + return false; } + else + return true; } else { diff --git a/src/modules/m_spanningtree/utils.h b/src/modules/m_spanningtree/utils.h index 1c94e264f..cb783a81a 100644 --- a/src/modules/m_spanningtree/utils.h +++ b/src/modules/m_spanningtree/utils.h @@ -29,7 +29,11 @@ class ModuleSpanningTree; /* This hash_map holds the hash equivalent of the server * tree, used for rapid linear lookups. */ +#ifdef WINDOWS +typedef nspace::hash_map > > server_hash; +#else typedef nspace::hash_map, irc::StrHashComp> server_hash; +#endif typedef std::map TreeServerList; -- cgit v1.2.3