summaryrefslogtreecommitdiff
path: root/win
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-06-15 20:29:10 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-06-15 20:29:10 +0000
commit874c398ad9e185cca26011317a2f7ecf2623d214 (patch)
treee444c1632ecde2d83889683fb88eeba200e1e18b /win
parent97ab97c6fbb5776d3b920dd26745997f59388927 (diff)
IPC now provides feedback via the named pipe, right now the data is just the server name
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9912 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'win')
-rw-r--r--win/inspircd_namedpipe.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/win/inspircd_namedpipe.cpp b/win/inspircd_namedpipe.cpp
index 5f0c328df..9a960e4c3 100644
--- a/win/inspircd_namedpipe.cpp
+++ b/win/inspircd_namedpipe.cpp
@@ -22,15 +22,15 @@ void IPCThread::Run()
1000, // client time-out
NULL); // no security attribute
- printf("*** After CreateNamedPipe *** \n");
+ printf("*** After CreateNamedPipe *** \n");
- if (Pipe == INVALID_HANDLE_VALUE)
- {
- printf("*** IPC failure creating named pipe: %s\n", dlerror());
- return;
- }
+ if (Pipe == INVALID_HANDLE_VALUE)
+ {
+ printf("*** IPC failure creating named pipe: %s\n", dlerror());
+ return;
+ }
- printf("*** After check, exit flag=%d *** \n", GetExitFlag());
+ printf("*** After check, exit flag=%d *** \n", GetExitFlag());
printf("*** Loop *** \n");
Connected = ConnectNamedPipe(Pipe, NULL) ? TRUE : (GetLastError() == ERROR_PIPE_CONNECTED);
@@ -57,6 +57,18 @@ void IPCThread::Run()
continue;
}
+ std::stringstream status;
+ DWORD Written = 0;
+ ServerInstance->Threads->Mutex(true);
+
+ status << "name " << ServerInstance->Config->ServerName << std::endl;
+ status << "END" << std::endl;
+
+ ServerInstance->Threads->Mutex(false);
+
+ /* This is a blocking call and will succeed, so long as the client doesnt disconnect */
+ Success = WriteFile(Pipe, status.str().data(), status.str().length(), &Written, NULL);
+
FlushFileBuffers(Pipe);
DisconnectNamedPipe(Pipe);
}