krb5 commit: Remove orphaned KfM code
Greg Hudson
ghudson at mit.edu
Tue Jul 30 16:14:35 EDT 2019
https://github.com/krb5/krb5/commit/db111e157c283e58bb29e87fe7257b77bce44920
commit db111e157c283e58bb29e87fe7257b77bce44920
Author: Michael Mattioli <mmattioli at users.noreply.github.com>
Date: Sun Jul 28 16:36:30 2019 -0400
Remove orphaned KfM code
Remove the Mac parts of the ccapi code, as ccapi is now only used in
the Windows build. Remove util/mac.
[ghudson at mit.edu: rewrote commit message]
src/ccapi/common/mac/cci_os_debugging.c | 35 -
src/ccapi/common/mac/cci_os_identifier.c | 78 --
src/ccapi/lib/mac/ccapi_os_ipc.c | 50 --
src/ccapi/lib/mac/ccapi_vector.c | 838 --------------------
src/ccapi/lib/mac/ccapi_vector.exports | 59 --
src/ccapi/lib/mac/ccapi_vector.h | 227 ------
src/ccapi/server/mac/CCacheServerInfo.plist | 38 -
src/ccapi/server/mac/ccs_os_notify.c | 79 --
src/ccapi/server/mac/ccs_os_pipe.c | 79 --
src/ccapi/server/mac/ccs_os_server.c | 97 ---
.../server/mac/edu.mit.Kerberos.CCacheServer.plist | 35 -
src/util/mac/k5_mig.defs | 54 --
src/util/mac/k5_mig_client.c | 529 ------------
src/util/mac/k5_mig_client.h | 37 -
src/util/mac/k5_mig_reply.defs | 58 --
src/util/mac/k5_mig_request.defs | 62 --
src/util/mac/k5_mig_server.c | 390 ---------
src/util/mac/k5_mig_server.h | 52 --
src/util/mac/k5_mig_types.h | 60 --
19 files changed, 0 insertions(+), 2857 deletions(-)
diff --git a/src/ccapi/common/mac/cci_os_debugging.c b/src/ccapi/common/mac/cci_os_debugging.c
deleted file mode 100644
index e528045..0000000
--- a/src/ccapi/common/mac/cci_os_debugging.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* ccapi/common/mac/cci_os_debugging.c */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-
-#include "cci_os_debugging.h"
-#include <Kerberos/KerberosDebug.h>
-
-/* ------------------------------------------------------------------------ */
-
-void cci_os_debug_vprintf (const char *in_format, va_list in_args)
-{
- dvprintf (in_format, in_args);
-}
diff --git a/src/ccapi/common/mac/cci_os_identifier.c b/src/ccapi/common/mac/cci_os_identifier.c
deleted file mode 100644
index be7b5bd..0000000
--- a/src/ccapi/common/mac/cci_os_identifier.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* ccapi/common/mac/cci_os_identifier.c */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#include "cci_common.h"
-#include "cci_os_identifier.h"
-
-#include <CoreFoundation/CoreFoundation.h>
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 cci_os_identifier_new_uuid (cci_uuid_string_t *out_uuid_string)
-{
- cc_int32 err = ccNoError;
- cci_uuid_string_t uuid_string = NULL;
- CFUUIDRef uuid = NULL;
- CFStringRef uuid_stringref = NULL;
- CFStringEncoding encoding = kCFStringEncodingUTF8;
- CFIndex length = 0;
-
- if (!out_uuid_string) { err = cci_check_error (ccErrBadParam); }
-
- if (!err) {
- uuid = CFUUIDCreate (kCFAllocatorDefault);
- if (!uuid) { err = cci_check_error (ccErrNoMem); }
- }
-
- if (!err) {
- uuid_stringref = CFUUIDCreateString (kCFAllocatorDefault, uuid);
- if (!uuid_stringref) { err = cci_check_error (ccErrNoMem); }
- }
-
- if (!err) {
- length = CFStringGetMaximumSizeForEncoding (CFStringGetLength (uuid_stringref),
- encoding) + 1;
-
- uuid_string = malloc (length);
- if (!uuid_string) { err = cci_check_error (ccErrNoMem); }
- }
-
- if (!err) {
- if (!CFStringGetCString (uuid_stringref, uuid_string, length, encoding)) {
- err = cci_check_error (ccErrNoMem);
- }
- }
-
- if (!err) {
- *out_uuid_string = uuid_string;
- uuid_string = NULL; /* take ownership */
- }
-
- if (uuid_string ) { free (uuid_string); }
- if (uuid_stringref) { CFRelease (uuid_stringref); }
- if (uuid ) { CFRelease (uuid); }
-
- return cci_check_error (err);
-}
diff --git a/src/ccapi/lib/mac/ccapi_os_ipc.c b/src/ccapi/lib/mac/ccapi_os_ipc.c
deleted file mode 100644
index d6b9a6c..0000000
--- a/src/ccapi/lib/mac/ccapi_os_ipc.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* ccapi/lib/mac/ccapi_os_ipc.c */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#include "ccapi_os_ipc.h"
-
-#include "k5_mig_client.h"
-
-#define cci_server_bundle_id "edu.mit.Kerberos.CCacheServer"
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 cci_os_ipc_thread_init (void)
-{
- /* k5_ipc_send_request handles all thread data for us */
- return 0;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 cci_os_ipc (cc_int32 in_launch_server,
- k5_ipc_stream in_request_stream,
- k5_ipc_stream *out_reply_stream)
-{
- return cci_check_error (k5_ipc_send_request (cci_server_bundle_id,
- in_launch_server,
- in_request_stream,
- out_reply_stream));
-}
diff --git a/src/ccapi/lib/mac/ccapi_vector.c b/src/ccapi/lib/mac/ccapi_vector.c
deleted file mode 100644
index 155599d..0000000
--- a/src/ccapi/lib/mac/ccapi_vector.c
+++ /dev/null
@@ -1,838 +0,0 @@
-/* ccapi/lib/mac/ccapi_vector.c */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#include "ccapi_vector.h"
-
-#include "ccapi_context.h"
-#include "ccapi_string.h"
-#include "ccapi_ccache.h"
-#include "ccapi_credentials.h"
-#include "ccapi_ccache_iterator.h"
-#include "ccapi_credentials_iterator.h"
-
-/* ------------------------------------------------------------------------ */
-
-static void cci_swap_string_functions (cc_string_t io_string)
-{
- cc_string_f temp = *(io_string->functions);
- *((cc_string_f *)io_string->functions) = *(io_string->vector_functions);
- *((cc_string_f *)io_string->vector_functions) = temp;
-}
-
-/* ------------------------------------------------------------------------ */
-
-static void cci_swap_context_functions (cc_context_t io_context)
-{
- cc_context_f temp = *(io_context->functions);
- *((cc_context_f *)io_context->functions) = *(io_context->vector_functions);
- *((cc_context_f *)io_context->vector_functions) = temp;
-}
-
-/* ------------------------------------------------------------------------ */
-
-static void cci_swap_ccache_functions (cc_ccache_t io_ccache)
-{
- cc_ccache_f temp = *(io_ccache->functions);
- *((cc_ccache_f *)io_ccache->functions) = *(io_ccache->vector_functions);
- *((cc_ccache_f *)io_ccache->vector_functions) = temp;
-}
-
-/* ------------------------------------------------------------------------ */
-
-static void cci_swap_credentials_functions (cc_credentials_t io_credentials)
-{
- cc_credentials_f temp = *(io_credentials->functions);
- *((cc_credentials_f *)io_credentials->functions) = *(io_credentials->otherFunctions);
- *((cc_credentials_f *)io_credentials->otherFunctions) = temp;
-}
-
-/* ------------------------------------------------------------------------ */
-
-static void cci_swap_ccache_iterator_functions (cc_ccache_iterator_t io_ccache_iterator)
-{
- cc_ccache_iterator_f temp = *(io_ccache_iterator->functions);
- *((cc_ccache_iterator_f *)io_ccache_iterator->functions) = *(io_ccache_iterator->vector_functions);
- *((cc_ccache_iterator_f *)io_ccache_iterator->vector_functions) = temp;
-}
-
-/* ------------------------------------------------------------------------ */
-
-static void cci_swap_credentials_iterator_functions (cc_credentials_iterator_t io_credentials_iterator)
-{
- cc_credentials_iterator_f temp = *(io_credentials_iterator->functions);
- *((cc_credentials_iterator_f *)io_credentials_iterator->functions) = *(io_credentials_iterator->vector_functions);
- *((cc_credentials_iterator_f *)io_credentials_iterator->vector_functions) = temp;
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_initialize_vector (cc_context_t *out_context,
- cc_int32 in_version,
- cc_int32 *out_supported_version,
- char const **out_vendor)
-{
- return cc_initialize (out_context, in_version, out_supported_version, out_vendor);
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_string_release_vector (cc_string_t in_string)
-{
- cci_swap_string_functions (in_string);
- return ccapi_string_release (in_string);
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_release_vector (cc_context_t io_context)
-{
- cci_swap_context_functions (io_context);
- return ccapi_context_release (io_context);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_get_change_time_vector (cc_context_t in_context,
- cc_time_t *out_change_time)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_get_change_time (in_context, out_change_time);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_get_default_ccache_name_vector (cc_context_t in_context,
- cc_string_t *out_name)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_get_default_ccache_name (in_context, out_name);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_open_ccache_vector (cc_context_t in_context,
- const char *in_name,
- cc_ccache_t *out_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_open_ccache (in_context, in_name, out_ccache);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_open_default_ccache_vector (cc_context_t in_context,
- cc_ccache_t *out_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_open_default_ccache (in_context, out_ccache);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_create_ccache_vector (cc_context_t in_context,
- const char *in_name,
- cc_uint32 in_cred_vers,
- const char *in_principal,
- cc_ccache_t *out_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_create_ccache (in_context, in_name, in_cred_vers, in_principal, out_ccache);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_create_default_ccache_vector (cc_context_t in_context,
- cc_uint32 in_cred_vers,
- const char *in_principal,
- cc_ccache_t *out_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_create_default_ccache (in_context, in_cred_vers, in_principal, out_ccache);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_create_new_ccache_vector (cc_context_t in_context,
- cc_uint32 in_cred_vers,
- const char *in_principal,
- cc_ccache_t *out_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_create_new_ccache (in_context, in_cred_vers, in_principal, out_ccache);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_new_ccache_iterator_vector (cc_context_t in_context,
- cc_ccache_iterator_t *out_iterator)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_new_ccache_iterator (in_context, out_iterator);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_lock_vector (cc_context_t in_context,
- cc_uint32 in_lock_type,
- cc_uint32 in_block)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_lock (in_context, in_lock_type, in_block);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_unlock_vector (cc_context_t in_context)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_unlock (in_context);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_context_compare_vector (cc_context_t in_context,
- cc_context_t in_compare_to_context,
- cc_uint32 *out_equal)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = ccapi_context_compare (in_context, in_compare_to_context, out_equal);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_release_vector (cc_ccache_t io_ccache)
-{
- cci_swap_ccache_functions (io_ccache);
- return ccapi_ccache_release (io_ccache);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_destroy_vector (cc_ccache_t io_ccache)
-{
- cci_swap_ccache_functions (io_ccache);
- return ccapi_ccache_destroy (io_ccache);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_set_default_vector (cc_ccache_t io_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (io_ccache);
- err = ccapi_ccache_set_default (io_ccache);
- cci_swap_ccache_functions (io_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_uint32 __cc_ccache_get_credentials_version_vector (cc_ccache_t in_ccache,
- cc_uint32 *out_credentials_version)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (in_ccache);
- err = ccapi_ccache_get_credentials_version (in_ccache, out_credentials_version);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_get_name_vector (cc_ccache_t in_ccache,
- cc_string_t *out_name)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (in_ccache);
- err = ccapi_ccache_get_name (in_ccache, out_name);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_get_principal_vector (cc_ccache_t in_ccache,
- cc_uint32 in_credentials_version,
- cc_string_t *out_principal)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (in_ccache);
- err = ccapi_ccache_get_principal (in_ccache, in_credentials_version, out_principal);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_set_principal_vector (cc_ccache_t io_ccache,
- cc_uint32 in_credentials_version,
- const char *in_principal)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (io_ccache);
- err = ccapi_ccache_set_principal (io_ccache, in_credentials_version, in_principal);
- cci_swap_ccache_functions (io_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_store_credentials_vector (cc_ccache_t io_ccache,
- const cc_credentials_union *in_credentials_union)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (io_ccache);
- err = ccapi_ccache_store_credentials (io_ccache, in_credentials_union);
- cci_swap_ccache_functions (io_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_remove_credentials_vector (cc_ccache_t io_ccache,
- cc_credentials_t in_credentials)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (io_ccache);
- cci_swap_credentials_functions (in_credentials);
- err = ccapi_ccache_remove_credentials (io_ccache, in_credentials);
- cci_swap_ccache_functions (io_ccache);
- cci_swap_credentials_functions (in_credentials);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_new_credentials_iterator_vector (cc_ccache_t in_ccache,
- cc_credentials_iterator_t *out_credentials_iterator)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (in_ccache);
- err = ccapi_ccache_new_credentials_iterator (in_ccache, out_credentials_iterator);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_move_vector (cc_ccache_t io_source_ccache,
- cc_ccache_t io_destination_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (io_source_ccache);
- cci_swap_ccache_functions (io_destination_ccache);
- err = ccapi_ccache_move (io_source_ccache, io_destination_ccache);
- cci_swap_ccache_functions (io_source_ccache);
- cci_swap_ccache_functions (io_destination_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_lock_vector (cc_ccache_t io_ccache,
- cc_uint32 in_lock_type,
- cc_uint32 in_block)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (io_ccache);
- err = ccapi_ccache_lock (io_ccache, in_lock_type, in_block);
- cci_swap_ccache_functions (io_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_unlock_vector (cc_ccache_t io_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (io_ccache);
- err = ccapi_ccache_unlock (io_ccache);
- cci_swap_ccache_functions (io_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_get_last_default_time_vector (cc_ccache_t in_ccache,
- cc_time_t *out_last_default_time)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (in_ccache);
- err = ccapi_ccache_get_last_default_time (in_ccache, out_last_default_time);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_get_change_time_vector (cc_ccache_t in_ccache,
- cc_time_t *out_change_time)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (in_ccache);
- err = ccapi_ccache_get_change_time (in_ccache, out_change_time);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_compare_vector (cc_ccache_t in_ccache,
- cc_ccache_t in_compare_to_ccache,
- cc_uint32 *out_equal)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_functions (in_ccache);
- cci_swap_ccache_functions (in_compare_to_ccache);
- err = ccapi_ccache_compare (in_ccache, in_compare_to_ccache, out_equal);
- cci_swap_ccache_functions (in_ccache);
- cci_swap_ccache_functions (in_compare_to_ccache);
- return err;
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_credentials_release_vector (cc_credentials_t io_credentials)
-{
- cci_swap_credentials_functions (io_credentials);
- return ccapi_credentials_release (io_credentials);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_credentials_compare_vector (cc_credentials_t in_credentials,
- cc_credentials_t in_compare_to_credentials,
- cc_uint32 *out_equal)
-{
- cc_int32 err = ccNoError;
- cci_swap_credentials_functions (in_credentials);
- cci_swap_credentials_functions (in_compare_to_credentials);
- err = ccapi_credentials_compare (in_credentials, in_compare_to_credentials, out_equal);
- cci_swap_credentials_functions (in_credentials);
- cci_swap_credentials_functions (in_compare_to_credentials);
- return err;
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_iterator_release_vector (cc_ccache_iterator_t io_ccache_iterator)
-{
- cci_swap_ccache_iterator_functions (io_ccache_iterator);
- return ccapi_ccache_iterator_release (io_ccache_iterator);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_ccache_iterator_next_vector (cc_ccache_iterator_t in_ccache_iterator,
- cc_ccache_t *out_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_ccache_iterator_functions (in_ccache_iterator);
- err = ccapi_ccache_iterator_next (in_ccache_iterator, out_ccache);
- cci_swap_ccache_iterator_functions (in_ccache_iterator);
- return err;
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_credentials_iterator_release_vector (cc_credentials_iterator_t io_credentials_iterator)
-{
- cci_swap_credentials_iterator_functions (io_credentials_iterator);
- return ccapi_credentials_iterator_release (io_credentials_iterator);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_credentials_iterator_next_vector (cc_credentials_iterator_t in_credentials_iterator,
- cc_credentials_t *out_credentials)
-{
- cc_int32 err = ccNoError;
- cci_swap_credentials_iterator_functions (in_credentials_iterator);
- err = ccapi_credentials_iterator_next (in_credentials_iterator, out_credentials);
- cci_swap_credentials_iterator_functions (in_credentials_iterator);
- return err;
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_shutdown_vector (apiCB **io_context)
-{
- cci_swap_context_functions (*io_context);
- return cc_shutdown (io_context);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_get_NC_info_vector (apiCB *in_context,
- infoNC ***out_info)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = cc_get_NC_info (in_context, out_info);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_get_change_time_vector (apiCB *in_context,
- cc_time_t *out_change_time)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = cc_get_change_time (in_context, out_change_time);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_open_vector (apiCB *in_context,
- const char *in_name,
- cc_int32 in_version,
- cc_uint32 in_flags,
- ccache_p **out_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = cc_open (in_context, in_name, in_version, in_flags, out_ccache);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_create_vector (apiCB *in_context,
- const char *in_name,
- const char *in_principal,
- cc_int32 in_version,
- cc_uint32 in_flags,
- ccache_p **out_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = cc_create (in_context, in_name, in_principal, in_version, in_flags, out_ccache);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_close_vector (apiCB *in_context,
- ccache_p **io_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (*io_ccache);
- err = cc_close (in_context, io_ccache);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_destroy_vector (apiCB *in_context,
- ccache_p **io_ccache)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (*io_ccache);
- err = cc_destroy (in_context, io_ccache);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_seq_fetch_NCs_begin_vector (apiCB *in_context,
- ccache_cit **out_iterator)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = cc_seq_fetch_NCs_begin (in_context, out_iterator);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_seq_fetch_NCs_next_vector (apiCB *in_context,
- ccache_p **out_ccache,
- ccache_cit *in_iterator)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_iterator_functions ((ccache_cit_ccache *)in_iterator);
- err = cc_seq_fetch_NCs_next (in_context, out_ccache, in_iterator);
- cci_swap_context_functions (in_context);
- cci_swap_ccache_iterator_functions ((ccache_cit_ccache *)in_iterator);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_seq_fetch_NCs_end_vector (apiCB *in_context,
- ccache_cit **io_iterator)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_iterator_functions ((ccache_cit_ccache *) *io_iterator);
- err = cc_seq_fetch_NCs_end (in_context, io_iterator);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_get_name_vector (apiCB *in_context,
- ccache_p *in_ccache,
- char **out_name)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (in_ccache);
- err = cc_get_name (in_context, in_ccache, out_name);
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_get_cred_version_vector (apiCB *in_context,
- ccache_p *in_ccache,
- cc_int32 *out_version)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (in_ccache);
- err = cc_get_cred_version (in_context, in_ccache, out_version);
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_set_principal_vector (apiCB *in_context,
- ccache_p *io_ccache,
- cc_int32 in_version,
- char *in_principal)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (io_ccache);
- err = cc_set_principal (in_context, io_ccache, in_version, in_principal);
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (io_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_get_principal_vector (apiCB *in_context,
- ccache_p *in_ccache,
- char **out_principal)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (in_ccache);
- err = cc_get_principal (in_context, in_ccache, out_principal);
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_store_vector (apiCB *in_context,
- ccache_p *io_ccache,
- cred_union in_credentials)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (io_ccache);
- err = cc_store (in_context, io_ccache, in_credentials);
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (io_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_remove_cred_vector (apiCB *in_context,
- ccache_p *in_ccache,
- cred_union in_credentials)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (in_ccache);
- err = cc_remove_cred (in_context, in_ccache, in_credentials);
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions (in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_seq_fetch_creds_begin_vector (apiCB *in_context,
- const ccache_p *in_ccache,
- ccache_cit **out_iterator)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions ((ccache_p *)in_ccache);
- err = cc_seq_fetch_creds_begin (in_context, in_ccache, out_iterator);
- cci_swap_context_functions (in_context);
- cci_swap_ccache_functions ((ccache_p *)in_ccache);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_seq_fetch_creds_next_vector (apiCB *in_context,
- cred_union **out_creds,
- ccache_cit *in_iterator)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_credentials_iterator_functions ((ccache_cit_creds *)in_iterator);
- err = cc_seq_fetch_creds_next (in_context, out_creds, in_iterator);
- cci_swap_context_functions (in_context);
- cci_swap_credentials_iterator_functions ((ccache_cit_creds *)in_iterator);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_seq_fetch_creds_end_vector (apiCB *in_context,
- ccache_cit **io_iterator)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- cci_swap_credentials_iterator_functions ((ccache_cit_creds *) *io_iterator);
- err = cc_seq_fetch_creds_end (in_context, io_iterator);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_free_principal_vector (apiCB *in_context,
- char **io_principal)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = cc_free_principal (in_context, io_principal);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_free_name_vector (apiCB *in_context,
- char **io_name)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = cc_free_name (in_context, io_name);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_free_creds_vector (apiCB *in_context,
- cred_union **io_credentials)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = cc_free_creds (in_context, io_credentials);
- cci_swap_context_functions (in_context);
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 __cc_free_NC_info_vector (apiCB *in_context,
- infoNC ***io_info)
-{
- cc_int32 err = ccNoError;
- cci_swap_context_functions (in_context);
- err = cc_free_NC_info (in_context, io_info);
- cci_swap_context_functions (in_context);
- return err;
-}
diff --git a/src/ccapi/lib/mac/ccapi_vector.exports b/src/ccapi/lib/mac/ccapi_vector.exports
deleted file mode 100644
index 0f02e41..0000000
--- a/src/ccapi/lib/mac/ccapi_vector.exports
+++ /dev/null
@@ -1,59 +0,0 @@
-__cc_context_release_vector
-__cc_context_get_change_time_vector
-__cc_context_get_default_ccache_name_vector
-__cc_context_open_ccache_vector
-__cc_context_open_default_ccache_vector
-__cc_context_create_ccache_vector
-__cc_context_create_default_ccache_vector
-__cc_context_create_new_ccache_vector
-__cc_context_new_ccache_iterator_vector
-__cc_context_lock_vector
-__cc_context_unlock_vector
-__cc_context_compare_vector
-__cc_ccache_release_vector
-__cc_ccache_destroy_vector
-__cc_ccache_set_default_vector
-__cc_ccache_get_credentials_version_vector
-__cc_ccache_get_name_vector
-__cc_ccache_get_principal_vector
-__cc_ccache_set_principal_vector
-__cc_ccache_store_credentials_vector
-__cc_ccache_remove_credentials_vector
-__cc_ccache_new_credentials_iterator_vector
-__cc_ccache_move_vector
-__cc_ccache_lock_vector
-__cc_ccache_unlock_vector
-__cc_ccache_get_last_default_time_vector
-__cc_ccache_get_change_time_vector
-__cc_ccache_compare_vector
-__cc_string_release_vector
-__cc_credentials_release_vector
-__cc_credentials_compare_vector
-__cc_ccache_iterator_release_vector
-__cc_ccache_iterator_next_vector
-__cc_credentials_iterator_release_vector
-__cc_credentials_iterator_next_vector
-__cc_initialize_vector
-__cc_shutdown_vector
-__cc_get_NC_info_vector
-__cc_get_change_time_vector
-__cc_open_vector
-__cc_create_vector
-__cc_close_vector
-__cc_destroy_vector
-__cc_seq_fetch_NCs_begin_vector
-__cc_seq_fetch_NCs_next_vector
-__cc_seq_fetch_NCs_end_vector
-__cc_get_name_vector
-__cc_get_cred_version_vector
-__cc_set_principal_vector
-__cc_get_principal_vector
-__cc_store_vector
-__cc_remove_cred_vector
-__cc_seq_fetch_creds_begin_vector
-__cc_seq_fetch_creds_next_vector
-__cc_seq_fetch_creds_end_vector
-__cc_free_principal_vector
-__cc_free_name_vector
-__cc_free_creds_vector
-__cc_free_NC_info_vector
diff --git a/src/ccapi/lib/mac/ccapi_vector.h b/src/ccapi/lib/mac/ccapi_vector.h
deleted file mode 100644
index 803257c..0000000
--- a/src/ccapi/lib/mac/ccapi_vector.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/* ccapi/lib/mac/ccapi_vector.h */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#include <CredentialsCache2.h>
-
-
-cc_int32 __cc_initialize_vector (cc_context_t *out_context,
- cc_int32 in_version,
- cc_int32 *out_supported_version,
- char const **out_vendor);
-
-cc_int32 __cc_string_release_vector (cc_string_t in_string);
-
-cc_int32 __cc_context_release_vector (cc_context_t io_context);
-
-cc_int32 __cc_context_get_change_time_vector (cc_context_t in_context,
- cc_time_t *out_change_time);
-
-cc_int32 __cc_context_get_default_ccache_name_vector (cc_context_t in_context,
- cc_string_t *out_name);
-
-cc_int32 __cc_context_open_ccache_vector (cc_context_t in_context,
- const char *in_name,
- cc_ccache_t *out_ccache);
-
-cc_int32 __cc_context_open_default_ccache_vector (cc_context_t in_context,
- cc_ccache_t *out_ccache);
-
-cc_int32 __cc_context_create_ccache_vector (cc_context_t in_context,
- const char *in_name,
- cc_uint32 in_cred_vers,
- const char *in_principal,
- cc_ccache_t *out_ccache);
-
-cc_int32 __cc_context_create_default_ccache_vector (cc_context_t in_context,
- cc_uint32 in_cred_vers,
- const char *in_principal,
- cc_ccache_t *out_ccache);
-
-cc_int32 __cc_context_create_new_ccache_vector (cc_context_t in_context,
- cc_uint32 in_cred_vers,
- const char *in_principal,
- cc_ccache_t *out_ccache);
-
-cc_int32 __cc_context_new_ccache_iterator_vector (cc_context_t in_context,
- cc_ccache_iterator_t *out_iterator);
-
-cc_int32 __cc_context_lock_vector (cc_context_t in_context,
- cc_uint32 in_lock_type,
- cc_uint32 in_block);
-
-cc_int32 __cc_context_unlock_vector (cc_context_t in_context);
-
-cc_int32 __cc_context_compare_vector (cc_context_t in_context,
- cc_context_t in_compare_to_context,
- cc_uint32 *out_equal);
-
-cc_int32 __cc_ccache_release_vector (cc_ccache_t io_ccache);
-
-cc_int32 __cc_ccache_destroy_vector (cc_ccache_t io_ccache);
-
-cc_int32 __cc_ccache_set_default_vector (cc_ccache_t io_ccache);
-
-cc_uint32 __cc_ccache_get_credentials_version_vector (cc_ccache_t in_ccache,
- cc_uint32 *out_credentials_version);
-
-cc_int32 __cc_ccache_get_name_vector (cc_ccache_t in_ccache,
- cc_string_t *out_name);
-
-cc_int32 __cc_ccache_get_principal_vector (cc_ccache_t in_ccache,
- cc_uint32 in_credentials_version,
- cc_string_t *out_principal);
-
-cc_int32 __cc_ccache_set_principal_vector (cc_ccache_t io_ccache,
- cc_uint32 in_credentials_version,
- const char *in_principal);
-
-cc_int32 __cc_ccache_store_credentials_vector (cc_ccache_t io_ccache,
- const cc_credentials_union *in_credentials_union);
-
-cc_int32 __cc_ccache_remove_credentials_vector (cc_ccache_t io_ccache,
- cc_credentials_t in_credentials);
-
-cc_int32 __cc_ccache_new_credentials_iterator_vector (cc_ccache_t in_ccache,
- cc_credentials_iterator_t *out_credentials_iterator);
-
-cc_int32 __cc_ccache_move_vector (cc_ccache_t io_source_ccache,
- cc_ccache_t io_destination_ccache);
-
-cc_int32 __cc_ccache_lock_vector (cc_ccache_t io_ccache,
- cc_uint32 in_lock_type,
- cc_uint32 in_block);
-
-cc_int32 __cc_ccache_unlock_vector (cc_ccache_t io_ccache);
-
-cc_int32 __cc_ccache_get_last_default_time_vector (cc_ccache_t in_ccache,
- cc_time_t *out_last_default_time);
-
-cc_int32 __cc_ccache_get_change_time_vector (cc_ccache_t in_ccache,
- cc_time_t *out_change_time);
-
-cc_int32 __cc_ccache_compare_vector (cc_ccache_t in_ccache,
- cc_ccache_t in_compare_to_ccache,
- cc_uint32 *out_equal);
-
-cc_int32 __cc_credentials_release_vector (cc_credentials_t io_credentials);
-
-cc_int32 __cc_credentials_compare_vector (cc_credentials_t in_credentials,
- cc_credentials_t in_compare_to_credentials,
- cc_uint32 *out_equal);
-
-cc_int32 __cc_ccache_iterator_release_vector (cc_ccache_iterator_t io_ccache_iterator);
-
-cc_int32 __cc_ccache_iterator_next_vector (cc_ccache_iterator_t in_ccache_iterator,
- cc_ccache_t *out_ccache);
-
-cc_int32 __cc_credentials_iterator_release_vector (cc_credentials_iterator_t io_credentials_iterator);
-
-cc_int32 __cc_credentials_iterator_next_vector (cc_credentials_iterator_t in_credentials_iterator,
- cc_credentials_t *out_credentials);
-
-cc_int32 __cc_shutdown_vector (apiCB **io_context);
-
-cc_int32 __cc_get_NC_info_vector (apiCB *in_context,
- infoNC ***out_info);
-
-cc_int32 __cc_get_change_time_vector (apiCB *in_context,
- cc_time_t *out_change_time);
-
-cc_int32 __cc_open_vector (apiCB *in_context,
- const char *in_name,
- cc_int32 in_version,
- cc_uint32 in_flags,
- ccache_p **out_ccache);
-
-cc_int32 __cc_create_vector (apiCB *in_context,
- const char *in_name,
- const char *in_principal,
- cc_int32 in_version,
- cc_uint32 in_flags,
- ccache_p **out_ccache);
-
-cc_int32 __cc_close_vector (apiCB *in_context,
- ccache_p **io_ccache);
-
-cc_int32 __cc_destroy_vector (apiCB *in_context,
- ccache_p **io_ccache);
-
-cc_int32 __cc_seq_fetch_NCs_begin_vector (apiCB *in_context,
- ccache_cit **out_iterator);
-
-cc_int32 __cc_seq_fetch_NCs_next_vector (apiCB *in_context,
- ccache_p **out_ccache,
- ccache_cit *in_iterator);
-
-cc_int32 __cc_seq_fetch_NCs_end_vector (apiCB *in_context,
- ccache_cit **io_iterator);
-
-cc_int32 __cc_get_name_vector (apiCB *in_context,
- ccache_p *in_ccache,
- char **out_name);
-
-cc_int32 __cc_get_cred_version_vector (apiCB *in_context,
- ccache_p *in_ccache,
- cc_int32 *out_version);
-
-cc_int32 __cc_set_principal_vector (apiCB *in_context,
- ccache_p *io_ccache,
- cc_int32 in_version,
- char *in_principal);
-
-cc_int32 __cc_get_principal_vector (apiCB *in_context,
- ccache_p *in_ccache,
- char **out_principal);
-
-cc_int32 __cc_store_vector (apiCB *in_context,
- ccache_p *io_ccache,
- cred_union in_credentials);
-
-cc_int32 __cc_remove_cred_vector (apiCB *in_context,
- ccache_p *in_ccache,
- cred_union in_credentials);
-
-cc_int32 __cc_seq_fetch_creds_begin_vector (apiCB *in_context,
- const ccache_p *in_ccache,
- ccache_cit **out_iterator);
-
-cc_int32 __cc_seq_fetch_creds_next_vector (apiCB *in_context,
- cred_union **out_creds,
- ccache_cit *in_iterator);
-
-cc_int32 __cc_seq_fetch_creds_end_vector (apiCB *in_context,
- ccache_cit **io_iterator);
-
-cc_int32 __cc_free_principal_vector (apiCB *in_context,
- char **io_principal);
-
-cc_int32 __cc_free_name_vector (apiCB *in_context,
- char **io_name);
-
-cc_int32 __cc_free_creds_vector (apiCB *in_context,
- cred_union **io_credentials);
-
-cc_int32 __cc_free_NC_info_vector (apiCB *in_context,
- infoNC ***io_info);
diff --git a/src/ccapi/server/mac/CCacheServerInfo.plist b/src/ccapi/server/mac/CCacheServerInfo.plist
deleted file mode 100644
index f5397f8..0000000
--- a/src/ccapi/server/mac/CCacheServerInfo.plist
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>CCacheServer</string>
- <key>CFBundleGetInfoString</key>
- <string>4.1</string>
- <key>CFBundleIconFile</key>
- <string></string>
- <key>CFBundleIdentifier</key>
- <string>edu.mit.Kerberos.CCacheServer</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>Kerberos Credentials Cache Server</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleSignature</key>
- <string>CCSa</string>
- <key>CFBundleVersion</key>
- <string>0.0.1d1</string>
- <key>CFBundleShortVersionString</key>
- <string>5.5</string>
- <key>CFBundleGetInfoString</key>
- <string>5.5 Copyright MIT</string>
- <key>KfMDisplayVersion</key>
- <string>5.5 Copyright MIT</string>
- <key>KfMDisplayCopyright</key>
- <string>Copyright MIT</string>
- <key>NSHumanReadableCopyright</key>
- <string>5.5 Copyright MIT</string>
- <key>LSBackgroundOnly</key>
- <string>1</string>
-</dict>
-</plist>
diff --git a/src/ccapi/server/mac/ccs_os_notify.c b/src/ccapi/server/mac/ccs_os_notify.c
deleted file mode 100644
index e758deb..0000000
--- a/src/ccapi/server/mac/ccs_os_notify.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ccapi/server/mac/ccs_os_notify.c */
-/*
- * Copyright 2006-2008 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#include "ccs_common.h"
-#include "ccs_os_notify.h"
-#include <CoreFoundation/CoreFoundation.h>
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 ccs_os_notify_cache_collection_changed (ccs_cache_collection_t io_cache_collection)
-{
- cc_int32 err = ccNoError;
-
- if (!io_cache_collection) { err = cci_check_error (ccErrBadParam); }
-
- if (!err) {
- CFNotificationCenterRef center = CFNotificationCenterGetDistributedCenter ();
-
- if (center) {
- CFNotificationCenterPostNotification (center,
- kCCAPICacheCollectionChangedNotification,
- NULL, NULL, TRUE);
- }
- }
-
-
-
- return cci_check_error (err);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 ccs_os_notify_ccache_changed (ccs_cache_collection_t io_cache_collection,
- const char *in_ccache_name)
-{
- cc_int32 err = ccNoError;
-
- if (!io_cache_collection) { err = cci_check_error (ccErrBadParam); }
- if (!in_ccache_name ) { err = cci_check_error (ccErrBadParam); }
-
- if (!err) {
- CFNotificationCenterRef center = CFNotificationCenterGetDistributedCenter ();
- CFStringRef name = CFStringCreateWithCString (kCFAllocatorDefault,
- in_ccache_name,
- kCFStringEncodingUTF8);
-
- if (center && name) {
- CFNotificationCenterPostNotification (center,
- kCCAPICCacheChangedNotification,
- name, NULL, TRUE);
- }
-
- if (name) { CFRelease (name); }
- }
-
- return cci_check_error (err);
-}
diff --git a/src/ccapi/server/mac/ccs_os_pipe.c b/src/ccapi/server/mac/ccs_os_pipe.c
deleted file mode 100644
index 5d9fff2..0000000
--- a/src/ccapi/server/mac/ccs_os_pipe.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ccapi/server/mac/ccs_os_pipe.c */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#include "ccs_common.h"
-#include "ccs_os_pipe.h"
-#include <mach/port.h>
-
-/* On macOS ccs_pipe_t is a mach_port_t */
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 ccs_os_pipe_valid (ccs_pipe_t in_pipe)
-{
- return MACH_PORT_VALID (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)
-{
- cc_int32 err = 0;
-
- *out_pipe = in_pipe;
-
- return cci_check_error (err);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 ccs_os_pipe_release (ccs_pipe_t io_pipe)
-{
- cc_int32 err = 0;
-
- /* Nothing to do here on macOS */
-
- return cci_check_error (err);
-}
diff --git a/src/ccapi/server/mac/ccs_os_server.c b/src/ccapi/server/mac/ccs_os_server.c
deleted file mode 100644
index b16f5e0..0000000
--- a/src/ccapi/server/mac/ccs_os_server.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* ccapi/server/mac/ccs_os_server.c */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#include "ccs_common.h"
-
-#include <syslog.h>
-#include "k5_mig_server.h"
-#include "ccs_os_server.h"
-
-/* ------------------------------------------------------------------------ */
-
-int32_t k5_ipc_server_add_client (mach_port_t in_client_port)
-{
- return cci_check_error (ccs_server_add_client (in_client_port));
-}
-
-/* ------------------------------------------------------------------------ */
-
-int32_t k5_ipc_server_remove_client (mach_port_t in_client_port)
-{
- return cci_check_error (ccs_server_remove_client (in_client_port));
-}
-
-
-/* ------------------------------------------------------------------------ */
-
-kern_return_t k5_ipc_server_handle_request (mach_port_t in_connection_port,
- mach_port_t in_reply_port,
- k5_ipc_stream in_request_stream)
-{
- return cci_check_error (ccs_server_handle_request (in_connection_port,
- in_reply_port,
- in_request_stream));
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 ccs_os_server_initialize (int argc, const char *argv[])
-{
- cc_int32 err = 0;
-
- openlog (argv[0], LOG_CONS | LOG_PID, LOG_AUTH);
- syslog (LOG_INFO, "Starting up.");
-
- return cci_check_error (err);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 ccs_os_server_cleanup (int argc, const char *argv[])
-{
- cc_int32 err = 0;
-
- syslog (LOG_NOTICE, "Exiting.");
-
- return cci_check_error (err);
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 ccs_os_server_listen_loop (int argc, const char *argv[])
-{
- return cci_check_error (k5_ipc_server_listen_loop ());
-}
-
-/* ------------------------------------------------------------------------ */
-
-cc_int32 ccs_os_server_send_reply (ccs_pipe_t in_reply_pipe,
- k5_ipc_stream in_reply_stream)
-{
- return cci_check_error (k5_ipc_server_send_reply (in_reply_pipe,
- in_reply_stream));
-}
diff --git a/src/ccapi/server/mac/edu.mit.Kerberos.CCacheServer.plist b/src/ccapi/server/mac/edu.mit.Kerberos.CCacheServer.plist
deleted file mode 100644
index c002431..0000000
--- a/src/ccapi/server/mac/edu.mit.Kerberos.CCacheServer.plist
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>Label</key>
- <string>edu.mit.Kerberos.CCacheServer</string>
- <key>LimitLoadToSessionType</key>
- <string>Background</string>
- <key>Program</key>
- <string>/System/Library/CoreServices/CCacheServer.app/Contents/MacOS/CCacheServer</string>
- <key>MachServices</key>
- <dict>
- <key>edu.mit.Kerberos.CCacheServer.ipcLookup</key>
- <dict>
- <key>HideUntilCheckIn</key>
- <true/>
- <key>ResetAtClose</key>
- <true/>
- </dict>
- <key>edu.mit.Kerberos.CCacheServer.ipcService</key>
- <true/>
- </dict>
- <key>EnableTransactions</key>
- <true/>
- <key>OnDemand</key>
- <true/>
- <key>ThrottleInterval</key>
- <integer>0</integer>
- <key>EnvironmentVariables</key>
- <dict>
- <key>CFFIXED_USER_HOME</key>
- <string>/var/empty</string>
- </dict>
-</dict>
-</plist>
diff --git a/src/util/mac/k5_mig.defs b/src/util/mac/k5_mig.defs
deleted file mode 100644
index 6349eb8..0000000
--- a/src/util/mac/k5_mig.defs
+++ /dev/null
@@ -1,54 +0,0 @@
-/* $Copyright:
- *
- * Copyright 2004-2006 by the Massachusetts Institute of Technology.
- *
- * All rights reserved.
- *
- * Export of this software from the United States of America may require a
- * specific license from the United States Government. It is the
- * responsibility of any person or organization contemplating export to
- * obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute
- * this software and its documentation for any purpose and without fee is
- * hereby granted, provided that the above copyright notice appear in all
- * copies and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of M.I.T. not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Furthermore if you
- * modify this software you must label your software as modified software
- * and not distribute it in such a fashion that it might be confused with
- * the original MIT software. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Individual source code files are copyright MIT, Cygnus Support,
- * OpenVision, Oracle, Sun Soft, FundsXpress, and others.
- *
- * Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira,
- * and Zephyr are trademarks of the Massachusetts Institute of Technology
- * (MIT). No commercial use of these trademarks may be made without prior
- * written permission of MIT.
- *
- * "Commercial use" means use of a name in a product or other for-profit
- * manner. It does NOT prevent a commercial firm from referring to the MIT
- * trademarks in order to convey information (although in doing so,
- * recognition of their trademark status should be given).
- * $
- */
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-import "k5_mig_types.h";
-
-/* Note the 1024 must be the same as K5_IPC_MAX_MSG_SIZE */
-type k5_ipc_inl_request_t = array [ * : 1024 ] of char;
-type k5_ipc_ool_request_t = array [] of char;
-
-type k5_ipc_inl_reply_t = array [ * : 1024 ] of char;
-type k5_ipc_ool_reply_t = array [] of char;
diff --git a/src/util/mac/k5_mig_client.c b/src/util/mac/k5_mig_client.c
deleted file mode 100644
index da62153..0000000
--- a/src/util/mac/k5_mig_client.c
+++ /dev/null
@@ -1,529 +0,0 @@
-/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
-/* util/mac/k5_mig_client.c */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#ifndef LEAN_CLIENT
-
-#include "k5_mig_client.h"
-#include "k5_mig_request.h"
-#include "k5_mig_replyServer.h"
-#include "k5-thread.h"
-
-#include <mach/mach.h>
-#include <servers/bootstrap.h>
-
-
-
-/* Number of services available. Update if modifying the lists below */
-#define KIPC_SERVICE_COUNT 2
-
-/* ------------------------------------------------------------------------ */
-
-/* This struct exists to store the global service port shared between all
- * threads. Note that there is one of these ports per server, whereas
- * there is one connection port per thread. Thus this is global and mutexed,
- * whereas the connection ports below are in TLS */
-
-typedef struct k5_ipc_service_port {
- const char *service_id;
- mach_port_t service_port;
-} k5_ipc_service_port;
-
-/* global service ports and mutex to protect it */
-static k5_mutex_t g_service_ports_mutex = K5_MUTEX_PARTIAL_INITIALIZER;
-static k5_ipc_service_port g_service_ports[KIPC_SERVICE_COUNT] = {
- { "edu.mit.Kerberos.CCacheServer", MACH_PORT_NULL },
- { "edu.mit.Kerberos.KerberosAgent", MACH_PORT_NULL } };
-
-/* ------------------------------------------------------------------------ */
-
-/* This struct exists to hold the per-thread connection port used for ipc
- * messages to the server. Each thread is issued a separate connection
- * port so that the server can distinguish between threads in the same
- * application. */
-
-typedef struct k5_ipc_connection {
- const char *service_id;
- mach_port_t port;
-} *k5_ipc_connection;
-
-typedef struct k5_ipc_connection_info {
- struct k5_ipc_connection connections[KIPC_SERVICE_COUNT];
- boolean_t server_died;
- k5_ipc_stream reply_stream;
-} *k5_ipc_connection_info;
-
-/* initializer for k5_ipc_request_port to fill in server names in TLS */
-static const char *k5_ipc_known_services[KIPC_SERVICE_COUNT] = {
- "edu.mit.Kerberos.CCacheServer",
- "edu.mit.Kerberos.KerberosAgent" };
-
-/* ------------------------------------------------------------------------ */
-
-static void k5_ipc_client_cinfo_free (void *io_cinfo)
-{
- if (io_cinfo) {
- k5_ipc_connection_info cinfo = io_cinfo;
- int i;
-
- for (i = 0; i < KIPC_SERVICE_COUNT; i++) {
- if (MACH_PORT_VALID (cinfo->connections[i].port)) {
- mach_port_mod_refs (mach_task_self(),
- cinfo->connections[i].port,
- MACH_PORT_RIGHT_SEND, -1 );
- cinfo->connections[i].port = MACH_PORT_NULL;
- }
- }
- /* reply_stream will always be freed by k5_ipc_send_request() */
- free (cinfo);
- }
-}
-
-/* ------------------------------------------------------------------------ */
-
-static int k5_ipc_client_cinfo_allocate (k5_ipc_connection_info *out_cinfo)
-{
- int err = 0;
- k5_ipc_connection_info cinfo = NULL;
-
- cinfo = malloc (sizeof (*cinfo));
- if (!cinfo) { err = ENOMEM; }
-
- if (!err) {
- int i;
-
- cinfo->server_died = 0;
- cinfo->reply_stream = NULL;
-
- for (i = 0; i < KIPC_SERVICE_COUNT; i++) {
- cinfo->connections[i].service_id = k5_ipc_known_services[i];
- cinfo->connections[i].port = MACH_PORT_NULL;
- }
- }
-
- if (!err) {
- *out_cinfo = cinfo;
- cinfo = NULL;
- }
-
- k5_ipc_client_cinfo_free (cinfo);
-
- return err;
-}
-
-
-#pragma mark -
-
-MAKE_INIT_FUNCTION(k5_cli_ipc_thread_init);
-MAKE_FINI_FUNCTION(k5_cli_ipc_thread_fini);
-
-/* ------------------------------------------------------------------------ */
-
-static int k5_cli_ipc_thread_init (void)
-{
- int err = 0;
-
- err = k5_key_register (K5_KEY_IPC_CONNECTION_INFO,
- k5_ipc_client_cinfo_free);
-
- if (!err) {
- err = k5_mutex_finish_init (&g_service_ports_mutex);
- }
-
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-static void k5_cli_ipc_thread_fini (void)
-{
- int err = 0;
-
- err = k5_mutex_lock (&g_service_ports_mutex);
-
- if (!err) {
- int i;
-
- for (i = 0; i < KIPC_SERVICE_COUNT; i++) {
- if (MACH_PORT_VALID (g_service_ports[i].service_port)) {
- mach_port_destroy (mach_task_self (),
- g_service_ports[i].service_port);
- g_service_ports[i].service_port = MACH_PORT_NULL;
- }
- }
- k5_mutex_unlock (&g_service_ports_mutex);
- }
-
- k5_key_delete (K5_KEY_IPC_CONNECTION_INFO);
- k5_mutex_destroy (&g_service_ports_mutex);
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-static kern_return_t k5_ipc_client_lookup_server (const char *in_service_id,
- boolean_t in_launch_if_necessary,
- boolean_t in_use_cached_port,
- mach_port_t *out_service_port)
-{
- kern_return_t err = 0;
- kern_return_t lock_err = 0;
- mach_port_t k5_service_port = MACH_PORT_NULL;
- boolean_t found_entry = 0;
- int i;
-
- if (!in_service_id ) { err = EINVAL; }
- if (!out_service_port) { err = EINVAL; }
-
- if (!err) {
- lock_err = k5_mutex_lock (&g_service_ports_mutex);
- if (lock_err) { err = lock_err; }
- }
-
- for (i = 0; !err && i < KIPC_SERVICE_COUNT; i++) {
- if (!strcmp (in_service_id, g_service_ports[i].service_id)) {
- found_entry = 1;
- if (in_use_cached_port) {
- k5_service_port = g_service_ports[i].service_port;
- }
- break;
- }
- }
-
- if (!err && (!MACH_PORT_VALID (k5_service_port) || !in_use_cached_port)) {
- mach_port_t boot_port = MACH_PORT_NULL;
- char *service = NULL;
-
- /* Get our bootstrap port */
- err = task_get_bootstrap_port (mach_task_self (), &boot_port);
-
- if (!err && !in_launch_if_necessary) {
- char *lookup = NULL;
- mach_port_t lookup_port = MACH_PORT_NULL;
-
- int w = asprintf (&lookup, "%s%s",
- in_service_id, K5_MIG_LOOKUP_SUFFIX);
- if (w < 0) { err = ENOMEM; }
-
- if (!err) {
- /* Use the lookup name because the service name will return
- * a valid port even if the server isn't running */
- err = bootstrap_look_up (boot_port, lookup, &lookup_port);
- }
-
- free (lookup);
- if (MACH_PORT_VALID (lookup_port)) {
- mach_port_deallocate (mach_task_self (), lookup_port);
- }
- }
-
- if (!err) {
- int w = asprintf (&service, "%s%s",
- in_service_id, K5_MIG_SERVICE_SUFFIX);
- if (w < 0) { err = ENOMEM; }
- }
-
- if (!err) {
- err = bootstrap_look_up (boot_port, service, &k5_service_port);
-
- if (!err && found_entry) {
- /* Free old port if it is valid */
- if (!err && MACH_PORT_VALID (g_service_ports[i].service_port)) {
- mach_port_deallocate (mach_task_self (),
- g_service_ports[i].service_port);
- }
-
- g_service_ports[i].service_port = k5_service_port;
- }
- }
-
- free (service);
- if (MACH_PORT_VALID (boot_port)) { mach_port_deallocate (mach_task_self (),
- boot_port); }
- }
-
- if (!err) {
- *out_service_port = k5_service_port;
- }
-
- if (!lock_err) { k5_mutex_unlock (&g_service_ports_mutex); }
-
- return err;
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-static boolean_t k5_ipc_reply_demux (mach_msg_header_t *request,
- mach_msg_header_t *reply)
-{
- boolean_t handled = 0;
-
- if (CALL_INIT_FUNCTION (k5_cli_ipc_thread_init) != 0) {
- return 0;
- }
-
- if (!handled && request->msgh_id == MACH_NOTIFY_NO_SENDERS) {
- k5_ipc_connection_info cinfo = k5_getspecific (K5_KEY_IPC_CONNECTION_INFO);
- if (cinfo) {
- cinfo->server_died = 1;
- }
-
- handled = 1; /* server died */
- }
-
- if (!handled) {
- handled = k5_ipc_reply_server (request, reply);
- }
-
- return handled;
-}
-
-/* ------------------------------------------------------------------------ */
-
-kern_return_t k5_ipc_client_reply (mach_port_t in_reply_port,
- k5_ipc_inl_reply_t in_inl_reply,
- mach_msg_type_number_t in_inl_replyCnt,
- k5_ipc_ool_reply_t in_ool_reply,
- mach_msg_type_number_t in_ool_replyCnt)
-{
- kern_return_t err = KERN_SUCCESS;
- k5_ipc_connection_info cinfo = NULL;
-
- if (!err) {
- err = CALL_INIT_FUNCTION (k5_cli_ipc_thread_init);
- }
-
- if (!err) {
- cinfo = k5_getspecific (K5_KEY_IPC_CONNECTION_INFO);
- if (!cinfo || !cinfo->reply_stream) { err = EINVAL; }
- }
-
- if (!err) {
- if (in_inl_replyCnt) {
- err = krb5int_ipc_stream_write (cinfo->reply_stream,
- in_inl_reply, in_inl_replyCnt);
-
- } else if (in_ool_replyCnt) {
- err = krb5int_ipc_stream_write (cinfo->reply_stream,
- in_ool_reply, in_ool_replyCnt);
-
- } else {
- err = EINVAL;
- }
- }
-
- if (in_ool_replyCnt) { vm_deallocate (mach_task_self (),
- (vm_address_t) in_ool_reply,
- in_ool_replyCnt); }
-
- return err;
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-int32_t k5_ipc_send_request (const char *in_service_id,
- int32_t in_launch_server,
- k5_ipc_stream in_request_stream,
- k5_ipc_stream *out_reply_stream)
-{
- int err = 0;
- int32_t done = 0;
- int32_t try_count = 0;
- mach_port_t server_port = MACH_PORT_NULL;
- k5_ipc_connection_info cinfo = NULL;
- k5_ipc_connection connection = NULL;
- mach_port_t reply_port = MACH_PORT_NULL;
- const char *inl_request = NULL; /* char * so we can pass the buffer in directly */
- mach_msg_type_number_t inl_request_length = 0;
- k5_ipc_ool_request_t ool_request = NULL;
- mach_msg_type_number_t ool_request_length = 0;
-
- if (!in_request_stream) { err = EINVAL; }
- if (!out_reply_stream ) { err = EINVAL; }
-
- if (!err) {
- err = CALL_INIT_FUNCTION (k5_cli_ipc_thread_init);
- }
-
- if (!err) {
- /* depending on how big the message is, use the fast inline buffer or
- * the slow dynamically allocated buffer */
- mach_msg_type_number_t request_length = krb5int_ipc_stream_size (in_request_stream);
-
- if (request_length > K5_IPC_MAX_INL_MSG_SIZE) {
- /*dprintf ("%s choosing out of line buffer (size is %d)",
- * __FUNCTION__, request_length); */
-
- err = vm_read (mach_task_self (),
- (vm_address_t) krb5int_ipc_stream_data (in_request_stream),
- request_length,
- (vm_address_t *) &ool_request,
- &ool_request_length);
- } else {
- /*dprintf ("%s choosing in line buffer (size is %d)",
- * __FUNCTION__, request_length); */
-
- inl_request_length = request_length;
- inl_request = krb5int_ipc_stream_data (in_request_stream);
- }
- }
-
- if (!err) {
- cinfo = k5_getspecific (K5_KEY_IPC_CONNECTION_INFO);
-
- if (!cinfo) {
- err = k5_ipc_client_cinfo_allocate (&cinfo);
-
- if (!err) {
- err = k5_setspecific (K5_KEY_IPC_CONNECTION_INFO, cinfo);
- }
- }
-
- if (!err) {
- int i, found = 0;
-
- for (i = 0; i < KIPC_SERVICE_COUNT; i++) {
- if (!strcmp (in_service_id, cinfo->connections[i].service_id)) {
- found = 1;
- connection = &cinfo->connections[i];
- break;
- }
- }
-
- if (!found) { err = EINVAL; }
- }
- }
-
- if (!err) {
- err = k5_ipc_client_lookup_server (in_service_id, in_launch_server,
- TRUE, &server_port);
- }
-
- if (!err) {
- err = mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE,
- &reply_port);
- }
-
- while (!err && !done) {
- if (!err && !MACH_PORT_VALID (connection->port)) {
- err = k5_ipc_client_create_client_connection (server_port,
- &connection->port);
- }
-
- if (!err) {
- err = k5_ipc_client_request (connection->port, reply_port,
- inl_request, inl_request_length,
- ool_request, ool_request_length);
-
- }
-
- if (err == MACH_SEND_INVALID_DEST) {
- if (try_count < 2) {
- try_count++;
- err = 0;
- }
-
- if (MACH_PORT_VALID (connection->port)) {
- mach_port_mod_refs (mach_task_self(), connection->port,
- MACH_PORT_RIGHT_SEND, -1 );
- connection->port = MACH_PORT_NULL;
- }
-
- /* Look up server name again without using the cached copy */
- err = k5_ipc_client_lookup_server (in_service_id,
- in_launch_server,
- FALSE, &server_port);
-
- } else {
- /* Talked to server, though we may have gotten an error */
- done = 1;
-
- /* Because we use ",dealloc" ool_request will be freed by mach.
- * Don't double free it. */
- ool_request = NULL;
- ool_request_length = 0;
- }
- }
-
- if (!err) {
- err = krb5int_ipc_stream_new (&cinfo->reply_stream);
- }
-
- if (!err) {
- mach_port_t old_notification_target = MACH_PORT_NULL;
-
- /* request no-senders notification so we know when server dies */
- err = mach_port_request_notification (mach_task_self (), reply_port,
- MACH_NOTIFY_NO_SENDERS, 1,
- reply_port,
- MACH_MSG_TYPE_MAKE_SEND_ONCE,
- &old_notification_target);
-
- if (!err && old_notification_target != MACH_PORT_NULL) {
- mach_port_deallocate (mach_task_self (), old_notification_target);
- }
- }
-
- if (!err) {
- cinfo->server_died = 0;
-
- err = mach_msg_server_once (k5_ipc_reply_demux, K5_IPC_MAX_MSG_SIZE,
- reply_port, MACH_MSG_TIMEOUT_NONE);
-
- if (!err && cinfo->server_died) {
- err = ENOTCONN;
- }
- }
-
- if (err == BOOTSTRAP_UNKNOWN_SERVICE && !in_launch_server) {
- err = 0; /* If server is not running just return an empty stream. */
- }
-
- if (!err) {
- *out_reply_stream = cinfo->reply_stream;
- cinfo->reply_stream = NULL;
- }
-
- if (reply_port != MACH_PORT_NULL) {
- mach_port_destroy (mach_task_self (), reply_port);
- }
- if (ool_request_length) {
- vm_deallocate (mach_task_self (),
- (vm_address_t) ool_request, ool_request_length);
- }
- if (cinfo && cinfo->reply_stream) {
- krb5int_ipc_stream_release (cinfo->reply_stream);
- cinfo->reply_stream = NULL;
- }
-
- return err;
-}
-
-#endif /* LEAN CLIENT */
diff --git a/src/util/mac/k5_mig_client.h b/src/util/mac/k5_mig_client.h
deleted file mode 100644
index 1d13bda..0000000
--- a/src/util/mac/k5_mig_client.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
-/* util/mac/k5_mig_client.h */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#ifndef K5_MIG_CLIENT_H
-#define K5_MIG_CLIENT_H
-
-#include "k5-ipc_stream.h"
-
-int32_t k5_ipc_send_request (const char *in_service_id,
- int32_t in_launch_server,
- k5_ipc_stream in_request_stream,
- k5_ipc_stream *out_reply_stream);
-
-#endif /* K5_MIG_CLIENT_H */
diff --git a/src/util/mac/k5_mig_reply.defs b/src/util/mac/k5_mig_reply.defs
deleted file mode 100644
index 301778e..0000000
--- a/src/util/mac/k5_mig_reply.defs
+++ /dev/null
@@ -1,58 +0,0 @@
-/* $Copyright:
- *
- * Copyright 2004-2006 by the Massachusetts Institute of Technology.
- *
- * All rights reserved.
- *
- * Export of this software from the United States of America may require a
- * specific license from the United States Government. It is the
- * responsibility of any person or organization contemplating export to
- * obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute
- * this software and its documentation for any purpose and without fee is
- * hereby granted, provided that the above copyright notice appear in all
- * copies and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of M.I.T. not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Furthermore if you
- * modify this software you must label your software as modified software
- * and not distribute it in such a fashion that it might be confused with
- * the original MIT software. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Individual source code files are copyright MIT, Cygnus Support,
- * OpenVision, Oracle, Sun Soft, FundsXpress, and others.
- *
- * Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira,
- * and Zephyr are trademarks of the Massachusetts Institute of Technology
- * (MIT). No commercial use of these trademarks may be made without prior
- * written permission of MIT.
- *
- * "Commercial use" means use of a name in a product or other for-profit
- * manner. It does NOT prevent a commercial firm from referring to the MIT
- * trademarks in order to convey information (although in doing so,
- * recognition of their trademark status should be given).
- * $
- */
-
-#include "k5_mig.defs"
-
-subsystem k5_ipc_reply 200;
-
-serverprefix k5_ipc_client_;
-userprefix k5_ipc_server_;
-
-/* ",dealloc" means that the vm_read() memory will be moved to
- * the other process rather than copied. This is necessary on the
- * client side because we can't know when server has copied our
- * buffers so we can't vm_deallocate() them ourselves. */
-
-simpleroutine reply (in_reply_port : mach_port_move_send_once_t;
- in_inl_reply : k5_ipc_inl_reply_t;
- in_ool_reply : k5_ipc_ool_reply_t, dealloc);
diff --git a/src/util/mac/k5_mig_request.defs b/src/util/mac/k5_mig_request.defs
deleted file mode 100644
index bbb23f0..0000000
--- a/src/util/mac/k5_mig_request.defs
+++ /dev/null
@@ -1,62 +0,0 @@
-/* $Copyright:
- *
- * Copyright 2004-2006 by the Massachusetts Institute of Technology.
- *
- * All rights reserved.
- *
- * Export of this software from the United States of America may require a
- * specific license from the United States Government. It is the
- * responsibility of any person or organization contemplating export to
- * obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute
- * this software and its documentation for any purpose and without fee is
- * hereby granted, provided that the above copyright notice appear in all
- * copies and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of M.I.T. not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Furthermore if you
- * modify this software you must label your software as modified software
- * and not distribute it in such a fashion that it might be confused with
- * the original MIT software. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Individual source code files are copyright MIT, Cygnus Support,
- * OpenVision, Oracle, Sun Soft, FundsXpress, and others.
- *
- * Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira,
- * and Zephyr are trademarks of the Massachusetts Institute of Technology
- * (MIT). No commercial use of these trademarks may be made without prior
- * written permission of MIT.
- *
- * "Commercial use" means use of a name in a product or other for-profit
- * manner. It does NOT prevent a commercial firm from referring to the MIT
- * trademarks in order to convey information (although in doing so,
- * recognition of their trademark status should be given).
- * $
- */
-
-#include "k5_mig.defs"
-
-subsystem k5_ipc_request 100;
-
-serverprefix k5_ipc_server_;
-userprefix k5_ipc_client_;
-
-routine create_client_connection (in_server_port : mach_port_t;
- out out_connection_port : mach_port_t = MACH_MSG_TYPE_MAKE_SEND);
-
-/* ",dealloc" means that the vm_read() memory will be moved to
- * the other process rather than copied. This is necessary on the
- * server side because we can't know when client has copied our
- * buffers so we can't vm_deallocate() them ourselves. */
-
-simpleroutine request (in_connection_port : mach_port_t;
- in_reply_port : mach_port_make_send_once_t;
- in_inl_request : k5_ipc_inl_request_t;
- in_ool_request : k5_ipc_ool_request_t, dealloc);
diff --git a/src/util/mac/k5_mig_server.c b/src/util/mac/k5_mig_server.c
deleted file mode 100644
index cdab13b..0000000
--- a/src/util/mac/k5_mig_server.c
+++ /dev/null
@@ -1,390 +0,0 @@
-/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
-/* util/mac/k5_mig_server.c */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#include "k5_mig_server.h"
-
-#include <syslog.h>
-#include "k5_mig_requestServer.h"
-#include "k5_mig_reply.h"
-
-#include <CoreFoundation/CoreFoundation.h>
-#include <mach/mach.h>
-#include <servers/bootstrap.h>
-#include <string.h>
-
-/* Global variables for servers (used by k5_ipc_request_demux) */
-static mach_port_t g_service_port = MACH_PORT_NULL;
-static mach_port_t g_notify_port = MACH_PORT_NULL;
-static mach_port_t g_listen_port_set = MACH_PORT_NULL;
-static boolean_t g_ready_to_quit = 0;
-
-
-/* ------------------------------------------------------------------------ */
-
-static boolean_t k5_ipc_request_demux (mach_msg_header_t *request,
- mach_msg_header_t *reply)
-{
- boolean_t handled = 0;
-
- if (!handled) {
- handled = k5_ipc_request_server (request, reply);
- }
-
- /* Our session has a send right. If that goes away it's time to quit. */
- if (!handled && (request->msgh_id == MACH_NOTIFY_NO_SENDERS &&
- request->msgh_local_port == g_notify_port)) {
- g_ready_to_quit = 1;
- handled = 1;
- }
-
- /* Check here for a client death. If so remove it */
- if (!handled && request->msgh_id == MACH_NOTIFY_NO_SENDERS) {
- kern_return_t err = KERN_SUCCESS;
-
- err = k5_ipc_server_remove_client (request->msgh_local_port);
-
- if (!err) {
- err = mach_port_mod_refs (mach_task_self (),
- request->msgh_local_port,
- MACH_PORT_RIGHT_RECEIVE, -1);
- }
-
- if (!err) {
- handled = 1; /* was a port we are tracking */
- }
- }
-
- return handled;
-}
-
-/* ------------------------------------------------------------------------ */
-
-kern_return_t k5_ipc_server_create_client_connection (mach_port_t in_server_port,
- mach_port_t *out_connection_port)
-{
- kern_return_t err = KERN_SUCCESS;
- mach_port_t connection_port = MACH_PORT_NULL;
- mach_port_t old_notification_target = MACH_PORT_NULL;
-
- if (!err) {
- err = mach_port_allocate (mach_task_self (),
- MACH_PORT_RIGHT_RECEIVE, &connection_port);
- }
-
- if (!err) {
- err = mach_port_move_member (mach_task_self (),
- connection_port, g_listen_port_set);
- }
-
- if (!err) {
- /* request no-senders notification so we can tell when client quits/crashes */
- err = mach_port_request_notification (mach_task_self (),
- connection_port,
- MACH_NOTIFY_NO_SENDERS, 1,
- connection_port,
- MACH_MSG_TYPE_MAKE_SEND_ONCE,
- &old_notification_target );
- }
-
- if (!err) {
- err = k5_ipc_server_add_client (connection_port);
- }
-
- if (!err) {
- *out_connection_port = connection_port;
- connection_port = MACH_PORT_NULL;
- }
-
- if (MACH_PORT_VALID (connection_port)) { mach_port_deallocate (mach_task_self (), connection_port); }
-
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-kern_return_t k5_ipc_server_request (mach_port_t in_connection_port,
- mach_port_t in_reply_port,
- k5_ipc_inl_request_t in_inl_request,
- mach_msg_type_number_t in_inl_requestCnt,
- k5_ipc_ool_request_t in_ool_request,
- mach_msg_type_number_t in_ool_requestCnt)
-{
- kern_return_t err = KERN_SUCCESS;
- k5_ipc_stream request_stream = NULL;
-
- if (!err) {
- err = krb5int_ipc_stream_new (&request_stream);
- }
-
- if (!err) {
- if (in_inl_requestCnt) {
- err = krb5int_ipc_stream_write (request_stream, in_inl_request, in_inl_requestCnt);
-
- } else if (in_ool_requestCnt) {
- err = krb5int_ipc_stream_write (request_stream, in_ool_request, in_ool_requestCnt);
-
- } else {
- err = EINVAL;
- }
- }
-
- if (!err) {
- err = k5_ipc_server_handle_request (in_connection_port, in_reply_port, request_stream);
- }
-
- krb5int_ipc_stream_release (request_stream);
- if (in_ool_requestCnt) { vm_deallocate (mach_task_self (), (vm_address_t) in_ool_request, in_ool_requestCnt); }
-
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-static kern_return_t k5_ipc_server_get_lookup_and_service_names (char **out_lookup,
- char **out_service)
-{
- kern_return_t err = KERN_SUCCESS;
- CFBundleRef bundle = NULL;
- CFStringRef id_string = NULL;
- CFIndex len = 0;
- char *service_id = NULL;
- char *lookup = NULL;
- char *service = NULL;
-
- if (!out_lookup ) { err = EINVAL; }
- if (!out_service) { err = EINVAL; }
-
- if (!err) {
- bundle = CFBundleGetMainBundle ();
- if (!bundle) { err = ENOENT; }
- }
-
- if (!err) {
- id_string = CFBundleGetIdentifier (bundle);
- if (!id_string) { err = ENOMEM; }
- }
-
- if (!err) {
- len = CFStringGetMaximumSizeForEncoding (CFStringGetLength (id_string),
- kCFStringEncodingUTF8) + 1;
- }
-
- if (!err) {
- service_id = calloc (len, sizeof (char));
- if (!service_id) { err = errno; }
- }
-
- if (!err && !CFStringGetCString (id_string, service_id, len,
- kCFStringEncodingUTF8)) {
- err = ENOMEM;
- }
-
- if (!err) {
- int w = asprintf (&lookup, "%s%s", service_id, K5_MIG_LOOKUP_SUFFIX);
- if (w < 0) { err = ENOMEM; }
- }
-
- if (!err) {
- int w = asprintf (&service, "%s%s", service_id, K5_MIG_SERVICE_SUFFIX);
- if (w < 0) { err = ENOMEM; }
- }
-
- if (!err) {
- *out_lookup = lookup;
- lookup = NULL;
- *out_service = service;
- service = NULL;
- }
-
- free (service);
- free (lookup);
- free (service_id);
-
- return err;
-}
-
-#pragma mark -
-
-/* ------------------------------------------------------------------------ */
-
-int32_t k5_ipc_server_listen_loop (void)
-{
- /* Run the Mach IPC listen loop.
- * This will call k5_ipc_server_create_client_connection for new clients
- * and k5_ipc_server_request for existing clients */
-
- kern_return_t err = KERN_SUCCESS;
- char *service = NULL;
- char *lookup = NULL;
- mach_port_t lookup_port = MACH_PORT_NULL;
- mach_port_t boot_port = MACH_PORT_NULL;
- mach_port_t previous_notify_port = MACH_PORT_NULL;
-
- if (!err) {
- err = k5_ipc_server_get_lookup_and_service_names (&lookup, &service);
- }
-
- if (!err) {
- /* Get the bootstrap port */
- err = task_get_bootstrap_port (mach_task_self (), &boot_port);
- }
-
- if (!err) {
- /* We are an on-demand server so our lookup port already exists. */
- err = bootstrap_check_in (boot_port, lookup, &lookup_port);
- }
-
- if (!err) {
- /* We are an on-demand server so our service port already exists. */
- err = bootstrap_check_in (boot_port, service, &g_service_port);
- }
-
- if (!err) {
- /* Create the port set that the server will listen on */
- err = mach_port_allocate (mach_task_self (), MACH_PORT_RIGHT_RECEIVE,
- &g_notify_port);
- }
-
- if (!err) {
- /* Ask for notification when the server port has no more senders
- * A send-once right != a send right so our send-once right will
- * not interfere with the notification */
- err = mach_port_request_notification (mach_task_self (), g_service_port,
- MACH_NOTIFY_NO_SENDERS, true,
- g_notify_port,
- MACH_MSG_TYPE_MAKE_SEND_ONCE,
- &previous_notify_port);
- }
-
- if (!err) {
- /* Create the port set that the server will listen on */
- err = mach_port_allocate (mach_task_self (),
- MACH_PORT_RIGHT_PORT_SET, &g_listen_port_set);
- }
-
- if (!err) {
- /* Add the lookup port to the port set */
- err = mach_port_move_member (mach_task_self (),
- lookup_port, g_listen_port_set);
- }
-
- if (!err) {
- /* Add the service port to the port set */
- err = mach_port_move_member (mach_task_self (),
- g_service_port, g_listen_port_set);
- }
-
- if (!err) {
- /* Add the notify port to the port set */
- err = mach_port_move_member (mach_task_self (),
- g_notify_port, g_listen_port_set);
- }
-
- while (!err && !g_ready_to_quit) {
- /* Handle one message at a time so we can check to see if
- * the server wants to quit */
- err = mach_msg_server_once (k5_ipc_request_demux, K5_IPC_MAX_MSG_SIZE,
- g_listen_port_set, MACH_MSG_OPTION_NONE);
- }
-
- /* Clean up the ports and strings */
- if (MACH_PORT_VALID (g_notify_port)) {
- mach_port_destroy (mach_task_self (), g_notify_port);
- g_notify_port = MACH_PORT_NULL;
- }
- if (MACH_PORT_VALID (g_listen_port_set)) {
- mach_port_destroy (mach_task_self (), g_listen_port_set);
- g_listen_port_set = MACH_PORT_NULL;
- }
- if (MACH_PORT_VALID (boot_port)) {
- mach_port_deallocate (mach_task_self (), boot_port);
- }
-
- free (service);
- free (lookup);
-
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-int32_t k5_ipc_server_send_reply (mach_port_t in_reply_port,
- k5_ipc_stream in_reply_stream)
-{
- kern_return_t err = KERN_SUCCESS;
- k5_ipc_inl_reply_t inl_reply;
- mach_msg_type_number_t inl_reply_length = 0;
- k5_ipc_ool_reply_t ool_reply = NULL;
- mach_msg_type_number_t ool_reply_length = 0;
-
- if (!MACH_PORT_VALID (in_reply_port)) { err = EINVAL; }
- if (!in_reply_stream ) { err = EINVAL; }
-
- if (!err) {
- /* depending on how big the message is, use the fast inline buffer or
- * the slow dynamically allocated buffer */
- mach_msg_type_number_t reply_length = krb5int_ipc_stream_size (in_reply_stream);
-
- if (reply_length > K5_IPC_MAX_INL_MSG_SIZE) {
- //dprintf ("%s choosing out of line buffer (size is %d)",
- // __FUNCTION__, reply_length);
-
- err = vm_read (mach_task_self (),
- (vm_address_t) krb5int_ipc_stream_data (in_reply_stream), reply_length,
- (vm_address_t *) &ool_reply, &ool_reply_length);
-
- } else {
- //cci_debug_printf ("%s choosing in line buffer (size is %d)",
- // __FUNCTION__, reply_length);
-
- inl_reply_length = reply_length;
- memcpy (inl_reply, krb5int_ipc_stream_data (in_reply_stream), reply_length);
- }
- }
-
- if (!err) {
- err = k5_ipc_server_reply (in_reply_port,
- inl_reply, inl_reply_length,
- ool_reply, ool_reply_length);
- }
-
- if (!err) {
- /* Because we use ",dealloc" ool_reply will be freed by mach. Don't double free it. */
- ool_reply = NULL;
- ool_reply_length = 0;
- }
-
- if (ool_reply_length) { vm_deallocate (mach_task_self (), (vm_address_t) ool_reply, ool_reply_length); }
-
- return err;
-}
-
-/* ------------------------------------------------------------------------ */
-
-void k5_ipc_server_quit (void)
-{
- g_ready_to_quit = 1;
-}
diff --git a/src/util/mac/k5_mig_server.h b/src/util/mac/k5_mig_server.h
deleted file mode 100644
index 95a5d0a..0000000
--- a/src/util/mac/k5_mig_server.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
-/* util/mac/k5_mig_server.h */
-/*
- * Copyright 2006 Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- */
-
-#ifndef K5_MIG_SERVER
-#define K5_MIG_SERVER
-
-#include "k5-ipc_stream.h"
-
-/* Defined by caller */
-
-int32_t k5_ipc_server_add_client (mach_port_t in_client_port);
-
-int32_t k5_ipc_server_remove_client (mach_port_t in_client_port);
-
-int32_t k5_ipc_server_handle_request (mach_port_t in_connection_port,
- mach_port_t in_reply_port,
- k5_ipc_stream in_request_stream);
-
-/* Server control functions */
-
-/* WARNING: Currently only supports running server loop on a single thread! */
-int32_t k5_ipc_server_listen_loop (void);
-
-int32_t k5_ipc_server_send_reply (mach_port_t in_reply_pipe,
- k5_ipc_stream in_reply_stream);
-
-void k5_ipc_server_quit (void);
-
-#endif /* K5_MIG_SERVER */
diff --git a/src/util/mac/k5_mig_types.h b/src/util/mac/k5_mig_types.h
deleted file mode 100644
index 9387e31..0000000
--- a/src/util/mac/k5_mig_types.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
-/* $Copyright:
- *
- * Copyright 2004-2006 by the Massachusetts Institute of Technology.
- *
- * All rights reserved.
- *
- * Export of this software from the United States of America may require a
- * specific license from the United States Government. It is the
- * responsibility of any person or organization contemplating export to
- * obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute
- * this software and its documentation for any purpose and without fee is
- * hereby granted, provided that the above copyright notice appear in all
- * copies and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of M.I.T. not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Furthermore if you
- * modify this software you must label your software as modified software
- * and not distribute it in such a fashion that it might be confused with
- * the original MIT software. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Individual source code files are copyright MIT, Cygnus Support,
- * OpenVision, Oracle, Sun Soft, FundsXpress, and others.
- *
- * Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira,
- * and Zephyr are trademarks of the Massachusetts Institute of Technology
- * (MIT). No commercial use of these trademarks may be made without prior
- * written permission of MIT.
- *
- * "Commercial use" means use of a name in a product or other for-profit
- * manner. It does NOT prevent a commercial firm from referring to the MIT
- * trademarks in order to convey information (although in doing so,
- * recognition of their trademark status should be given).
- * $
- */
-
-#ifndef K5_MIG_TYPES_H
-#define K5_MIG_TYPES_H
-
-#define K5_IPC_MAX_MSG_SIZE 2048 + MAX_TRAILER_SIZE
-
-#define K5_MIG_LOOKUP_SUFFIX ".ipcLookup"
-#define K5_MIG_SERVICE_SUFFIX ".ipcService"
-
-#define K5_IPC_MAX_INL_MSG_SIZE 1024
-
-typedef const char k5_ipc_inl_request_t[K5_IPC_MAX_INL_MSG_SIZE];
-typedef const char *k5_ipc_ool_request_t;
-typedef char k5_ipc_inl_reply_t[K5_IPC_MAX_INL_MSG_SIZE];
-typedef char *k5_ipc_ool_reply_t;
-
-#endif /* K5_MIG_TYPES_H */
More information about the cvs-krb5
mailing list