diff options
author | Alexandra Ellwood <lxs@mit.edu> | 2008-03-18 19:25:16 +0000 |
---|---|---|
committer | Alexandra Ellwood <lxs@mit.edu> | 2008-03-18 19:25:16 +0000 |
commit | f8d4e9aaad429fd6fac6504a527ab0258f47b854 (patch) | |
tree | 113cf627b1a1cbffd54f632670a8b06768012ca4 /src/ccapi/server/ccs_ccache.c | |
parent | d8d990c823f7ba6070622acf5ff2d08af7c1d7a9 (diff) | |
download | krb5-f8d4e9aaad429fd6fac6504a527ab0258f47b854.zip krb5-f8d4e9aaad429fd6fac6504a527ab0258f47b854.tar.gz krb5-f8d4e9aaad429fd6fac6504a527ab0258f47b854.tar.bz2 |
CCacheServer should track client iterators
The CCacheServer needs to track client iterators so that if
a client crashes while iterating the resources on the server
for that iterator are freed.
ticket: new
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20279 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/ccapi/server/ccs_ccache.c')
-rw-r--r-- | src/ccapi/server/ccs_ccache.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/ccapi/server/ccs_ccache.c b/src/ccapi/server/ccs_ccache.c index 2f7d45d..b35081f 100644 --- a/src/ccapi/server/ccs_ccache.c +++ b/src/ccapi/server/ccs_ccache.c @@ -747,6 +747,7 @@ static cc_int32 ccs_ccache_remove_credentials (ccs_ccache_t io_ccache, static cc_int32 ccs_ccache_new_credentials_iterator (ccs_ccache_t io_ccache, ccs_cache_collection_t io_cache_collection, + ccs_pipe_t in_client_pipe, cci_stream_t in_request_data, cci_stream_t io_reply_data) { @@ -760,6 +761,7 @@ static cc_int32 ccs_ccache_new_credentials_iterator (ccs_ccache_t io_c if (!err) { err = ccs_credentials_list_new_iterator (io_ccache->credentials, + in_client_pipe, &credentials_iterator); } @@ -1163,8 +1165,11 @@ cc_int32 ccs_ccache_handle_message (ccs_pipe_t in_client_pipe, in_request_data, reply_data); } else if (in_request_name == cci_ccache_new_credentials_iterator_msg_id) { - err = ccs_ccache_new_credentials_iterator (io_ccache, io_cache_collection, - in_request_data, reply_data); + err = ccs_ccache_new_credentials_iterator (io_ccache, + io_cache_collection, + in_client_pipe, + in_request_data, + reply_data); } else if (in_request_name == cci_ccache_move_msg_id) { err = ccs_ccache_move (io_ccache, io_cache_collection, |