]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Fixed Windows build on VS 2010
authorAdam <Adam@anope.org>
Fri, 8 Apr 2011 07:48:43 +0000 (03:48 -0400)
committerAdam <Adam@anope.org>
Sun, 10 Apr 2011 21:54:20 +0000 (17:54 -0400)
18 files changed:
include/base.h
include/dns.h
include/hashcomp.h
src/hashcomp.cpp
src/inspircd.cpp
src/inspsocket.cpp
src/listensocket.cpp
src/modules/m_filter.cpp
src/modules/m_spanningtree/idle.cpp [new file with mode: 0644]
src/modules/m_spanningtree/link.h
src/modules/m_spanningtree/whois.cpp [deleted file]
src/modules/m_watch.cpp
win/inspircdVC90.vcxproj
win/inspircd_namedpipe.cpp
win/inspircd_win32wrapper.cpp
win/inspircd_win32wrapper.h
win/m_spanningtreeVC90.vcproj
win/m_spanningtreeVC90.vcxproj

index 7926779ebd0ea21508ccc7d339da130cc2200eb7..3859078876c01f3969c96d77bb61285c58f7ee90 100644 (file)
@@ -112,7 +112,7 @@ class CoreExport usecountbase
 };
 
 template <typename T>
-class reference
+class CoreExport reference
 {
        T* value;
  public:
@@ -141,8 +141,10 @@ class reference
        inline bool operator>(const reference<T>& other) const { return value > other.value; }
        static inline void* operator new(size_t, void* m) { return m; }
  private:
+#ifndef WIN32
        static void* operator new(size_t);
        static void operator delete(void*);
+#endif
 };
 
 /** This class can be used on its own to represent an exception, or derived to represent a module-specific exception.
@@ -189,6 +191,7 @@ class CoreExport CoreException : public std::exception
        }
 };
 
+class Module;
 class CoreExport ModuleException : public CoreException
 {
  public:
index 52849001556587d4c8430d32d135a891bb5069df..b22a2032e5eedd32c797df2c928dae6b0462adc9 100644 (file)
@@ -97,7 +97,7 @@ class CoreExport CachedQuery
 #if defined(WINDOWS) && !defined(HASHMAP_DEPRECATED)
 typedef nspace::hash_map<irc::string, CachedQuery, nspace::hash_compare<irc::string> > dnscache;
 #else
-typedef nspace::hash_map<irc::string, CachedQuery, nspace::hash<irc::string> > dnscache;
+typedef nspace::hash_map<irc::string, CachedQuery, irc::hash> dnscache;
 #endif
 
 /**
index bb3321161c5ca053023120e25c6eb37d9beb9968..07ec49a665bf34e8827b5889035078e62d0a4bd9 100644 (file)
@@ -92,7 +92,7 @@ namespace irc
         * Case sensitivity is ignored, and the RFC 'character set'
         * is adhered to
         */
-       struct StrHashComp
+       struct CoreExport StrHashComp
        {
                /** The operator () does the actual comparison in hash_map
                 */
@@ -479,6 +479,15 @@ namespace irc
         * @return The new value with _ translated to space.
         */
        CoreExport const char* Spacify(const char* n);
+
+       struct hash
+       {
+               /** Hash an irc::string using RFC1459 case sensitivity rules
+                * @param s A string to hash
+                * @return The hash value
+                */
+               size_t CoreExport operator()(const irc::string &s) const;
+       };
 }
 
 /* Define operators for using >> and << with irc::string to an ostream on an istream. */
@@ -622,15 +631,6 @@ BEGIN_HASHMAP_NAMESPACE
        };
 #else
 
-       template<> struct hash<irc::string>
-       {
-               /** Hash an irc::string using RFC1459 case sensitivity rules
-                * @param s A string to hash
-                * @return The hash value
-                */
-               size_t CoreExport operator()(const irc::string &s) const;
-       };
-
        /* XXX FIXME: Implement a hash function overriding std::string's that works with TR1! */
 
 #ifdef HASHMAP_DEPRECATED
index 0ef8d025fb92bb03330fb24e72205f79925fdd96..b3b00248f35f7a8a5c2bf5447d249782d38e0008 100644 (file)
@@ -144,7 +144,7 @@ void nspace::strlower(char *n)
 #if defined(WINDOWS) && !defined(HASHMAP_DEPRECATED)
        size_t nspace::hash_compare<irc::string, std::less<irc::string> >::operator()(const irc::string &s) const
 #else
-       size_t CoreExport nspace::hash<irc::string>::operator()(const irc::string &s) const
+       size_t CoreExport irc::hash::operator()(const irc::string &s) const
 #endif
 {
        register size_t t = 0;
index 47a9fabbac32ce297a73d83b5cb6e5a0d3613209..2ac844bb6abfa625705b493c6ff4bb4d02b2fb2a 100644 (file)
@@ -615,7 +615,7 @@ InspIRCd::InspIRCd(int argc, char** argv) :
        }
 #else
        WindowsIPC = new IPC;
-       if(!Config->nofork)
+       if(!Config->cmdline.nofork)
        {
                WindowsForkKillOwner();
                FreeConsole();
index 92625ac29e91691ce94bf5ca5949b5aef987d3a7..b872ea7e65279de6e8066adc72f68d9ff5dd246c 100644 (file)
 
 #ifndef DISABLE_WRITEV
 #include <sys/uio.h>
+#endif
+
 #ifndef IOV_MAX
 #define IOV_MAX 1024
 #endif
-#endif
 
 BufferedSocket::BufferedSocket()
 {
index 0bd6cb92b69616f46ee0b671d8273e712a5b4849..df27a9c48bc5fb5827f5966a44b17fbfc4e47c6b 100644 (file)
@@ -41,7 +41,7 @@ ListenSocket::ListenSocket(ConfigTag* tag, const irc::sockets::sockaddrs& bind_t
        if (bind_to.sa.sa_family == AF_INET6)
        {
                std::string addr = tag->getString("address");
-               int enable = (addr.empty() || addr == "*") ? 0 : 1;
+               const char enable = (addr.empty() || addr == "*") ? 0 : 1;
                setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &enable, sizeof(enable));
                // errors ignored intentionally
        }
index 69117ae5556b6f5c527a0aff935410988b1fb5e5..e4b2645f9b35ba950564f68bb0836deac8155c7b 100644 (file)
@@ -165,7 +165,8 @@ CmdResult CommandFilter::Handle(const std::vector<std::string> &parameters, User
        if (parameters.size() == 1)
        {
                /* Deleting a filter */
-               if (static_cast<ModuleFilter&>(*creator).DeleteFilter(parameters[0]))
+               Module *me = creator;
+               if (static_cast<ModuleFilter *>(me)->DeleteFilter(parameters[0]))
                {
                        user->WriteServ("NOTICE %s :*** Removed filter '%s'", user->nick.c_str(), parameters[0].c_str());
                        ServerInstance->SNO->WriteToSnoMask(IS_LOCAL(user) ? 'a' : 'A', std::string("FILTER: ")+user->nick+" removed filter '"+parameters[0]+"'");
@@ -212,7 +213,9 @@ CmdResult CommandFilter::Handle(const std::vector<std::string> &parameters, User
                        {
                                reason = parameters[3];
                        }
-                       std::pair<bool, std::string> result = static_cast<ModuleFilter&>(*creator).AddFilter(freeform, type, reason, duration, flags);
+                       
+                       Module *me = creator;
+                       std::pair<bool, std::string> result = static_cast<ModuleFilter *>(me)->AddFilter(freeform, type, reason, duration, flags);
                        if (result.first)
                        {
                                user->WriteServ("NOTICE %s :*** Added filter '%s', type '%s'%s%s, flags '%s', reason: '%s'", user->nick.c_str(), freeform.c_str(),
diff --git a/src/modules/m_spanningtree/idle.cpp b/src/modules/m_spanningtree/idle.cpp
new file mode 100644 (file)
index 0000000..59dc839
--- /dev/null
@@ -0,0 +1,78 @@
+/*       +------------------------------------+
+ *       | Inspire Internet Relay Chat Daemon |
+ *       +------------------------------------+
+ *
+ *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
+ * See: http://wiki.inspircd.org/Credits
+ *
+ * This program is free but copyrighted software; see
+ *            the file COPYING for details.
+ *
+ * ---------------------------------------------------
+ */
+
+#include "inspircd.h"
+#include "socket.h"
+#include "xline.h"
+#include "socketengine.h"
+
+#include "main.h"
+#include "utils.h"
+#include "treeserver.h"
+#include "treesocket.h"
+
+bool TreeSocket::Whois(const std::string &prefix, parameterlist &params)
+{
+       if (params.size() < 1)
+               return true;
+       User* u = ServerInstance->FindNick(prefix);
+       if (u)
+       {
+               // an incoming request
+               if (params.size() == 1)
+               {
+                       User* x = ServerInstance->FindNick(params[0]);
+                       if ((x) && (IS_LOCAL(x)))
+                       {
+                               long idle = abs((long)((x->idle_lastmsg) - ServerInstance->Time()));
+                               parameterlist par;
+                               par.push_back(prefix);
+                               par.push_back(ConvToStr(x->signon));
+                               par.push_back(ConvToStr(idle));
+                               // ours, we're done, pass it BACK
+                               Utils->DoOneToOne(params[0], "IDLE", par, u->server);
+                       }
+                       else
+                       {
+                               // not ours pass it on
+                               if (x)
+                                       Utils->DoOneToOne(prefix, "IDLE", params, x->server);
+                       }
+               }
+               else if (params.size() == 3)
+               {
+                       std::string who_did_the_whois = params[0];
+                       User* who_to_send_to = ServerInstance->FindNick(who_did_the_whois);
+                       if ((who_to_send_to) && (IS_LOCAL(who_to_send_to)))
+                       {
+                               // an incoming reply to a whois we sent out
+                               std::string nick_whoised = prefix;
+                               unsigned long signon = atoi(params[1].c_str());
+                               unsigned long idle = atoi(params[2].c_str());
+                               if ((who_to_send_to) && (IS_LOCAL(who_to_send_to)))
+                               {
+                                       ServerInstance->DoWhois(who_to_send_to, u, signon, idle, nick_whoised.c_str());
+                               }
+                       }
+                       else
+                       {
+                               // not ours, pass it on
+                               if (who_to_send_to)
+                                       Utils->DoOneToOne(prefix, "IDLE", params, who_to_send_to->server);
+                       }
+               }
+       }
+       return true;
+}
+
+
index 0ff2593cc2480aae9027818723f1489f1bc57de9..c60cb0bb73540072b7cadebbbe6e849b640a36c1 100644 (file)
@@ -45,5 +45,4 @@ class Autoconnect : public refcountbase
        Autoconnect(ConfigTag* Tag) : tag(Tag) {}
 };
 
-
 #endif
diff --git a/src/modules/m_spanningtree/whois.cpp b/src/modules/m_spanningtree/whois.cpp
deleted file mode 100644 (file)
index 59dc839..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*       +------------------------------------+
- *       | Inspire Internet Relay Chat Daemon |
- *       +------------------------------------+
- *
- *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
- * See: http://wiki.inspircd.org/Credits
- *
- * This program is free but copyrighted software; see
- *            the file COPYING for details.
- *
- * ---------------------------------------------------
- */
-
-#include "inspircd.h"
-#include "socket.h"
-#include "xline.h"
-#include "socketengine.h"
-
-#include "main.h"
-#include "utils.h"
-#include "treeserver.h"
-#include "treesocket.h"
-
-bool TreeSocket::Whois(const std::string &prefix, parameterlist &params)
-{
-       if (params.size() < 1)
-               return true;
-       User* u = ServerInstance->FindNick(prefix);
-       if (u)
-       {
-               // an incoming request
-               if (params.size() == 1)
-               {
-                       User* x = ServerInstance->FindNick(params[0]);
-                       if ((x) && (IS_LOCAL(x)))
-                       {
-                               long idle = abs((long)((x->idle_lastmsg) - ServerInstance->Time()));
-                               parameterlist par;
-                               par.push_back(prefix);
-                               par.push_back(ConvToStr(x->signon));
-                               par.push_back(ConvToStr(idle));
-                               // ours, we're done, pass it BACK
-                               Utils->DoOneToOne(params[0], "IDLE", par, u->server);
-                       }
-                       else
-                       {
-                               // not ours pass it on
-                               if (x)
-                                       Utils->DoOneToOne(prefix, "IDLE", params, x->server);
-                       }
-               }
-               else if (params.size() == 3)
-               {
-                       std::string who_did_the_whois = params[0];
-                       User* who_to_send_to = ServerInstance->FindNick(who_did_the_whois);
-                       if ((who_to_send_to) && (IS_LOCAL(who_to_send_to)))
-                       {
-                               // an incoming reply to a whois we sent out
-                               std::string nick_whoised = prefix;
-                               unsigned long signon = atoi(params[1].c_str());
-                               unsigned long idle = atoi(params[2].c_str());
-                               if ((who_to_send_to) && (IS_LOCAL(who_to_send_to)))
-                               {
-                                       ServerInstance->DoWhois(who_to_send_to, u, signon, idle, nick_whoised.c_str());
-                               }
-                       }
-                       else
-                       {
-                               // not ours, pass it on
-                               if (who_to_send_to)
-                                       Utils->DoOneToOne(prefix, "IDLE", params, who_to_send_to->server);
-                       }
-               }
-       }
-       return true;
-}
-
-
index 78da2799b9961e067634964870854fde6bbb8de4..9a9e12bb1ad59e95ab897b765b9b5ee85240917d 100644 (file)
@@ -90,7 +90,7 @@
 #if defined(WINDOWS) && !defined(HASHMAP_DEPRECATED)
        typedef nspace::hash_map<irc::string, std::deque<User*>, nspace::hash_compare<irc::string, std::less<irc::string> > > watchentries;
 #else
-       typedef nspace::hash_map<irc::string, std::deque<User*>, nspace::hash<irc::string> > watchentries;
+       typedef nspace::hash_map<irc::string, std::deque<User*>, irc::hash> watchentries;
 #endif
 typedef std::map<irc::string, std::string> watchlist;
 
index 22682a09a600e717bfee17ff7f6e984c472a0aac..2b711e35f1aa8d5ad20addcdc17a4e41a88e03e0 100644 (file)
@@ -1,4 +1,5 @@
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
     <ProjectConfiguration Include="Debug|Win32">\r
       <Configuration>Debug</Configuration>\r
@@ -484,6 +485,7 @@ nmake -f modules.mak
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
     </ClCompile>\r
     <ClCompile Include="..\src\command_parse.cpp" />\r
+    <ClCompile Include="..\src\configparser.cpp" />\r
     <ClCompile Include="..\src\configreader.cpp" />\r
     <ClCompile Include="..\src\cull_list.cpp" />\r
     <ClCompile Include="..\src\dns.cpp" />\r
@@ -498,7 +500,6 @@ nmake -f modules.mak
     <ClCompile Include="..\src\logger.cpp" />\r
     <ClCompile Include="..\src\mode.cpp" />\r
     <ClCompile Include="..\src\modes\cmode_b.cpp" />\r
-    <ClCompile Include="..\src\modes\cmode_h.cpp" />\r
     <ClCompile Include="..\src\modes\cmode_i.cpp" />\r
     <ClCompile Include="..\src\modes\cmode_k.cpp" />\r
     <ClCompile Include="..\src\modes\cmode_l.cpp" />\r
@@ -513,12 +514,14 @@ nmake -f modules.mak
     <ClCompile Include="..\src\modes\umode_o.cpp" />\r
     <ClCompile Include="..\src\modes\umode_s.cpp" />\r
     <ClCompile Include="..\src\modes\umode_w.cpp" />\r
+    <ClCompile Include="..\src\modmanager_dynamic.cpp" />\r
     <ClCompile Include="..\src\modules.cpp" />\r
     <ClCompile Include="..\src\server.cpp" />\r
     <ClCompile Include="..\src\snomasks.cpp" />\r
     <ClCompile Include="..\src\socket.cpp" />\r
     <ClCompile Include="..\src\socketengine.cpp" />\r
     <ClCompile Include="..\src\socketengines\socketengine_select.cpp" />\r
+    <ClCompile Include="..\src\stats.cpp" />\r
     <ClCompile Include="..\src\testsuite.cpp" />\r
     <ClCompile Include="..\src\threadengine.cpp" />\r
     <ClCompile Include="..\src\threadengines\threadengine_win32.cpp" />\r
@@ -527,6 +530,7 @@ nmake -f modules.mak
     <ClCompile Include="..\src\userprocess.cpp" />\r
     <ClCompile Include="..\src\users.cpp" />\r
     <ClCompile Include="..\src\user_resolver.cpp" />\r
+    <ClCompile Include="..\src\whois.cpp" />\r
     <ClCompile Include="..\src\wildcard.cpp" />\r
     <ClCompile Include="..\src\xline.cpp" />\r
     <ClCompile Include="inspircd_memory_functions.cpp" />\r
@@ -995,9 +999,6 @@ nmake -f modules.mak
     <CustomBuild Include="..\src\modules\m_abbreviation.cpp">\r
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
     </CustomBuild>\r
-    <ClCompile Include="..\src\socketengines\socketengine_iocp.cpp">\r
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>\r
-    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <CustomBuild Include="..\src\modules\account.h">\r
@@ -1130,7 +1131,6 @@ nmake -f modules.mak
     <ClInclude Include="..\include\snomasks.h" />\r
     <ClInclude Include="..\include\socket.h" />\r
     <ClInclude Include="..\include\socketengine.h" />\r
-    <ClInclude Include="..\include\socketengines\socketengine_iocp.h" />\r
     <ClInclude Include="..\include\socketengines\socketengine_select.h" />\r
     <ClInclude Include="..\include\testsuite.h" />\r
     <ClInclude Include="..\include\threadengine.h" />\r
index 76d16037bf721bb51fe1e9286fc2b6fefa2e440d..46f462832d81bc1bccf5955493822dec323e8844 100644 (file)
@@ -165,7 +165,7 @@ void IPC::Check()
                        /* Toggle debug */\r
                        thread->SetResult(0);\r
                        thread->ClearStatus();\r
-                       ServerInstance->Config->forcedebug = !ServerInstance->Config->forcedebug;\r
+                       ServerInstance->Config->cmdline.forcedebug = !ServerInstance->Config->cmdline.forcedebug;\r
                break;\r
        }\r
 }\r
index d82c90a61be9d6a99f380e507d01e03e25afdc99..88ea338c66f02b586f64f677a9502bf7ea5603ea 100644 (file)
@@ -238,7 +238,7 @@ int printf_c(const char * format, ...)
 
 int optind = 1;
 char optarg[514];
-int getopt_long_only(int ___argc, char *const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind)
+int getopt_long(int ___argc, char *const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind)
 {
        // burlex todo: handle the shortops, at the moment it only works with longopts.
 
@@ -556,7 +556,7 @@ int clock_gettime(int clock, struct timespec * tv)
 
        DWORD mstime = timeGetTime();
        tv->tv_sec   = time(NULL);
-       tv->tv_usec  = (mstime - (tv->tv_sec * 1000)) * 1000000;
+       tv->tv_nsec  = (mstime - (tv->tv_sec * 1000)) * 1000000;
        return 0;       
 }
 
@@ -696,3 +696,49 @@ int getcpu()
 
        return cpu;
 }
+
+int random()
+{
+       return rand();
+}
+
+void srandom(unsigned int seed)
+{
+       srand(seed);
+}
+
+int gettimeofday(timeval *tv, void *)
+{
+       SYSTEMTIME st;
+       GetSystemTime(&st);
+
+       tv->tv_sec = ServerInstance->Time();
+       tv->tv_usec = st.wMilliseconds;
+
+       return 0;
+}
+
+/* World's largest hack to make m_spanningtree work */
+#include "../src/modules/m_spanningtree/link.h"
+static void unused_Function()
+{
+       reference<Link> unused_Link;
+       reference<Autoconnect> unused_Autoconnect;
+
+       if (unused_Link)
+               unused_Link->Port = -1;
+       if (unused_Autoconnect)
+               unused_Autoconnect->NextConnectTime = -1;
+
+       Autoconnect *a = unused_Autoconnect;
+       Link *l = unused_Link;
+
+       unused_Link = reference<Link>(unused_Link);
+       unused_Autoconnect = reference<Autoconnect>(unused_Autoconnect);
+
+       unused_Link = reference<Link>(l);
+       unused_Autoconnect = reference<Autoconnect>(a);
+
+       delete unused_Link;
+       delete unused_Autoconnect;
+}
index 3f16280fdcd63de4c94c61728a791368fa804507..36307ee003fab2007be31e62e42af11586c5024b 100644 (file)
@@ -140,6 +140,8 @@ CoreExport const char * insp_inet_ntop(int af, const void * src, char * dst, soc
 /* Since when does the ISO C++ standard *remove* C functions?! */
 #define mkdir(file,mode) _mkdir(file)
 
+#define strncasecmp strnicmp
+
 /* Unix-style sleep (argument is in seconds) */
 __inline void sleep(int seconds) { Sleep(seconds * 1000); }
 
@@ -165,7 +167,7 @@ struct option
 };
 extern int optind;
 extern char optarg[514];
-int getopt_long_only (int ___argc, char *const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind);
+int getopt_long(int ___argc, char *const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind);
 
 /* Module Loading */
 #define dlopen(path, state) (void*)LoadLibrary(path)
@@ -189,6 +191,12 @@ struct DIR
        bool first;
 };
 
+struct timespec
+{
+       time_t tv_sec;
+       long tv_nsec;
+};
+
 CoreExport DIR * opendir(const char * path);
 CoreExport dirent * readdir(DIR * handle);
 CoreExport void closedir(DIR * handle);
@@ -246,6 +254,9 @@ CoreExport void FindDNS(std::string& server);
 CoreExport bool initwmi();
 CoreExport void donewmi();
 CoreExport int getcpu();
+CoreExport int random();
+CoreExport void srandom(unsigned seed);
+CoreExport int gettimeofday(timeval *tv, void *);
 
 #endif
 
index 7854169864da60541735ba0edd8726a04b301ae8..294d8114603ade0d120942298754da7445619b97 100644 (file)
@@ -66,7 +66,7 @@
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalDependencies="ws2_32.lib inspircd.lib cmd_whois.lib cmd_stats.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"\r
+                               AdditionalDependencies="ws2_32.lib inspircd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"\r
                                OutputFile="$(OutDir)/m_spanningtree.so"\r
                                LinkIncremental="1"\r
                                AdditionalLibraryDirectories="..\bin\debug\bin;..\bin\debug\lib"\r
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalDependencies="ws2_32.lib inspircd.lib cmd_whois.lib cmd_stats.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"\r
+                               AdditionalDependencies="ws2_32.lib inspircd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"\r
                                OutputFile="$(OutDir)/m_spanningtree.so"\r
                                LinkIncremental="1"\r
                                AdditionalLibraryDirectories="..\bin\release\bin;..\bin\release\lib"\r
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalDependencies="ws2_32.lib inspircd.lib cmd_whois.lib cmd_stats.lib"\r
+                               AdditionalDependencies="ws2_32.lib inspircd.lib"\r
                                OutputFile="$(OutDir)/m_spanningtree.so"\r
                                LinkIncremental="1"\r
                                AdditionalLibraryDirectories="..\bin\debug_x64\bin;..\bin\debug_x64\lib"\r
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalDependencies="ws2_32.lib inspircd.lib cmd_whois.lib cmd_stats.lib"\r
+                               AdditionalDependencies="ws2_32.lib inspircd.lib"\r
                                OutputFile="$(OutDir)/m_spanningtree.so"\r
                                LinkIncremental="1"\r
                                AdditionalLibraryDirectories="..\bin\release_x64\bin;..\bin\release_x64\lib"\r
index 868851e7cd96f358eaa91f7b868e4600b477f946..e7f3a55e3f193e627bc7d483d803b572b5d4f711 100644 (file)
@@ -1,4 +1,5 @@
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
     <ProjectConfiguration Include="Debug|Win32">\r
       <Configuration>Debug</Configuration>\r
       <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
     </ClCompile>\r
     <Link>\r
-      <AdditionalDependencies>ws2_32.lib;inspircd.lib;cmd_whois.lib;cmd_stats.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>ws2_32.lib;inspircd.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>..\bin\debug\bin;..\bin\debug\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <ProgramDatabaseFile>$(OutDir)m_spanningtree.pdb</ProgramDatabaseFile>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
     </ClCompile>\r
     <Link>\r
-      <AdditionalDependencies>ws2_32.lib;inspircd.lib;cmd_whois.lib;cmd_stats.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>ws2_32.lib;inspircd.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>..\bin\debug_x64\bin;..\bin\debug_x64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <ProgramDatabaseFile>$(OutDir)m_spanningtree.pdb</ProgramDatabaseFile>\r
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>\r
       <Optimization>MinSpace</Optimization>\r
       <WholeProgramOptimization>true</WholeProgramOptimization>\r
-      <AdditionalIncludeDirectories>..\include;..\win;..\src\modules\m_spanningtree;.;..\src\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>..\include;..\win;.;..\src\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;M_SPANNINGTREE_EXPORTS;DLL_BUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>false</MinimalRebuild>\r
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
     </ClCompile>\r
     <Link>\r
-      <AdditionalDependencies>ws2_32.lib;inspircd.lib;cmd_whois.lib;cmd_stats.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>ws2_32.lib;inspircd.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>..\bin\release\bin;..\bin\release\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Windows</SubSystem>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
     </ClCompile>\r
     <Link>\r
-      <AdditionalDependencies>ws2_32.lib;inspircd.lib;cmd_whois.lib;cmd_stats.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>ws2_32.lib;inspircd.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>..\bin\release_x64\bin;..\bin\release_x64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Windows</SubSystem>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ClCompile Include="..\src\modules\m_spanningtree\addline.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\admin.cpp" />\r
+    <ClCompile Include="..\src\modules\m_spanningtree\away.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\cachetimer.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\capab.cpp" />\r
+    <ClCompile Include="..\src\modules\m_spanningtree\compat.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\delline.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\encap.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\fhost.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\fjoin.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\fmode.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\fname.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\ftopic.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\handshaketimer.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\hmac.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\kill.cpp" />\r
+    <ClCompile Include="..\src\modules\m_spanningtree\idle.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\main.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\metadata.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\modules.cpp">\r
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)modules_spanningtree.obj</ObjectFileName>\r
-    </ClCompile>\r
-    <ClCompile Include="..\src\modules\m_spanningtree\motd.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\netburst.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\nickcollide.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\operquit.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\opertype.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\override_admin.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\override_map.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\override_modules.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\override_motd.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\override_squit.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\override_stats.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\override_time.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\override_whois.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\ping.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\pong.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\postcommand.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\precommand.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\privmsg.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\protocolinterface.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\push.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\rconnect.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\resolvers.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\rsquit.cpp" />\r
+    <ClCompile Include="..\src\modules\m_spanningtree\save.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\server.cpp">\r
       <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)servers_spanningtree.obj</ObjectFileName>\r
     </ClCompile>\r
-    <ClCompile Include="..\src\modules\m_spanningtree\stats.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\svsjoin.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\svsnick.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\svspart.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\time.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\treeserver.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\treesocket1.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\treesocket2.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\uid.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\utils.cpp" />\r
     <ClCompile Include="..\src\modules\m_spanningtree\version.cpp" />\r
-    <ClCompile Include="..\src\modules\m_spanningtree\whois.cpp" />\r
     <ClCompile Include="inspircd_memory_functions.cpp" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="..\src\modules\m_spanningtree\cachetimer.h" />\r
-    <ClInclude Include="..\src\modules\m_spanningtree\handshaketimer.h" />\r
     <ClInclude Include="..\src\modules\m_spanningtree\link.h" />\r
     <ClInclude Include="..\src\modules\m_spanningtree\main.h" />\r
     <ClInclude Include="..\src\modules\m_spanningtree\protocolinterface.h" />\r