]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/threadengines/threadengine_win32.cpp
Remove useless vector copy
[user/henk/code/inspircd.git] / src / threadengines / threadengine_win32.cpp
index 449530e468f2cf7a6ec148233dff6e4ede620656..4bac4f5dce513834b4c101428a390720806f4785 100644 (file)
@@ -40,7 +40,7 @@ ThreadEngine::~ThreadEngine()
 
 DWORD WINAPI ThreadEngine::Entry(void* parameter)
 {
-       Thread* pt = reinterpret_cast<Thread*>(parameter);
+       Thread* pt = static_cast<Thread*>(parameter);
        pt->Run();
        return 0;
 }
@@ -55,10 +55,9 @@ class ThreadSignalSocket : public BufferedSocket
 {
        SocketThread* parent;
  public:
-       ThreadSignalSocket(SocketThread* t, InspIRCd* SI, int newfd, char* ip)
+       ThreadSignalSocket(SocketThread* t, InspIRCd* SI, int newfd, const char* ip)
                : BufferedSocket(SI, newfd, ip), parent(t)
        {
-               parent->results = this;
        }
        
        virtual bool OnDataReady()
@@ -76,7 +75,7 @@ class ThreadSignalSocket : public BufferedSocket
 class ThreadSignalListener : public ListenSocketBase
 {
        SocketThread* parent;
-       irc::sockets::insp_sockaddr sock_us;
+       sockaddr_in sock_us;
  public:
        ThreadSignalListener(SocketThread* t, InspIRCd* Instance, int port, const std::string &addr) : ListenSocketBase(Instance, port, addr), parent(t)
        {
@@ -87,26 +86,21 @@ class ThreadSignalListener : public ListenSocketBase
                }
        }
 
-       virtual void OnAcceptReady(const std::string &ipconnectedto, int nfd, const std::string &incomingip)
+       virtual void OnAcceptReady(int nfd)
        {
-               new ThreadSignalSocket(parent, ServerInstance, nfd, const_cast<char*>(ipconnectedto.c_str()));
+               new ThreadSignalSocket(parent, ServerInstance, nfd, "");
                ServerInstance->SE->DelFd(this);
-               // XXX unsafe casts suck
        }
 /* Using getsockname and ntohs, we can determine which port number we were allocated */
        int GetPort()
        {
-#ifdef IPV6
-               return ntohs(sock_us.sin6_port);
-#else
                return ntohs(sock_us.sin_port);
-#endif
        }
 };
 
 SocketThread::SocketThread(InspIRCd* SI)
 {
-       ThreadSignalListener* listener = new ThreadSignalListener(this, ServerInstance, 0, "127.0.0.1");
+       ThreadSignalListener* listener = new ThreadSignalListener(this, SI, 0, "127.0.0.1");
        if (listener->GetFd() == -1)
                throw CoreException("Could not create ITC pipe");
        int connFD = socket(AF_INET, SOCK_STREAM, 0);
@@ -114,14 +108,14 @@ SocketThread::SocketThread(InspIRCd* SI)
                throw CoreException("Could not create ITC pipe");
        
        struct sockaddr_in addr;
-       irc::sockets::insp_aton("127.0.0.1", &addr.sin_addr);
+       inet_aton("127.0.0.1", &addr.sin_addr);
        addr.sin_family = AF_INET;
        addr.sin_port = htons(listener->GetPort());
 
-       if (connect(connFD, static_cast<struct sockaddr*>(&addr), sizeof(addr)) == -1)
+       if (connect(connFD, reinterpret_cast<struct sockaddr*>(&addr), sizeof(addr)) == -1)
        {
-               ServerInstance->SE->DelFd(listener);
-               close(connFD);
+               SI->SE->DelFd(listener);
+               closesocket(connFD);
                throw CoreException("Could not connet to ITC pipe");
        }
        this->signal.connFD = connFD;
@@ -138,6 +132,6 @@ SocketThread::~SocketThread()
        if (signal.connFD >= 0)
        {
                shutdown(signal.connFD, 2);
-               close(signal.connFD);
+               closesocket(signal.connFD);
        }
 }