]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
* include/caller.h will now compile correctly on Windows platforms.
authorburlex <burlex@e03df62e-2008-0410-955e-edbf42e46eb7>
Wed, 15 Aug 2007 20:41:30 +0000 (20:41 +0000)
committerburlex <burlex@e03df62e-2008-0410-955e-edbf42e46eb7>
Wed, 15 Aug 2007 20:41:30 +0000 (20:41 +0000)
+ Implemented gettimeofday in win32 wrapper, link rtt's will now display in milliseconds.
* SocketEngine::BoundsCheckFd will now handle Windows event handler cases correctly. (fixing writing to sockets not working)
* Fixed VC71 project.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7723 e03df62e-2008-0410-955e-edbf42e46eb7

include/caller.h
src/modules/m_spanningtree/main.cpp
src/modules/m_spanningtree/treesocket2.cpp
src/socketengine.cpp
win/inspircdVC71.vcproj
win/inspircd_win32wrapper.cpp
win/inspircd_win32wrapper.h

index 5850ae2a6a568ba9e86ef7204f4fa5e6d4eada30..b5dd38ef0e63015c57af58f4508c220c0a973b6d 100644 (file)
@@ -146,7 +146,7 @@ template <typename ReturnType, typename Param1> class CoreExport caller1 : publi
 {
  public:
        caller1(HandlerBase1<ReturnType, Param1>* initial)
-       : caller< HandlerBase1<ReturnType, Param1> >::caller(initial)
+       : caller< HandlerBase1<ReturnType, Param1> >(initial)
        { }
 
        virtual ReturnType operator() (Param1 param1)
@@ -159,7 +159,7 @@ template <typename ReturnType, typename Param1, typename Param2> class CoreExpor
 {
  public:
        caller2(HandlerBase2<ReturnType, Param1, Param2>* initial)
-       : caller< HandlerBase2<ReturnType, Param1, Param2> >::caller(initial)
+       : caller< HandlerBase2<ReturnType, Param1, Param2> >(initial)
        { }
 
        virtual ReturnType operator() (Param1 param1, Param2 param2)
@@ -172,7 +172,7 @@ template <typename ReturnType, typename Param1, typename Param2, typename Param3
 {
  public:
        caller3(HandlerBase3<ReturnType, Param1, Param2, Param3>* initial)
-       : caller< HandlerBase3<ReturnType, Param1, Param2, Param3> >::caller(initial)
+       : caller< HandlerBase3<ReturnType, Param1, Param2, Param3> >(initial)
        { }
 
        virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3)
@@ -185,7 +185,7 @@ template <typename ReturnType, typename Param1, typename Param2, typename Param3
 {
  public:
        caller4(HandlerBase4<ReturnType, Param1, Param2, Param3, Param4>* initial)
-       : caller< HandlerBase4<ReturnType, Param1, Param2, Param3, Param4> >::caller(initial)
+       : caller< HandlerBase4<ReturnType, Param1, Param2, Param3, Param4> >(initial)
        { }
 
        virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4)
@@ -198,7 +198,7 @@ template <typename ReturnType, typename Param1, typename Param2, typename Param3
 {
  public:
        caller5(HandlerBase5<ReturnType, Param1, Param2, Param3, Param4, Param5>* initial)
-       : caller< HandlerBase5<ReturnType, Param1, Param2, Param3, Param4, Param5> >::caller(initial)
+       : caller< HandlerBase5<ReturnType, Param1, Param2, Param3, Param4, Param5> >(initial)
        { }
 
        virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4, Param5 param5)
@@ -211,7 +211,7 @@ template <typename ReturnType, typename Param1, typename Param2, typename Param3
 {
  public:
        caller6(HandlerBase6<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6>* initial)
-       : caller< HandlerBase6<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6> >::caller(initial)
+       : caller< HandlerBase6<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6> >(initial)
        { }
 
        virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4, Param5 param5, Param6 param6)
@@ -224,7 +224,7 @@ template <typename ReturnType, typename Param1, typename Param2, typename Param3
 {
  public:
        caller7(HandlerBase7<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>* initial)
-       : caller< HandlerBase7<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> >::caller(initial)
+       : caller< HandlerBase7<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> >(initial)
        { }
 
        virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4, Param5 param5, Param6 param6, Param7 param7)
@@ -237,7 +237,7 @@ template <typename ReturnType, typename Param1, typename Param2, typename Param3
 {
  public:
        caller8(HandlerBase8<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>* initial)
-       : caller< HandlerBase8<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> >::caller(initial)
+       : caller< HandlerBase8<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> >(initial)
        { }
 
        virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4, Param5 param5, Param6 param6, Param7 param7, Param8 param8)
index ed54be0fb8061ad7e882523fa47c635ecc68b6c1..3d472bf7ab8ed5ec9eccc46a24ab63f35266668d 100644 (file)
@@ -174,12 +174,7 @@ std::string ModuleSpanningTree::TimeToStr(time_t secs)
 const std::string ModuleSpanningTree::MapOperInfo(TreeServer* Current)
 {
        time_t secs_up = ServerInstance->Time() - Current->age;
-
-#ifndef WIN32
        return (" [Up: " + TimeToStr(secs_up) + " Lag: "+ConvToStr(Current->rtt)+"ms]");
-#else
-       return (" [Up: " + TimeToStr(secs_up) + " Lag: "+ConvToStr(Current->rtt)+"s]");
-#endif
 }
 
 // WARNING: NOT THREAD SAFE - DONT GET ANY SMART IDEAS.
@@ -492,12 +487,10 @@ void ModuleSpanningTree::DoPingChecks(time_t curtime)
                                        sock->WriteLine(std::string(":")+ServerInstance->Config->ServerName+" PING "+serv->GetName());
                                        serv->SetNextPingTime(curtime + Utils->PingFreq);
                                        serv->LastPing = curtime;
-#ifndef WIN32
                                        timeval t;
                                        gettimeofday(&t, NULL);
                                        long ts = (t.tv_sec * 1000) + (t.tv_usec / 1000);
                                        serv->LastPingMsec = ts;
-#endif
                                        serv->Warned = false;
                                }
                                else
index 527c0122b414730e8c1e0f088a1739669f130268..88c7666bff7319b88095e0ea5dd93a7d41e83093 100644 (file)
@@ -365,14 +365,10 @@ bool TreeSocket::LocalPong(const std::string &prefix, std::deque<std::string> &p
                if (ServerSource)
                {
                        ServerSource->SetPingFlag();
-#ifndef WIN32
                        timeval t;
                        gettimeofday(&t, NULL);
                        long ts = (t.tv_sec * 1000) + (t.tv_usec / 1000);
                        ServerSource->rtt = ts - ServerSource->LastPingMsec;
-#else
-                       ServerSource->rtt = Instance->Time() - ServerSource->LastPing;
-#endif
                }
        }
        else
index 28ba8c25215c3d2921d909f219dc8ae026d617ab..3aef464e6c6dc367aa49c6d71596c308cd61fa87 100644 (file)
@@ -93,10 +93,24 @@ std::string SocketEngine::GetName()
 
 bool SocketEngine::BoundsCheckFd(EventHandler* eh)
 {       
+#ifdef WINDOWS
+       int * internal_fd;
+       if(!eh || eh->GetFd() < 0)
+               return false;
+
+       if(!eh->GetExt("internal_fd", internal_fd))
+               return false;
+
+       if(*internal_fd > MAX_DESCRIPTORS)
+               return false;
+
+       return true;
+#else
        if (!eh)
                return false;
        if ((eh->GetFd() < 0) || (eh->GetFd() > MAX_DESCRIPTORS))
                return false;
        return true;
+#endif
 }
 
index 107cb50368f89aded0e569721aad28198b2d0783..1bcac8fcdc5b50908d2a8526dd023304b819d561 100644 (file)
                        <File\r
                                RelativePath="..\src\dynamic.cpp">\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\src\filelogger.cpp">\r
+                       </File>\r
                        <File\r
                                RelativePath="..\src\hashcomp.cpp">\r
                        </File>\r
                        <File\r
                                RelativePath="..\src\modules.cpp">\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\src\server.cpp">\r
+                       </File>\r
                        <File\r
                                RelativePath="..\src\snomasks.cpp">\r
                        </File>\r
index 1646e39afd3d4ddc26e9d56652bbda09bf83a93a..e6f25df18f8d33837b4ea7a2401abec89accfb68 100644 (file)
 #include <string>
 #include <errno.h>
 #include <assert.h>
+#pragma comment(lib, "winmm.lib")
 using namespace std;
 
 #ifndef INADDR_NONE
 #define INADDR_NONE 0xffffffff
 #endif
 
+#include <mmsystem.h>
+
 /* This MUST remain static and delcared outside the class, so that WriteProcessMemory can reference it properly */
 static DWORD owner_processid = 0;
 
@@ -640,3 +643,14 @@ bool ValidateWindowsDnsServer(ServerConfig* conf, const char* tag, const char* v
        }
        return true;
 }
+
+int gettimeofday(struct timeval * tv, void * tz)
+{
+       if(tv == NULL)
+               return -1;
+
+       DWORD mstime = timeGetTime();
+       tv->tv_sec   = time(NULL);
+       tv->tv_usec  = (mstime - (tv->tv_sec * 1000)) * 1000;
+    return 0;  
+}
index ffda9ff406061086ab352023ce7c598f8a6d5f43..17c3f55251891028f851ea694ef8c48b2618b43f 100644 (file)
@@ -152,6 +152,8 @@ CoreExport DIR * opendir(const char * path);
 CoreExport dirent * readdir(DIR * handle);
 CoreExport void closedir(DIR * handle);
 
+CoreExport int gettimeofday(struct timeval * tv, void * tz);
+
 /* Disable these stupid warnings.. */
 #pragma warning(disable:4800)
 #pragma warning(disable:4251)