From: Michael Mattioli Date: Sun, 28 Jul 2019 20:36:30 +0000 (-0400) Subject: Remove orphaned KfM code X-Git-Tag: krb5-1.18-beta1~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db111e157c283e58bb29e87fe7257b77bce44920;p=thirdparty%2Fkrb5.git Remove orphaned KfM code Remove the Mac parts of the ccapi code, as ccapi is now only used in the Windows build. Remove util/mac. [ghudson@mit.edu: rewrote commit message] --- 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 e5280451bb..0000000000 --- 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 - -/* ------------------------------------------------------------------------ */ - -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 be7b5bdc46..0000000000 --- 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 - -/* ------------------------------------------------------------------------ */ - -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 d6b9a6caec..0000000000 --- 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 155599d81a..0000000000 --- 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 0f02e4148f..0000000000 --- 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 803257cdcd..0000000000 --- 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 - - -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 f5397f8aa0..0000000000 --- a/src/ccapi/server/mac/CCacheServerInfo.plist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - CCacheServer - CFBundleGetInfoString - 4.1 - CFBundleIconFile - - CFBundleIdentifier - edu.mit.Kerberos.CCacheServer - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Kerberos Credentials Cache Server - CFBundlePackageType - APPL - CFBundleSignature - CCSa - CFBundleVersion - 0.0.1d1 - CFBundleShortVersionString - 5.5 - CFBundleGetInfoString - 5.5 Copyright MIT - KfMDisplayVersion - 5.5 Copyright MIT - KfMDisplayCopyright - Copyright MIT - NSHumanReadableCopyright - 5.5 Copyright MIT - LSBackgroundOnly - 1 - - 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 e758deb5c9..0000000000 --- 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 - -/* ------------------------------------------------------------------------ */ - -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 5d9fff2075..0000000000 --- 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 - -/* 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 b16f5e088c..0000000000 --- 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 -#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 c002431d2e..0000000000 --- a/src/ccapi/server/mac/edu.mit.Kerberos.CCacheServer.plist +++ /dev/null @@ -1,35 +0,0 @@ - - - - - Label - edu.mit.Kerberos.CCacheServer - LimitLoadToSessionType - Background - Program - /System/Library/CoreServices/CCacheServer.app/Contents/MacOS/CCacheServer - MachServices - - edu.mit.Kerberos.CCacheServer.ipcLookup - - HideUntilCheckIn - - ResetAtClose - - - edu.mit.Kerberos.CCacheServer.ipcService - - - EnableTransactions - - OnDemand - - ThrottleInterval - 0 - EnvironmentVariables - - CFFIXED_USER_HOME - /var/empty - - - diff --git a/src/util/mac/k5_mig.defs b/src/util/mac/k5_mig.defs deleted file mode 100644 index 6349eb877f..0000000000 --- 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 -#include - -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 da62153d98..0000000000 --- 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 -#include - - - -/* 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 1d13bdac1f..0000000000 --- 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 301778e15a..0000000000 --- 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 bbb23f0e3e..0000000000 --- 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 cdab13b53e..0000000000 --- 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 -#include "k5_mig_requestServer.h" -#include "k5_mig_reply.h" - -#include -#include -#include -#include - -/* 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 95a5d0aa97..0000000000 --- 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 9387e31ed9..0000000000 --- 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 */