diff options
| author | Kevin Wasserman <kevin.wasserman@painless-security.com> | 2012-07-27 16:41:06 -0400 |
|---|---|---|
| committer | Ben Kaduk <kaduk@mit.edu> | 2012-08-29 14:50:19 -0400 |
| commit | 9d528cd3cad2d6ea78310abe12186eedb1ac9314 (patch) | |
| tree | 172ef314330df4e785844f57a1b2755e75aeb122 /src/ccapi/common | |
| parent | c6753181c2e59316c40fe0f6d1a55df542401c51 (diff) | |
| download | krb5-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.c | 3 | ||||
| -rw-r--r-- | src/ccapi/common/win/tls.h | 3 |
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); |
