summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlexandra Ellwood <lxs@mit.edu>2008-01-15 22:13:27 +0000
committerAlexandra Ellwood <lxs@mit.edu>2008-01-15 22:13:27 +0000
commit3bbddf92797339694a9881d6f08b5bb0aea5adbe (patch)
tree39ef48552fb90d1dfd15c13e361aff70f1c67f9b /src
parente4655054fc18b9814d05e155554c62e856f34c68 (diff)
downloadkrb5-3bbddf92797339694a9881d6f08b5bb0aea5adbe.tar.gz
krb5-3bbddf92797339694a9881d6f08b5bb0aea5adbe.tar.xz
krb5-3bbddf92797339694a9881d6f08b5bb0aea5adbe.zip
Add ccs_pipe_compare
Added a pipe comparison function. Forgot it when I was adding support for non-integer pipe types (such as used by Windows). ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20200 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/ccapi/server/ccs_callback.c3
-rw-r--r--src/ccapi/server/ccs_client.c2
-rw-r--r--src/ccapi/server/ccs_os_pipe.h4
-rw-r--r--src/ccapi/server/ccs_pipe.c9
-rw-r--r--src/ccapi/server/ccs_pipe.h4
-rw-r--r--src/ccapi/server/mac/ccs_os_pipe.c19
6 files changed, 39 insertions, 2 deletions
diff --git a/src/ccapi/server/ccs_callback.c b/src/ccapi/server/ccs_callback.c
index a962460ed..6a5281c2f 100644
--- a/src/ccapi/server/ccs_callback.c
+++ b/src/ccapi/server/ccs_callback.c
@@ -213,7 +213,8 @@ cc_int32 ccs_callback_is_for_client_pipe (ccs_callback_t in_callback,
if (!out_is_for_client_pipe ) { err = cci_check_error (ccErrBadParam); }
if (!err) {
- *out_is_for_client_pipe = (in_callback->client_pipe == in_client_pipe);
+ err = ccs_pipe_compare (in_callback->client_pipe, in_client_pipe,
+ out_is_for_client_pipe);
}
return cci_check_error (err);
diff --git a/src/ccapi/server/ccs_client.c b/src/ccapi/server/ccs_client.c
index b29616f34..5ec5de33d 100644
--- a/src/ccapi/server/ccs_client.c
+++ b/src/ccapi/server/ccs_client.c
@@ -161,7 +161,7 @@ cc_int32 ccs_client_uses_pipe (ccs_client_t in_client,
if (!out_uses_pipe) { err = cci_check_error (ccErrBadParam); }
if (!err) {
- *out_uses_pipe = (in_client->client_pipe == in_pipe);
+ err = ccs_pipe_compare (in_client->client_pipe, in_pipe, out_uses_pipe);
}
return cci_check_error (err);
diff --git a/src/ccapi/server/ccs_os_pipe.h b/src/ccapi/server/ccs_os_pipe.h
index 0311ffa2b..ade4b2edb 100644
--- a/src/ccapi/server/ccs_os_pipe.h
+++ b/src/ccapi/server/ccs_os_pipe.h
@@ -31,6 +31,10 @@
cc_int32 ccs_os_pipe_valid (ccs_pipe_t in_pipe);
+cc_int32 ccs_os_pipe_compare (ccs_pipe_t in_pipe,
+ ccs_pipe_t in_compare_to_pipe,
+ cc_uint32 *out_equal);
+
cc_int32 ccs_os_pipe_copy (ccs_pipe_t *out_pipe,
ccs_pipe_t in_pipe);
diff --git a/src/ccapi/server/ccs_pipe.c b/src/ccapi/server/ccs_pipe.c
index ac02f95df..0a65a0aeb 100644
--- a/src/ccapi/server/ccs_pipe.c
+++ b/src/ccapi/server/ccs_pipe.c
@@ -36,6 +36,15 @@ cc_int32 ccs_pipe_valid (ccs_pipe_t in_pipe)
/* ------------------------------------------------------------------------ */
+cc_int32 ccs_pipe_compare (ccs_pipe_t in_pipe,
+ ccs_pipe_t in_compare_to_pipe,
+ cc_uint32 *out_equal)
+{
+ return ccs_os_pipe_compare (in_pipe, in_compare_to_pipe, out_equal);
+}
+
+/* ------------------------------------------------------------------------ */
+
cc_int32 ccs_pipe_copy (ccs_pipe_t *out_pipe,
ccs_pipe_t in_pipe)
{
diff --git a/src/ccapi/server/ccs_pipe.h b/src/ccapi/server/ccs_pipe.h
index 7e21be6cc..daf6630b7 100644
--- a/src/ccapi/server/ccs_pipe.h
+++ b/src/ccapi/server/ccs_pipe.h
@@ -31,6 +31,10 @@
cc_int32 ccs_pipe_valid (ccs_pipe_t in_pipe);
+cc_int32 ccs_pipe_compare (ccs_pipe_t in_pipe,
+ ccs_pipe_t in_compare_to_pipe,
+ cc_uint32 *out_equal);
+
cc_int32 ccs_pipe_copy (ccs_pipe_t *out_pipe,
ccs_pipe_t in_pipe);
diff --git a/src/ccapi/server/mac/ccs_os_pipe.c b/src/ccapi/server/mac/ccs_os_pipe.c
index 494c91f58..91227676c 100644
--- a/src/ccapi/server/mac/ccs_os_pipe.c
+++ b/src/ccapi/server/mac/ccs_os_pipe.c
@@ -39,6 +39,25 @@ cc_int32 ccs_os_pipe_valid (ccs_pipe_t in_pipe)
/* ------------------------------------------------------------------------ */
+cc_int32 ccs_os_pipe_compare (ccs_pipe_t in_pipe,
+ ccs_pipe_t in_compare_to_pipe,
+ cc_uint32 *out_equal)
+{
+ cc_int32 err = ccNoError;
+
+ if (!in_pipe ) { err = cci_check_error (ccErrBadParam); }
+ if (!in_compare_to_pipe) { err = cci_check_error (ccErrBadParam); }
+ if (!out_equal ) { err = cci_check_error (ccErrBadParam); }
+
+ if (!err) {
+ *out_equal = (in_pipe == in_compare_to_pipe);
+ }
+
+ return cci_check_error (err);
+}
+
+/* ------------------------------------------------------------------------ */
+
cc_int32 ccs_os_pipe_copy (ccs_pipe_t *out_pipe,
ccs_pipe_t in_pipe)
{