krb5 commit: Remove orphaned KfM code

Greg Hudson <[email protected]>
Newsgroups gmane.comp.encryption.kerberos.cvs
Message-ID <[email protected]>
https://github.com/krb5/krb5/commit/db111e157c283e58bb29e87fe7257b77bce44920
commit db111e157c283e58bb29e87fe7257b77bce44920
Author: Michael Mattioli <[email protected]>
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.
    
    [[email protected]: 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 */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.