+ 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
{
public:
caller1(HandlerBase1<ReturnType, Param1>* initial)
{
public:
caller1(HandlerBase1<ReturnType, Param1>* initial)
- : caller< HandlerBase1<ReturnType, Param1> >::caller(initial)
+ : caller< HandlerBase1<ReturnType, Param1> >(initial)
{ }
virtual ReturnType operator() (Param1 param1)
{ }
virtual ReturnType operator() (Param1 param1)
{
public:
caller2(HandlerBase2<ReturnType, Param1, Param2>* initial)
{
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)
{ }
virtual ReturnType operator() (Param1 param1, Param2 param2)
{
public:
caller3(HandlerBase3<ReturnType, Param1, Param2, Param3>* initial)
{
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)
{ }
virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3)
{
public:
caller4(HandlerBase4<ReturnType, Param1, Param2, Param3, Param4>* initial)
{
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)
{ }
virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4)
{
public:
caller5(HandlerBase5<ReturnType, Param1, Param2, Param3, Param4, Param5>* initial)
{
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)
{ }
virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4, Param5 param5)
{
public:
caller6(HandlerBase6<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6>* initial)
{
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)
{ }
virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4, Param5 param5, Param6 param6)
{
public:
caller7(HandlerBase7<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>* initial)
{
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)
{ }
virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4, Param5 param5, Param6 param6, Param7 param7)
{
public:
caller8(HandlerBase8<ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>* initial)
{
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)
{ }
virtual ReturnType operator() (Param1 param1, Param2 param2, Param3 param3, Param4 param4, Param5 param5, Param6 param6, Param7 param7, Param8 param8)
const std::string ModuleSpanningTree::MapOperInfo(TreeServer* Current)
{
time_t secs_up = ServerInstance->Time() - Current->age;
const std::string ModuleSpanningTree::MapOperInfo(TreeServer* Current)
{
time_t secs_up = ServerInstance->Time() - Current->age;
return (" [Up: " + TimeToStr(secs_up) + " Lag: "+ConvToStr(Current->rtt)+"ms]");
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.
}
// WARNING: NOT THREAD SAFE - DONT GET ANY SMART IDEAS.
sock->WriteLine(std::string(":")+ServerInstance->Config->ServerName+" PING "+serv->GetName());
serv->SetNextPingTime(curtime + Utils->PingFreq);
serv->LastPing = curtime;
sock->WriteLine(std::string(":")+ServerInstance->Config->ServerName+" PING "+serv->GetName());
serv->SetNextPingTime(curtime + Utils->PingFreq);
serv->LastPing = curtime;
timeval t;
gettimeofday(&t, NULL);
long ts = (t.tv_sec * 1000) + (t.tv_usec / 1000);
serv->LastPingMsec = ts;
timeval t;
gettimeofday(&t, NULL);
long ts = (t.tv_sec * 1000) + (t.tv_usec / 1000);
serv->LastPingMsec = ts;
serv->Warned = false;
}
else
serv->Warned = false;
}
else
if (ServerSource)
{
ServerSource->SetPingFlag();
if (ServerSource)
{
ServerSource->SetPingFlag();
timeval t;
gettimeofday(&t, NULL);
long ts = (t.tv_sec * 1000) + (t.tv_usec / 1000);
ServerSource->rtt = ts - ServerSource->LastPingMsec;
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
bool SocketEngine::BoundsCheckFd(EventHandler* eh)
{
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;
if (!eh)
return false;
if ((eh->GetFd() < 0) || (eh->GetFd() > MAX_DESCRIPTORS))
return false;
return true;
<File\r
RelativePath="..\src\dynamic.cpp">\r
</File>\r
<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\hashcomp.cpp">\r
</File>\r
<File\r
RelativePath="..\src\modules.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
<File\r
RelativePath="..\src\snomasks.cpp">\r
</File>\r
#include <string>
#include <errno.h>
#include <assert.h>
#include <string>
#include <errno.h>
#include <assert.h>
+#pragma comment(lib, "winmm.lib")
using namespace std;
#ifndef INADDR_NONE
#define INADDR_NONE 0xffffffff
#endif
using namespace std;
#ifndef INADDR_NONE
#define INADDR_NONE 0xffffffff
#endif
/* This MUST remain static and delcared outside the class, so that WriteProcessMemory can reference it properly */
static DWORD owner_processid = 0;
/* This MUST remain static and delcared outside the class, so that WriteProcessMemory can reference it properly */
static DWORD owner_processid = 0;
+
+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;
+}
CoreExport dirent * readdir(DIR * handle);
CoreExport void closedir(DIR * handle);
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)
/* Disable these stupid warnings.. */
#pragma warning(disable:4800)
#pragma warning(disable:4251)