summaryrefslogtreecommitdiffstats
path: root/src/ccapi/common
diff options
context:
space:
mode:
authorKevin Wasserman <kevin.wasserman@painless-security.com>2012-07-27 16:41:06 -0400
committerBen Kaduk <kaduk@mit.edu>2012-08-29 14:50:19 -0400
commit9d528cd3cad2d6ea78310abe12186eedb1ac9314 (patch)
tree172ef314330df4e785844f57a1b2755e75aeb122 /src/ccapi/common
parentc6753181c2e59316c40fe0f6d1a55df542401c51 (diff)
downloadkrb5-9d528cd3cad2d6ea78310abe12186eedb1ac9314.tar.gz
krb5-9d528cd3cad2d6ea78310abe12186eedb1ac9314.tar.xz
krb5-9d528cd3cad2d6ea78310abe12186eedb1ac9314.zip
CCAPI client rpc fixes
On Windows XP, cci_os_ipc_thread_init() causes additional threads to be spawned immediately, which results in a vicious cycle until Windows resources are exhausted. Instead, defer thread_init() until it is really needed. Also, use the MSDN-recommended defaults for RPC calls instead of random constants. Signed-off-by: Kevin Wasserman <kevin.wasserman@painless-security.com> ticket: 7322 (new) target_version: 1.10.4 tags: pullup
Diffstat (limited to 'src/ccapi/common')
-rw-r--r--src/ccapi/common/win/tls.c3
-rw-r--r--src/ccapi/common/win/tls.h3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/ccapi/common/win/tls.c b/src/ccapi/common/win/tls.c
index 888230e68..48a5bd5a4 100644
--- a/src/ccapi/common/win/tls.c
+++ b/src/ccapi/common/win/tls.c
@@ -47,6 +47,8 @@ void tspdata_setUUID(struct tspdata* p, unsigned char __RPC_FAR* uuidString) {
strncpy(p->_uuid, uuidString, UUID_SIZE-1);
};
+void tspdata_setListening (struct tspdata* p, BOOL b) {p->_listening = b;}
+
void tspdata_setConnected (struct tspdata* p, BOOL b) {p->_CCAPI_Connected = b;}
void tspdata_setReplyEvent(struct tspdata* p, HANDLE h) {p->_replyEvent = h;}
@@ -58,6 +60,7 @@ void tspdata_setSST (struct tspdata* p, time_t t) {p->_sst
void tspdata_setStream (struct tspdata* p, k5_ipc_stream s) {p->_stream = s;}
+BOOL tspdata_getListening (const struct tspdata* p) {return p->_listening;}
BOOL tspdata_getConnected (const struct tspdata* p) {return p->_CCAPI_Connected;}
diff --git a/src/ccapi/common/win/tls.h b/src/ccapi/common/win/tls.h
index 4a8861eaa..181537f6f 100644
--- a/src/ccapi/common/win/tls.h
+++ b/src/ccapi/common/win/tls.h
@@ -41,6 +41,7 @@
*/
struct tspdata {
+ BOOL _listening;
BOOL _CCAPI_Connected;
RPC_ASYNC_STATE* _rpcState;
HANDLE _replyEvent;
@@ -52,6 +53,7 @@ struct tspdata {
struct tspdata* new_tspdata (char* uuid, time_t sst);
void delete_tspdata (struct tspdata* p);
+void tspdata_setListening (struct tspdata* p, BOOL b);
void tspdata_setConnected (struct tspdata* p, BOOL b);
void tspdata_setReplyEvent(struct tspdata* p, HANDLE h);
void tspdata_setRpcAState (struct tspdata* p, RPC_ASYNC_STATE* rpcState);
@@ -60,6 +62,7 @@ void tspdata_setStream (struct tspdata* p, k5_ipc_stream s);
void tspdata_setUUID (struct tspdata* p, unsigned char __RPC_FAR* uuidString);
HANDLE tspdata_getReplyEvent(const struct tspdata* p);
+BOOL tspdata_getListening(const struct tspdata* p);
BOOL tspdata_getConnected(const struct tspdata* p);
RPC_ASYNC_STATE* tspdata_getRpcAState(const struct tspdata* p);
time_t tspdata_getSST (const struct tspdata* p);