[26223] in CVS-changelog-for-Kerberos-V5
svn rev #25563: trunk/src/ccapi/server/ win/
daemon@ATHENA.MIT.EDU (tlyu@mit.edu)
Mon Dec 12 15:46:03 2011
Date: Mon, 12 Dec 2011 15:46:01 -0500
From: tlyu@mit.edu
Message-Id: <201112122046.pBCKk1PH005643@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu
http://src.mit.edu/fisheye/changelog/krb5/?cs=25563
Commit By: tlyu
Log Message:
ticket: 7050
subject: kfw fixes: ccapiserver only quits after all clients detach.
Not sure if this is really a good idea or not...
Signed-off-by: Kevin Wasserman <kevin.wasserman@painless-security.com>
Changed Files:
U trunk/src/ccapi/server/ccs_server.c
U trunk/src/ccapi/server/ccs_server.h
U trunk/src/ccapi/server/win/ccs_os_server.cpp
Modified: trunk/src/ccapi/server/ccs_server.c
===================================================================
--- trunk/src/ccapi/server/ccs_server.c 2011-12-12 20:45:58 UTC (rev 25562)
+++ trunk/src/ccapi/server/ccs_server.c 2011-12-12 20:46:00 UTC (rev 25563)
@@ -399,3 +399,10 @@
return cci_check_error (err);
}
+
+/* ------------------------------------------------------------------------ */
+
+cc_uint64 ccs_server_client_count ()
+{
+ return ccs_client_array_count (g_client_array);
+}
Modified: trunk/src/ccapi/server/ccs_server.h
===================================================================
--- trunk/src/ccapi/server/ccs_server.h 2011-12-12 20:45:58 UTC (rev 25562)
+++ trunk/src/ccapi/server/ccs_server.h 2011-12-12 20:46:00 UTC (rev 25563)
@@ -48,4 +48,6 @@
cc_int32 in_reply_err,
k5_ipc_stream in_reply_data);
+cc_uint64 ccs_server_client_count ();
+
#endif /* CCS_SERVER_H */
Modified: trunk/src/ccapi/server/win/ccs_os_server.cpp
===================================================================
--- trunk/src/ccapi/server/win/ccs_os_server.cpp 2011-12-12 20:45:58 UTC (rev 25562)
+++ trunk/src/ccapi/server/win/ccs_os_server.cpp 2011-12-12 20:46:00 UTC (rev 25563)
@@ -199,7 +199,7 @@
ParseOpts::Opts opts = { 0 };
ParseOpts PO;
- BOOL bQuit = FALSE;
+ BOOL bQuitIfNoClients = FALSE;
opts.cMinCalls = 1;
opts.cMaxCalls = 20;
@@ -231,7 +231,7 @@
threadStatus = _beginthread(receiveLoop, 0, (void*)&rpcargs);
/* We handle the queue entries here. Work loop: */
- while (!bQuit) {
+ while (ccs_server_client_count() > 0 || !bQuitIfNoClients) {
worklist_wait();
while (!worklist_isEmpty()) {
k5_ipc_stream buf = NULL;
@@ -244,10 +244,6 @@
ccs_pipe_t pipe2 = NULL;
if (worklist_remove(&rpcmsg, &pipe, &buf, &serverStartTime)) {
- if (rpcmsg == CCMSG_QUIT) {
- bQuit = TRUE;
- break;
- }
uuid = ccs_win_pipe_getUuid(pipe);
#if 0
cci_debug_printf("%s: processing WorkItem msg:%ld pipeUUID:<%s> pipeHandle:0x%X SST:%ld",
@@ -290,6 +286,9 @@
err = krb5int_ipc_stream_write(stream, "This is a test of the emergency broadcasting system", 52);
err = ccs_os_server_send_reply(pipe, stream);
break;
+ case CCMSG_QUIT:
+ bQuitIfNoClients = TRUE;
+ break;
default:
cci_debug_printf("Huh? Received invalid message type %ld from UUID:<%s>",
rpcmsg, uuid);
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5