diff options
Diffstat (limited to 'src/lib/ccapi')
-rw-r--r-- | src/lib/ccapi/client/ccache.c | 9 | ||||
-rw-r--r-- | src/lib/ccapi/client/ccache.h | 8 | ||||
-rw-r--r-- | src/lib/ccapi/client/context.c | 4 | ||||
-rw-r--r-- | src/lib/ccapi/client/context.h | 2 | ||||
-rw-r--r-- | src/lib/ccapi/common/generic_lists.c | 2 | ||||
-rw-r--r-- | src/lib/ccapi/common/marshall.c | 882 | ||||
-rw-r--r-- | src/lib/ccapi/common/msg.c | 1244 | ||||
-rw-r--r-- | src/lib/ccapi/include/CredentialsCache.h | 302 | ||||
-rw-r--r-- | src/lib/ccapi/include/CredentialsCache2.h | 2 | ||||
-rw-r--r-- | src/lib/ccapi/include/generic_lists.h | 8 | ||||
-rw-r--r-- | src/lib/ccapi/include/msg.h | 11 | ||||
-rw-r--r-- | src/lib/ccapi/mac/CCAPI.xcodeproj/lxs.pbxuser | 2005 | ||||
-rw-r--r-- | src/lib/ccapi/mac/CCAPI.xcodeproj/lxs.perspective | 1567 | ||||
-rw-r--r-- | src/lib/ccapi/mac/CCAPI.xcodeproj/project.pbxproj | 2 | ||||
-rw-r--r-- | src/lib/ccapi/server/ccs_lists.c | 2 | ||||
-rw-r--r-- | src/lib/ccapi/server/mac/main.c | 4 | ||||
-rw-r--r-- | src/lib/ccapi/server/rpc_auth.c | 1 |
17 files changed, 1241 insertions, 4814 deletions
diff --git a/src/lib/ccapi/client/ccache.c b/src/lib/ccapi/client/ccache.c index 07e9b8e87..c442a8827 100644 --- a/src/lib/ccapi/client/ccache.c +++ b/src/lib/ccapi/client/ccache.c @@ -816,9 +816,10 @@ cc_int_ccache_move( cc_ccache_t source, return code; } +cc_int32 cc_int_ccache_lock( cc_ccache_t ccache, - cc_uint32 lock_type, - cc_uint32 block ) + cc_uint32 lock_type, + cc_uint32 block ) { cc_int_ccache_t int_ccache; cc_msg_t *request = NULL; @@ -1004,7 +1005,7 @@ cc_int_ccache_get_last_default_time( cc_ccache_t ccache, } cc_int32 -cc_int_ccache_get_change_time( cc_ccache_t ccache, cc_time* time ) +cc_int_ccache_get_change_time( cc_ccache_t ccache, cc_time* change_time ) { cc_int_ccache_t int_ccache; cc_msg_t *request = NULL; @@ -1049,7 +1050,7 @@ cc_int_ccache_get_change_time( cc_ccache_t ccache, cc_time* time ) ccmsg_ccache_get_change_time_resp_t * response_header = (ccmsg_ccache_get_change_time_resp_t*)response->header; t64 = htonll(response_header->time); /* TODO: validate that we do not overflow 'time' */ - *time = t64; + *change_time = t64; code = ccNoError; } else { code = ccErrBadInternalMessage; diff --git a/src/lib/ccapi/client/ccache.h b/src/lib/ccapi/client/ccache.h index 0a92ebf63..255cf2a42 100644 --- a/src/lib/ccapi/client/ccache.h +++ b/src/lib/ccapi/client/ccache.h @@ -114,11 +114,11 @@ cc_int_ccache_unlock( cc_ccache_t ccache ); cc_int32 cc_int_ccache_get_last_default_time( cc_ccache_t ccache, - cc_time* time ); + cc_time* last_default_tim ); cc_int32 cc_int_ccache_get_change_time( cc_ccache_t ccache, - cc_time* time ); + cc_time* change_time ); cc_int32 cc_int_ccache_compare( cc_ccache_t ccache, @@ -128,12 +128,12 @@ cc_int_ccache_compare( cc_ccache_t ccache, cc_int32 cc_int_ccache_get_kdc_time_offset( cc_ccache_t ccache, cc_int32 credentials_version, - cc_time* time_offset ); + cc_time* kdc_time_offset ); cc_int32 cc_int_ccache_set_kdc_time_offset( cc_ccache_t ccache, cc_int32 credentials_version, - cc_time time_offset ); + cc_time kdc_time_offset ); cc_int32 cc_int_ccache_clear_kdc_time_offset( cc_ccache_t ccache, diff --git a/src/lib/ccapi/client/context.c b/src/lib/ccapi/client/context.c index 5d88d4686..4bcfc040c 100644 --- a/src/lib/ccapi/client/context.c +++ b/src/lib/ccapi/client/context.c @@ -154,7 +154,7 @@ cc_int_context_release( cc_context_t context ) cc_int32 cc_int_context_get_change_time( cc_context_t context, - cc_time* time) + cc_time* change_time) { cc_int_context_t int_context; cc_msg_t *request = NULL; @@ -199,7 +199,7 @@ cc_int_context_get_change_time( cc_context_t context, response_header = (ccmsg_ctx_get_change_time_resp_t*)response->header; t64 = ntohll(response_header->time); /* TODO: validate that value is not greater than can fit in cc_time */ - *time = (cc_time)t64; + *change_time = (cc_time)t64; code = ccNoError; } else { code = ccErrBadInternalMessage; diff --git a/src/lib/ccapi/client/context.h b/src/lib/ccapi/client/context.h index 6ff113a26..eb0ea520e 100644 --- a/src/lib/ccapi/client/context.h +++ b/src/lib/ccapi/client/context.h @@ -66,7 +66,7 @@ cc_int_context_release( cc_context_t context ); cc_int32 cc_int_context_get_change_time( cc_context_t context, - cc_time* time); + cc_time* change_time); cc_int32 cc_int_context_get_default_ccache_name( cc_context_t context, diff --git a/src/lib/ccapi/common/generic_lists.c b/src/lib/ccapi/common/generic_lists.c index 2c7398313..62f8d8de4 100644 --- a/src/lib/ccapi/common/generic_lists.c +++ b/src/lib/ccapi/common/generic_lists.c @@ -117,7 +117,7 @@ cci_generic_list_new(cc_generic_list_head_t ** listpp) if (ret == NULL)
return ccErrNoMem;
- ret->type = generic;
+ ret->type = cc_generic_list;
ret->head = ret->tail = NULL;
*listpp = ret;
diff --git a/src/lib/ccapi/common/marshall.c b/src/lib/ccapi/common/marshall.c index 48abb3370..b2433cb1d 100644 --- a/src/lib/ccapi/common/marshall.c +++ b/src/lib/ccapi/common/marshall.c @@ -1,441 +1,441 @@ -/* $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).
- * $
- */
-
-/* marshall.c */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <CredentialsCache.h>
-#include "msg.h"
-#include "msg_headers.h"
-#include "marshall.h"
-
-cc_int32
-cci_creds_v4_marshall( cc_credentials_v4_t * creds,
- char ** pflat,
- cc_uint32 * plen)
-{
- cc_uint32 len;
- char * flat;
- cci_flat_creds_v4_t * header;
- cc_time64 t64;
-
- if ( creds == NULL || pflat == NULL || plen == NULL )
- return ccErrBadParam;
-
- len = sizeof(cci_flat_creds_v4_t);
- flat = (char *)malloc(len);
- if ( flat == NULL )
- return ccErrNoMem;
- memset(flat, 0, len);
-
- header = (cci_flat_creds_v4_t *)flat;
- header->version = htonl(creds->version);
- memcpy(header->principal, creds->principal, cc_v4_name_size);
- memcpy(header->principal_instance, creds->principal_instance, cc_v4_instance_size);
- memcpy(header->service, creds->service, cc_v4_name_size);
- memcpy(header->service_instance, creds->service_instance, cc_v4_instance_size);
- memcpy(header->realm, creds->realm, cc_v4_realm_size);
- memcpy(header->session_key, creds->session_key, cc_v4_key_size);
- header->kvno = htonl(creds->kvno);
- header->string_to_key_type = htonl(creds->string_to_key_type);
- t64 = creds->issue_date;
- header->issue_date = htonll(t64);
- header->lifetime = htonl(creds->lifetime);
- /* TODO: verify that address is stored in host order */
- header->address = htonl(creds->address);
- header->ticket_size = htonl(creds->ticket_size);
- memcpy(header->ticket, creds->ticket, cc_v4_ticket_size);
-
- *pflat = flat;
- *plen = len;
-
- return ccNoError;
-}
-
-cc_int32
-cci_creds_v4_unmarshall( char * flat,
- cc_uint32 len,
- cc_credentials_union * creds_union)
-{
- struct cci_flat_creds_v4 * header;
- cc_credentials_v4_t * creds;
- cc_time64 t64;
-
- if ( flat == NULL || len == 0 || creds_union == NULL )
- return ccErrBadParam;
-
- creds_union->version = cc_credentials_v4;
-
- header = (cci_flat_creds_v4_t *)flat;
-
- creds = (cc_credentials_v4_t *)malloc(sizeof(cc_credentials_v4_t));
- if ( creds == NULL )
- return ccErrNoMem;
-
- creds->version = ntohl(header->version);
- memcpy(creds->principal, header->principal, cc_v4_name_size);
- memcpy(creds->principal_instance, header->principal_instance, cc_v4_instance_size);
- memcpy(creds->service, header->service, cc_v4_name_size);
- memcpy(creds->service_instance, header->service_instance, cc_v4_instance_size);
- memcpy(creds->realm, header->realm, cc_v4_realm_size);
- memcpy(creds->session_key, header->session_key, cc_v4_key_size);
- creds->kvno = htonl(header->kvno);
- creds->string_to_key_type = htonl(header->string_to_key_type);
- t64 = header->issue_date;
- creds->issue_date = (cc_time64)ntohll(t64);
- creds->lifetime = (cc_int32)ntohl(header->lifetime);
- /* TODO: verify that address is stored in host order */
- creds->address = ntohl(header->address);
- creds->ticket_size = ntohl(header->ticket_size);
- memcpy(creds->ticket, header->ticket, cc_v4_ticket_size);
-
- creds_union->credentials.credentials_v4 = creds;
-
- return ccNoError;
-}
-
-
-cc_int32
-cci_creds_cc_data_array_count_entries( cc_data ** array, cc_uint32 * pcount)
-{
- cc_uint32 count;
-
- if (array == NULL) {
- *pcount = 0;
- return ccNoError;
- }
-
- for ( count=0; array[count] != NULL ; count++) ;
-
- *pcount = count;
- return ccNoError;
-}
-
-cc_int32
-cci_creds_v5_compute_flat_size( cc_credentials_v5_t * creds, cc_uint32 * plen)
-{
- cc_uint32 len;
- cc_uint32 i, count;
-
- len = sizeof(struct cci_flat_creds_v5);
-
- if (creds->client)
- len += strlen(creds->client) + 1;
-
- if (creds->server)
- len += strlen(creds->server) + 1;
-
- len += creds->keyblock.length;
-
- cci_creds_cc_data_array_count_entries( creds->addresses, &count );
- len += count * sizeof(cc_flat_data);
- for ( i=0; i<count; i++ ) {
- len += creds->addresses[i]->length;
- }
-
- len += creds->ticket.length;
- len += creds->second_ticket.length;
-
- cci_creds_cc_data_array_count_entries( creds->authdata, &count );
- len += count * sizeof(cc_flat_data);
- for ( i=0; i<count; i++ ) {
- len += creds->authdata[i]->length;
- }
-
- *plen = len;
- return ccNoError;
-}
-
-cc_int32
-cci_creds_v5_marshall( cc_credentials_v5_t * creds,
- char ** pflat,
- cc_uint32 * plen)
-{
- cc_uint32 len;
- char * flat;
- struct cci_flat_creds_v5 * header;
- cc_uint32 length;
- cc_uint32 offset;
- cc_time64 t64;
- cc_uint32 count;
- cc_uint32 i;
-
- if ( creds == NULL || pflat == NULL || plen == NULL )
- return ccErrBadParam;
-
- cci_creds_v5_compute_flat_size(creds, &len);
-
- flat = (char *)malloc(len);
- if ( flat == NULL )
- return ccErrNoMem;
- memset(flat, 0, len);
-
- offset = sizeof(struct cci_flat_creds_v5);
- header = (struct cci_flat_creds_v5 *)flat;
- header->version = htonl(FLAT_CREDS_V5_VERSION);
- if (creds->client) {
- length = strlen(creds->client) + 1;
- header->client.length = htonl(length);
- header->client.data = htonl(offset);
- memcpy(flat + offset, creds->client, length);
- offset += length;
- }
-
- if (creds->server) {
- length = strlen(creds->server) + 1;
- header->server.length = htonl(length);
- header->server.data = htonl(offset);
- memcpy(flat + offset, creds->server, length);
- offset += length;
- }
-
- header->keyblock.type = htonl(creds->keyblock.type);
- if (creds->keyblock.length) {
- length = creds->keyblock.length;
- header->keyblock.length = htonl(length);
- header->keyblock.data = htonl(offset);
- memcpy(flat + offset, creds->keyblock.data, length);
- offset += length;
- }
-
- t64 = creds->authtime;
- header->authtime = htonll(t64);
- t64 = creds->starttime;
- header->starttime = htonll(t64);
- t64 = creds->endtime;
- header->endtime = htonll(t64);
- t64 = creds->renew_till;
- header->renew_till = htonll(t64);
-
- header->is_skey = htonl(creds->is_skey);
- header->ticket_flags = htonl(creds->ticket_flags);
-
- cci_creds_cc_data_array_count_entries( creds->addresses, &count );
- if ( count ) {
- cc_flat_data * addresses = (cc_flat_data *)flat + offset;
- header->address_count = htonl(count);
- header->addresses = htonl(offset);
- offset += count * sizeof(cc_flat_data);
-
- for ( i=0; i < count; i++ ) {
- addresses[i].type = htonl(creds->addresses[i]->type);
- if (creds->addresses[i]->length) {
- length = creds->addresses[i]->length;
- addresses[i].length = htonl(length);
- addresses[i].data = htonl(offset);
- /* TODO: verify that addresses are stored in network order */
- memcpy(flat + offset, creds->addresses[i]->data, length);
- offset += length;
- }
- }
- }
-
- header->ticket.type = htonl(creds->ticket.type);
- if (creds->ticket.length) {
- length = creds->ticket.length;
- header->ticket.length = htonl(length);
- header->ticket.data = htonl(offset);
- memcpy(flat + offset, creds->ticket.data, length);
- offset += length;
- }
-
- header->second_ticket.type = htonl(creds->second_ticket.type);
- if (creds->second_ticket.length) {
- length = creds->second_ticket.length;
- header->second_ticket.length = htonl(length);
- header->second_ticket.data = htonl(offset);
- memcpy(flat + offset, creds->second_ticket.data, length);
- offset += length;
- }
-
- cci_creds_cc_data_array_count_entries( creds->authdata, &count );
- if ( count ) {
- cc_flat_data * authdata = (cc_flat_data *)flat + offset;
-
- header->authdata_count = htonl(count);
- header->authdata = (offset);
- offset += count * sizeof(cc_flat_data);
-
- for ( i=0; i < count; i++ ) {
- authdata[i].type = htonl(creds->authdata[i]->type);
- if (creds->authdata[i]->length) {
- length = creds->authdata[i]->length;
- authdata[i].length = htonl(length);
- authdata[i].data = htonl(offset);
- memcpy(flat + offset, creds->authdata[i]->data, length);
- offset += length;
- }
- }
- }
-
- *pflat = flat;
- *plen = len;
- return ccNoError;
-}
-
-
-// TODO: a much better job of checking for out of memory errors
-// and validating that we do not read beyond the flat input
-// data buffer
-
-cc_int32
-cci_creds_v5_unmarshall( char * flat,
- cc_uint32 len,
- cc_credentials_union * creds_union)
-{
- struct cci_flat_creds_v5 * header;
- cc_credentials_v5_t * creds;
- cc_flat_data * flat_data;
- cc_time64 t64;
- cc_uint32 length;
- cc_uint32 count;
- cc_uint32 i;
-
- if ( flat == NULL || len == 0 || creds_union == NULL )
- return ccErrBadParam;
-
- creds_union->version = cc_credentials_v5;
-
- header = (struct cci_flat_creds_v5 *)flat;
-
- if ( ntohl(header->version) != FLAT_CREDS_V5_VERSION )
- return ccErrBadParam;
-
- creds = (cc_credentials_v5_t *)malloc(sizeof(cc_credentials_v5_t));
- if ( creds == NULL )
- return ccErrNoMem;
- memset(creds, 0, sizeof(cc_credentials_v5_t));
-
- if ( header->client.length ) {
- length = ntohl(header->client.length);
- creds->client = (char *)malloc(length);
- memcpy(creds->client, flat + header->client.data, length);
- }
-
- if ( header->server.length ) {
- length = ntohl(header->server.length);
- creds->server = (char *)malloc(length);
- memcpy(creds->server, flat + header->server.data, length);
- }
-
- creds->keyblock.type = ntohl(header->keyblock.type);
- if ( header->keyblock.length ) {
- length = ntohl(header->keyblock.length);
- creds->keyblock.length = length;
- creds->keyblock.data = malloc(length);
- memcpy(creds->keyblock.data, flat + header->keyblock.data, length);
- }
-
- /* TODO: need to perform overflow validation checks to ensure
- * that we do not attempt to store too large a value into cc_time_t
- * when it is a 32-bit field.
- */
- t64 = ntohll(header->authtime);
- creds->authtime = (cc_time)t64;
- t64 = ntohll(header->starttime);
- creds->starttime = (cc_time)t64;
- t64 = ntohll(header->endtime);
- creds->endtime = (cc_time)t64;
- t64 = ntohll(header->renew_till);
- creds->renew_till = (cc_time)t64;
-
- creds->is_skey = ntohl(header->is_skey);
- creds->ticket_flags = ntohl(header->ticket_flags);
-
- count = ntohl(header->address_count);
- creds->addresses = (cc_data **) malloc((count + 1) * sizeof(cc_data *));
- flat_data = (cc_flat_data *)flat + header->addresses;
- for ( i=0 ; i < count ; i++ ) {
- creds->addresses[i] = (cc_data *)malloc(sizeof(cc_data));
- creds->addresses[i]->type = ntohl(flat_data[i].type);
- length = ntohl(flat_data[i].length);
- creds->addresses[i]->length = length;
- if ( length ) {
- creds->addresses[i]->data = malloc(length);
- /* TODO: verify that addresses are stored in network order */
- memcpy(creds->addresses[i]->data, flat + flat_data[i].data, length);
- } else {
- creds->addresses[i]->data = NULL;
- }
- }
- creds->addresses[i] = NULL;
-
- creds->ticket.type = ntohl(header->ticket.type);
- length = ntohl(header->ticket.length);
- if ( length ) {
- creds->ticket.length = length;
- creds->ticket.data = malloc(length);
- memcpy(creds->ticket.data, flat + header->ticket.data, length);
- }
-
- creds->second_ticket.type = header->second_ticket.type;
- if ( header->second_ticket.length ) {
- creds->second_ticket.length = header->second_ticket.length;
- creds->second_ticket.data = malloc(creds->second_ticket.length);
- memcpy(creds->second_ticket.data, flat + header->second_ticket.data, creds->second_ticket.length);
- }
-
- count = ntohl(header->authdata_count);
- creds->authdata = (cc_data **) malloc((count + 1) * sizeof(cc_data *));
- flat_data = (cc_flat_data *)flat + header->authdata;
- for ( i=0 ; i < count ; i++ ) {
- creds->authdata[i] = (cc_data *)malloc(sizeof(cc_data));
- creds->authdata[i]->type = ntohl(flat_data[i].type);
- length = ntohl(flat_data[i].length);
- creds->authdata[i]->length = length;
- if ( length ) {
- creds->authdata[i]->data = malloc(length);
- memcpy(creds->authdata[i]->data, flat + flat_data[i].data, length);
- } else {
- creds->authdata[i]->data = NULL;
- }
- }
- creds->authdata[i] = NULL;
-
- creds_union->credentials.credentials_v5 = creds;
-
- return ccNoError;
-}
-
+/* $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). + * $ + */ + +/* marshall.c */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <CredentialsCache.h> +#include "msg.h" +#include "msg_headers.h" +#include "marshall.h" + +cc_int32 +cci_creds_v4_marshall( cc_credentials_v4_t * creds, + char ** pflat, + cc_uint32 * plen) +{ + cc_uint32 len; + char * flat; + cci_flat_creds_v4_t * header; + cc_time64 t64; + + if ( creds == NULL || pflat == NULL || plen == NULL ) + return ccErrBadParam; + + len = sizeof(cci_flat_creds_v4_t); + flat = (char *)malloc(len); + if ( flat == NULL ) + return ccErrNoMem; + memset(flat, 0, len); + + header = (cci_flat_creds_v4_t *)flat; + header->version = htonl(creds->version); + memcpy(header->principal, creds->principal, cc_v4_name_size); + memcpy(header->principal_instance, creds->principal_instance, cc_v4_instance_size); + memcpy(header->service, creds->service, cc_v4_name_size); + memcpy(header->service_instance, creds->service_instance, cc_v4_instance_size); + memcpy(header->realm, creds->realm, cc_v4_realm_size); + memcpy(header->session_key, creds->session_key, cc_v4_key_size); + header->kvno = htonl(creds->kvno); + header->string_to_key_type = htonl(creds->string_to_key_type); + t64 = creds->issue_date; + header->issue_date = htonll(t64); + header->lifetime = htonl(creds->lifetime); + /* TODO: verify that address is stored in host order */ + header->address = htonl(creds->address); + header->ticket_size = htonl(creds->ticket_size); + memcpy(header->ticket, creds->ticket, cc_v4_ticket_size); + + *pflat = flat; + *plen = len; + + return ccNoError; +} + +cc_int32 +cci_creds_v4_unmarshall( char * flat, + cc_uint32 len, + cc_credentials_union * creds_union) +{ + struct cci_flat_creds_v4 * header; + cc_credentials_v4_t * creds; + cc_time64 t64; + + if ( flat == NULL || len == 0 || creds_union == NULL ) + return ccErrBadParam; + + creds_union->version = cc_credentials_v4; + + header = (cci_flat_creds_v4_t *)flat; + + creds = (cc_credentials_v4_t *)malloc(sizeof(cc_credentials_v4_t)); + if ( creds == NULL ) + return ccErrNoMem; + + creds->version = ntohl(header->version); + memcpy(creds->principal, header->principal, cc_v4_name_size); + memcpy(creds->principal_instance, header->principal_instance, cc_v4_instance_size); + memcpy(creds->service, header->service, cc_v4_name_size); + memcpy(creds->service_instance, header->service_instance, cc_v4_instance_size); + memcpy(creds->realm, header->realm, cc_v4_realm_size); + memcpy(creds->session_key, header->session_key, cc_v4_key_size); + creds->kvno = htonl(header->kvno); + creds->string_to_key_type = htonl(header->string_to_key_type); + t64 = header->issue_date; + creds->issue_date = (cc_time64)ntohll(t64); + creds->lifetime = (cc_int32)ntohl(header->lifetime); + /* TODO: verify that address is stored in host order */ + creds->address = ntohl(header->address); + creds->ticket_size = ntohl(header->ticket_size); + memcpy(creds->ticket, header->ticket, cc_v4_ticket_size); + + creds_union->credentials.credentials_v4 = creds; + + return ccNoError; +} + + +static cc_int32 +cci_creds_cc_data_array_count_entries( cc_data ** array, cc_uint32 * pcount) +{ + cc_uint32 count; + + if (array == NULL) { + *pcount = 0; + return ccNoError; + } + + for ( count=0; array[count] != NULL ; count++) ; + + *pcount = count; + return ccNoError; +} + +static cc_int32 +cci_creds_v5_compute_flat_size( cc_credentials_v5_t * creds, cc_uint32 * plen) +{ + cc_uint32 len; + cc_uint32 i, count; + + len = sizeof(struct cci_flat_creds_v5); + + if (creds->client) + len += strlen(creds->client) + 1; + + if (creds->server) + len += strlen(creds->server) + 1; + + len += creds->keyblock.length; + + cci_creds_cc_data_array_count_entries( creds->addresses, &count ); + len += count * sizeof(cc_flat_data); + for ( i=0; i<count; i++ ) { + len += creds->addresses[i]->length; + } + + len += creds->ticket.length; + len += creds->second_ticket.length; + + cci_creds_cc_data_array_count_entries( creds->authdata, &count ); + len += count * sizeof(cc_flat_data); + for ( i=0; i<count; i++ ) { + len += creds->authdata[i]->length; + } + + *plen = len; + return ccNoError; +} + +cc_int32 +cci_creds_v5_marshall( cc_credentials_v5_t * creds, + char ** pflat, + cc_uint32 * plen) +{ + cc_uint32 len; + char * flat; + struct cci_flat_creds_v5 * header; + cc_uint32 length; + cc_uint32 offset; + cc_time64 t64; + cc_uint32 count; + cc_uint32 i; + + if ( creds == NULL || pflat == NULL || plen == NULL ) + return ccErrBadParam; + + cci_creds_v5_compute_flat_size(creds, &len); + + flat = (char *)malloc(len); + if ( flat == NULL ) + return ccErrNoMem; + memset(flat, 0, len); + + offset = sizeof(struct cci_flat_creds_v5); + header = (struct cci_flat_creds_v5 *)flat; + header->version = htonl(FLAT_CREDS_V5_VERSION); + if (creds->client) { + length = strlen(creds->client) + 1; + header->client.length = htonl(length); + header->client.data = htonl(offset); + memcpy(flat + offset, creds->client, length); + offset += length; + } + + if (creds->server) { + length = strlen(creds->server) + 1; + header->server.length = htonl(length); + header->server.data = htonl(offset); + memcpy(flat + offset, creds->server, length); + offset += length; + } + + header->keyblock.type = htonl(creds->keyblock.type); + if (creds->keyblock.length) { + length = creds->keyblock.length; + header->keyblock.length = htonl(length); + header->keyblock.data = htonl(offset); + memcpy(flat + offset, creds->keyblock.data, length); + offset += length; + } + + t64 = creds->authtime; + header->authtime = htonll(t64); + t64 = creds->starttime; + header->starttime = htonll(t64); + t64 = creds->endtime; + header->endtime = htonll(t64); + t64 = creds->renew_till; + header->renew_till = htonll(t64); + + header->is_skey = htonl(creds->is_skey); + header->ticket_flags = htonl(creds->ticket_flags); + + cci_creds_cc_data_array_count_entries( creds->addresses, &count ); + if ( count ) { + cc_flat_data * addresses = (cc_flat_data *)flat + offset; + header->address_count = htonl(count); + header->addresses = htonl(offset); + offset += count * sizeof(cc_flat_data); + + for ( i=0; i < count; i++ ) { + addresses[i].type = htonl(creds->addresses[i]->type); + if (creds->addresses[i]->length) { + length = creds->addresses[i]->length; + addresses[i].length = htonl(length); + addresses[i].data = htonl(offset); + /* TODO: verify that addresses are stored in network order */ + memcpy(flat + offset, creds->addresses[i]->data, length); + offset += length; + } + } + } + + header->ticket.type = htonl(creds->ticket.type); + if (creds->ticket.length) { + length = creds->ticket.length; + header->ticket.length = htonl(length); + header->ticket.data = htonl(offset); + memcpy(flat + offset, creds->ticket.data, length); + offset += length; + } + + header->second_ticket.type = htonl(creds->second_ticket.type); + if (creds->second_ticket.length) { + length = creds->second_ticket.length; + header->second_ticket.length = htonl(length); + header->second_ticket.data = htonl(offset); + memcpy(flat + offset, creds->second_ticket.data, length); + offset += length; + } + + cci_creds_cc_data_array_count_entries( creds->authdata, &count ); + if ( count ) { + cc_flat_data * authdata = (cc_flat_data *)flat + offset; + + header->authdata_count = htonl(count); + header->authdata = (offset); + offset += count * sizeof(cc_flat_data); + + for ( i=0; i < count; i++ ) { + authdata[i].type = htonl(creds->authdata[i]->type); + if (creds->authdata[i]->length) { + length = creds->authdata[i]->length; + authdata[i].length = htonl(length); + authdata[i].data = htonl(offset); + memcpy(flat + offset, creds->authdata[i]->data, length); + offset += length; + } + } + } + + *pflat = flat; + *plen = len; + return ccNoError; +} + + +// TODO: a much better job of checking for out of memory errors +// and validating that we do not read beyond the flat input +// data buffer + +cc_int32 +cci_creds_v5_unmarshall( char * flat, + cc_uint32 len, + cc_credentials_union * creds_union) +{ + struct cci_flat_creds_v5 * header; + cc_credentials_v5_t * creds; + cc_flat_data * flat_data; + cc_time64 t64; + cc_uint32 length; + cc_uint32 count; + cc_uint32 i; + + if ( flat == NULL || len == 0 || creds_union == NULL ) + return ccErrBadParam; + + creds_union->version = cc_credentials_v5; + + header = (struct cci_flat_creds_v5 *)flat; + + if ( ntohl(header->version) != FLAT_CREDS_V5_VERSION ) + return ccErrBadParam; + + creds = (cc_credentials_v5_t *)malloc(sizeof(cc_credentials_v5_t)); + if ( creds == NULL ) + return ccErrNoMem; + memset(creds, 0, sizeof(cc_credentials_v5_t)); + + if ( header->client.length ) { + length = ntohl(header->client.length); + creds->client = (char *)malloc(length); + memcpy(creds->client, flat + header->client.data, length); + } + + if ( header->server.length ) { + length = ntohl(header->server.length); + creds->server = (char *)malloc(length); + memcpy(creds->server, flat + header->server.data, length); + } + + creds->keyblock.type = ntohl(header->keyblock.type); + if ( header->keyblock.length ) { + length = ntohl(header->keyblock.length); + creds->keyblock.length = length; + creds->keyblock.data = malloc(length); + memcpy(creds->keyblock.data, flat + header->keyblock.data, length); + } + + /* TODO: need to perform overflow validation checks to ensure + * that we do not attempt to store too large a value into cc_time_t + * when it is a 32-bit field. + */ + t64 = ntohll(header->authtime); + creds->authtime = (cc_time)t64; + t64 = ntohll(header->starttime); + creds->starttime = (cc_time)t64; + t64 = ntohll(header->endtime); + creds->endtime = (cc_time)t64; + t64 = ntohll(header->renew_till); + creds->renew_till = (cc_time)t64; + + creds->is_skey = ntohl(header->is_skey); + creds->ticket_flags = ntohl(header->ticket_flags); + + count = ntohl(header->address_count); + creds->addresses = (cc_data **) malloc((count + 1) * sizeof(cc_data *)); + flat_data = (cc_flat_data *)flat + header->addresses; + for ( i=0 ; i < count ; i++ ) { + creds->addresses[i] = (cc_data *)malloc(sizeof(cc_data)); + creds->addresses[i]->type = ntohl(flat_data[i].type); + length = ntohl(flat_data[i].length); + creds->addresses[i]->length = length; + if ( length ) { + creds->addresses[i]->data = malloc(length); + /* TODO: verify that addresses are stored in network order */ + memcpy(creds->addresses[i]->data, flat + flat_data[i].data, length); + } else { + creds->addresses[i]->data = NULL; + } + } + creds->addresses[i] = NULL; + + creds->ticket.type = ntohl(header->ticket.type); + length = ntohl(header->ticket.length); + if ( length ) { + creds->ticket.length = length; + creds->ticket.data = malloc(length); + memcpy(creds->ticket.data, flat + header->ticket.data, length); + } + + creds->second_ticket.type = header->second_ticket.type; + if ( header->second_ticket.length ) { + creds->second_ticket.length = header->second_ticket.length; + creds->second_ticket.data = malloc(creds->second_ticket.length); + memcpy(creds->second_ticket.data, flat + header->second_ticket.data, creds->second_ticket.length); + } + + count = ntohl(header->authdata_count); + creds->authdata = (cc_data **) malloc((count + 1) * sizeof(cc_data *)); + flat_data = (cc_flat_data *)flat + header->authdata; + for ( i=0 ; i < count ; i++ ) { + creds->authdata[i] = (cc_data *)malloc(sizeof(cc_data)); + creds->authdata[i]->type = ntohl(flat_data[i].type); + length = ntohl(flat_data[i].length); + creds->authdata[i]->length = length; + if ( length ) { + creds->authdata[i]->data = malloc(length); + memcpy(creds->authdata[i]->data, flat + flat_data[i].data, length); + } else { + creds->authdata[i]->data = NULL; + } + } + creds->authdata[i] = NULL; + + creds_union->credentials.credentials_v5 = creds; + + return ccNoError; +} + diff --git a/src/lib/ccapi/common/msg.c b/src/lib/ccapi/common/msg.c index 789fc8746..fa051e95a 100644 --- a/src/lib/ccapi/common/msg.c +++ b/src/lib/ccapi/common/msg.c @@ -1,622 +1,622 @@ -/* $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).
- * $
- */
-
-/*
- * Verifiable, extensible message format.
- *
- * Format:
- * <size of header block (header_len)>
- * <size of *entire* message, including previous field (flat_len)>
- * <message type (type)>
- * <type specific header (header)>
- * <magic number (magic)>
- * <data blob 1 length>
- * <data blob 1>
- * <data blob 2 length>
- * <data blob 2>
- * ...
- * <magic number (magic)>
- *
- * If the header has variable length data it is included in the data blobs.
- * The header field has the offset from the beginning of the message of the 1st
- * byte of the data and the length of the data.
- */
-
-#include "CredentialsCache.h"
-#include "msg.h"
-#include "generic_lists.h"
-
-#include <stdlib.h>
-#include <memory.h>
-#include <stdio.h>
-#include <string.h>
-
-/**
- * cci_msg_new()
- *
- * Purpose: Allocate and initialize a new cc_msg_t structure
- *
- * Input parameter (type) in host order
- *
- * Return: non-NULL, the msg
- * NULL, failure
- *
- * Errors: ccErrNoMem
- *
- */
-cc_int32
-cci_msg_new(cc_uint32 type, cc_msg_t** msgpp)
-{
- // type should be validated. If invalid set error to ccErrBadParam
- cc_msg_t* msg;
-
- if ( type > CC_MSG_MAX_TYPE || msgpp == NULL )
- return ccErrBadParam;
-
- msg = (cc_msg_t*)malloc(sizeof(cc_msg_t));
- if (msg == NULL)
- return ccErrNoMem;
-
- msg->type = type;
- msg->flat = NULL;
- msg->header = NULL;
- msg->flat_len = 0;
- msg->header_len = 0;
- msg->magic = 0;
- cci_generic_list_new(&msg->data_blobs);
- if (msg->data_blobs == NULL) {
- // pass on error from previous call
- free(msg);
- return ccErrNoMem;
- }
-
- *msgpp = msg;
- return ccNoError;
-}
-
-/**
- * cci_msg_calc_header_size()
- *
- * Purpose: Calculates the size of the header
- *
- * Return: the size in bytes
- *
- * Errors: ccErrBadParam
- *
- */
-cc_int32
-cci_msg_calc_header_size(cc_msg_t* msg, cc_uint32 * lenp)
-{
- int header_len = 12; /* header size, entire size, type */
-
- if ( msg == NULL || lenp == NULL )
- return ccErrBadParam;
-
- header_len += msg->header_len;
- *lenp = header_len;
- return ccNoError;
-}
-
-/**
- * cci_msg_calc_size()
- *
- * Purpose: Calculates the size of the message
- * (does not include the magic bytes)
- *
- * Return: the size in bytes
- *
- * Errors: ccErrBadParam
- *
- */
-cc_int32
-cci_msg_calc_size(cc_msg_t* msg, cc_uint32 * lenp)
-{
- cc_uint32 flat_len;
- cc_generic_list_node_t* gen_node;
- cc_generic_iterate_t* gen_iterator;
- cc_int32 code;
-
- if ( msg == NULL || lenp == NULL )
- return ccErrBadParam;
-
- code = cci_msg_calc_header_size(msg, &flat_len);
- if (code != ccNoError)
- goto bad;
-
- code = cci_generic_list_iterator(msg->data_blobs, &gen_iterator);
- if ( code != ccNoError )
- goto bad;
-
- while (cci_generic_iterate_has_next(gen_iterator)) {
- code = cci_generic_iterate_next(gen_iterator, &gen_node);
- if (code != ccNoError)
- break;
- flat_len += gen_node->len + BLOB_LEN;
- }
- cci_generic_free_iterator(gen_iterator);
- if (code != ccNoError)
- goto bad;
-
- flat_len += MAGIC_HEAD_LEN + MAGIC_DATA_LEN;
- *lenp = flat_len;
-
- bad:
- return code;
-}
-
-/**
- * cci_msg_add_data_blob()
- *
- * Purpose: Adds 'len' bytes of data to the msg
- *
- * Return:
- *
- * Errors:
- *
- */
-cc_int32
-cci_msg_add_data_blob(cc_msg_t* msg, void *data, cc_uint32 len, cc_uint32 *lenp)
-{
- cc_int32 code;
-
- if (msg == NULL || data == NULL || len <= 0 || lenp == NULL)
- return ccErrBadParam;
-
- code = cci_generic_list_append(msg->data_blobs, data, len, NULL);
- if ( code != ccNoError )
- return code;
- return cci_msg_calc_blob_pos(msg, data, len, lenp);
-}
-
-/**
- * cc_msg_
- *
- * Purpose:
- *
- * Return:
- *
- * Errors:
- *
- */
-cc_int32
-cci_msg_calc_blob_pos(cc_msg_t* msg, void *data, cc_uint32 len, cc_uint32 * posp)
-{
- cc_uint32 pos;
- cc_generic_list_node_t* gen_node;
- cc_generic_iterate_t* gen_iterator;
- cc_int32 code;
-
- code = cci_msg_calc_header_size(msg, &pos);
- pos += sizeof(cc_uint32); /*+ sizeof(cc_uint32) for magic*/
-
- code = cci_generic_list_iterator(msg->data_blobs, &gen_iterator);
- while (cci_generic_iterate_has_next(gen_iterator)) {
- code = cci_generic_iterate_next(gen_iterator, &gen_node);
- if (gen_node->len != len && gen_node->data != data) {
- pos += gen_node->len + sizeof(cc_uint32);
- } else {
- cci_generic_free_iterator(gen_iterator);
- *posp = pos + sizeof(cc_uint32);
- return ccNoError;
- }
- }
-
- cci_generic_free_iterator(gen_iterator);
- return ccIteratorEnd;
-}
-
-/**
- * cc_msg_
- *
- * Purpose:
- *
- * Return:
- *
- * Errors:
- *
- */
-cc_int32
-cci_msg_add_header(cc_msg_t* msg, void *header, cc_uint32 header_len)
-{
- if ( msg == NULL || header == NULL )
- return ccErrBadParam;
-
- msg->header = header;
- msg->header_len = header_len;
- return ccNoError;
-}
-
-
-/**
- * cc_msg_
- *
- * Purpose:
- *
- * Return:
- *
- * Errors:
- *
- */
-cc_int32
-cci_msg_flatten(cc_msg_t* msg, void **flatpp)
-{
- cc_generic_list_node_t* gen_node;
- cc_generic_iterate_t* gen_iterator;
- char *cur_pos;
- cc_uint32 zero = 0;
- cc_uint32 magic = 0;
- cc_uint32 msg_len;
- cc_uint32 u32;
- cc_int32 code;
-
- if (msg == NULL)
- return ccErrBadParam;
-
- code = cci_msg_calc_size(msg,&msg->flat_len);
- if ( code != ccNoError )
- return code;
-
- if (msg->flat_len > CC_MSG_MAX_SIZE)
- return ccErrBadParam;
-
- msg->flat = (void *)malloc(msg->flat_len);
- if (msg->flat == NULL)
- return ccErrNoMem;
-
- cur_pos = msg->flat;
-
- u32 = htonl(msg->header_len);
- memcpy(cur_pos,&u32,sizeof(cc_uint32));
- cur_pos+=sizeof(cc_uint32);
-
- u32 = htonl(msg->flat_len);
- memcpy(cur_pos,&u32,sizeof(cc_uint32));
- cur_pos+=sizeof(cc_uint32);
-
- u32 = htonl(msg->type);
- memcpy(cur_pos,&u32,sizeof(cc_uint32));
- cur_pos+=sizeof(cc_uint32);
-
- /* header data is already in network order */
- memcpy(cur_pos, msg->header, msg->header_len);
- cur_pos += msg->header_len;
-
- u32 = htonl(zero);
- memcpy(cur_pos, &u32, sizeof(cc_uint32)); /*will be magic number later*/
- cur_pos += sizeof(cc_uint32);
-
- code = cci_generic_list_iterator(msg->data_blobs, &gen_iterator);
- if ( code != ccNoError ) {
- free(msg->flat);
- return code;
- }
-
- while (cci_generic_iterate_has_next(gen_iterator)) {
- code = cci_generic_iterate_next(gen_iterator, &gen_node);
- if (code != ccNoError) {
- free(gen_iterator);
- free(msg->flat);
- return code;
- }
- u32 = htonl(gen_node->len);
- memcpy(cur_pos, &u32, sizeof(cc_uint32));
- cur_pos+=sizeof(cc_uint32);
-
- /* data already in network order */
- memcpy(cur_pos, gen_node->data, gen_node->len);
- cur_pos += gen_node->len;
- }
- free(gen_iterator);
-
- u32 = htonl(zero);
- memcpy(cur_pos, &u32, sizeof(cc_uint32)); /*magic number will go here later*/
- cur_pos += sizeof(cc_uint32);
-
- if (cur_pos - (char *)msg->flat != msg->flat_len) {
- fprintf(stderr, "ERROR cur_pos - msg->flat = %d\n",msg->flat_len);
- }
-
- cci_msg_calc_magic(msg->flat, msg->flat_len, &magic);
- printf("magic = %d\n",magic);
-
- cci_msg_calc_header_size(msg, &msg_len);
- memcpy((char *)msg->flat + msg_len, &magic, sizeof(cc_uint32));
- memcpy((char *)msg->flat + msg->flat_len - sizeof(cc_uint32), &magic, sizeof(cc_uint32));
-
- if ( flatpp != NULL )
- *flatpp = msg->flat;
-
- return ccNoError;
-}
-
-/**
- * cc_msg_
- *
- * Purpose:
- *
- * Return:
- *
- * Errors:
- *
- */
-cc_int32
-cci_msg_calc_magic(void *flat, int flat_len, cc_uint32 * magicp)
-{
- cc_uint32 magic = 0;
- int i;
-
- for (i = 0; i < flat_len; i += sizeof(cc_uint32)) {
- magic = magic ^ *(int *)((char *)flat + i);
- }
- *magicp = htonl(magic);
- return ccNoError;
-}
-
-/**
- * cc_msg_
- *
- * Purpose:
- *
- * Return:
- *
- * Errors:
- *
- */
-cc_int32
-cci_msg_verify(void *flat, int flat_len, cc_uint32 * validp)
-{
- cc_uint32 *magic1, *magic2;
- cc_uint32 *pheader_len;
- cc_uint32 header_len;
- cc_uint32 *ptotal_len;
- cc_uint32 total_len;
- cc_uint32 *pblob_len;
- cc_uint32 blob_len;
- cc_uint32 *ptype;
- cc_uint32 type;
- cc_uint32 num_blobs = 0;
- cc_uint32 zero = 0;
- cc_uint32 msg_magic, msg_magic2;
-
- if (flat == NULL || flat_len <= 0 || validp == NULL)
- return ccErrBadParam;
-
- pheader_len = flat;
- ptotal_len = (cc_uint32 *)((char *)pheader_len + sizeof(cc_uint32));
- ptype = (cc_uint32 *)((char *)ptotal_len + sizeof(cc_uint32));
-
- header_len = ntohl(*pheader_len);
- total_len = ntohl(*ptotal_len);
- type = ntohl(*ptype);
-
- if (total_len != flat_len) {
- *validp = 0;
- return ccNoError;
- }
-
- if (header_len > flat_len) {
- /*too weak. We could verify header_len against type spec header.*/
- *validp = 0;
- return ccNoError;
- }
- if (type > CC_MSG_MAX_TYPE) {
- *validp = 0;
- return ccNoError;
- }
-
- magic1 = (cc_uint32 *)((char *)ptype + sizeof(cc_uint32) + header_len);
- if ((char *)magic1 - (char *)flat == (flat_len - 8)) {
- /*There are no data blobs*/
- magic2 = (cc_uint32 *)((char *)magic1 + sizeof(cc_uint32));
- num_blobs = 0;
- } else {
- pblob_len = (cc_uint32 *)((char *)magic1 + sizeof(cc_uint32));
- num_blobs = 1;
- blob_len = ntohl(*pblob_len);
-
- while (blob_len + sizeof(cc_uint32) + ((char *)pblob_len - (char *)flat) < (flat_len - sizeof(cc_uint32))) {
- pblob_len = (cc_uint32 *)((char *)pblob_len + blob_len + sizeof(cc_uint32));
- num_blobs++;
- blob_len = ntohl(*pblob_len);
- }
-
- if (blob_len + sizeof(cc_uint32) + ((char *)pblob_len - (char *)flat) != (flat_len - sizeof(cc_uint32))) {
- /*blobs didn't line up*/
- *validp = 0;
- return ccNoError;
- }
- magic2 = (cc_uint32 *)((char *)pblob_len + blob_len + sizeof(cc_uint32)); /*2nd magic should be directly after the last blob*/
- }
-
- if (*magic1 != *magic2) {
- *validp = 0;
- return ccNoError;
- }
- msg_magic = *magic1;
-
- printf("%d %d\n", (char *)magic1 - (char *)flat, (char *)magic2 - (char *)flat);
-
- memcpy(magic1, &zero, sizeof(cc_uint32));
- memcpy(magic2, &zero, sizeof(cc_uint32));
- cci_msg_calc_magic(flat, flat_len, &msg_magic2);
- /* both msg_magic and msg_magic2 are in network order */
- if (msg_magic != msg_magic2) {
- *validp = 0;
- return ccNoError;
- }
- memcpy(magic1, &msg_magic, sizeof(cc_uint32));
- memcpy(magic2, &msg_magic, sizeof(cc_uint32));
-
- *validp = 1;
- return ccNoError;
-}
-
-/**
- * cc_msg_
- *
- * Purpose:
- *
- * Return:
- *
- * Errors:
- *
- */
-cc_int32
-cci_msg_unflatten(void *flat, int flat_len, cc_msg_t** msgpp)
-{
- cc_msg_t* msg;
- char *cur_pos;
- cc_uint32 blob_len;
- char *blob;
- cc_uint32 valid;
- cc_int32 code;
-
- if ( flat == NULL || flat_len <= 0 || msgpp == NULL )
- return ccErrBadParam;
-
- code = cci_msg_new(0, &msg);
- if (code)
- return code;
-
- cci_msg_verify(flat, flat_len, &valid);
- if (valid != 1) {
- cci_msg_destroy(msg);
- return ccErrBadParam;
- }
-
- cur_pos = flat;
- msg->flat = flat;
-
- msg->header_len = ntohl(*(cc_uint32 *)cur_pos);
- cur_pos += sizeof(cc_uint32);
-
- msg->flat_len = ntohl(*(cc_uint32 *)cur_pos);
- cur_pos += sizeof(cc_uint32);
-
- msg->type = ntohl(*(cc_uint32 *)cur_pos);
- cur_pos += sizeof(cc_uint32);
-
- msg->header = (void *)malloc(msg->header_len);
- if (msg->header == NULL) {
- cci_msg_destroy(msg);
- return ccErrNoMem;
- }
- memcpy(msg->header, cur_pos, msg->header_len);
- cur_pos += msg->header_len;
-
- msg->magic = ntohl(*(cc_uint32 *)cur_pos);
- cur_pos += sizeof(cc_uint32);
-
- if (cur_pos - (char *)flat != flat_len - 8) { /*at least 1 blob*/
- blob_len = ntohl(*(cc_uint32 *)cur_pos);
- while (blob_len + (cur_pos - (char *)flat) + sizeof(cc_uint32) <= flat_len - sizeof(cc_uint32)) {
- blob = (void *)malloc(blob_len);
- if (blob == NULL) {
- cci_msg_destroy(msg);
- return ccErrNoMem;
- }
- memcpy(blob, cur_pos + sizeof(cc_uint32), blob_len);
- cci_generic_list_append(msg->data_blobs, blob, blob_len, NULL);
-
- cur_pos += sizeof(cc_uint32) + blob_len;
- blob_len = ntohl(*(int *)cur_pos);
- }
- }
- *msgpp = msg;
- return ccNoError;
-}
-
-cc_int32
-cci_msg_retrieve_blob(cc_msg_t* msg, cc_uint32 blob_offset, cc_uint32 blob_len, char **blobp)
-{
- cc_generic_iterate_t* gen_iterator;
- cc_generic_list_node_t* gen_node;
- void *ret;
- cc_uint32 blob_pos;
- cc_int32 code;
-
- /*Ensure that the message has been unflattened*/
- if ( msg == NULL || msg->flat == NULL || blob_offset > msg->flat_len ||
- blob_len > msg->flat_len - blob_offset || blobp == NULL)
- return ccErrBadParam;
-
- code = cci_generic_list_iterator(msg->data_blobs, &gen_iterator);
- while (cci_generic_iterate_has_next(gen_iterator)) {
- code = cci_generic_iterate_next(gen_iterator, &gen_node);
- code = cci_msg_calc_blob_pos(msg, gen_node->data, gen_node->len, &blob_pos);
- if (blob_pos == blob_offset && gen_node->len == blob_len) {
- free(gen_iterator);
- ret = (void *)malloc(blob_len);
- if (ret == NULL)
- return ccErrNoMem;
- memcpy(ret,(char *)msg->flat + blob_offset, blob_len);
- *blobp = ret;
- return ccNoError;
- }
- }
- free(gen_iterator);
- return ccIteratorEnd;
-}
-
-/**
- * cc_msg_
- *
- * Purpose:
- *
- * Return:
- *
- * Errors:
- *
- */
-cc_int32
-cci_msg_destroy(cc_msg_t* msg)
-{
- if (msg->flat != NULL)
- free(msg->flat);
- if (msg->header != NULL)
- free(msg->header);
- cci_generic_list_destroy(msg->data_blobs);
- free(msg);
- return ccNoError;
-}
-
+/* $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). + * $ + */ + +/* + * Verifiable, extensible message format. + * + * Format: + * <size of header block (header_len)> + * <size of *entire* message, including previous field (flat_len)> + * <message type (type)> + * <type specific header (header)> + * <magic number (magic)> + * <data blob 1 length> + * <data blob 1> + * <data blob 2 length> + * <data blob 2> + * ... + * <magic number (magic)> + * + * If the header has variable length data it is included in the data blobs. + * The header field has the offset from the beginning of the message of the 1st + * byte of the data and the length of the data. + */ + +#include "CredentialsCache.h" +#include "msg.h" +#include "generic_lists.h" + +#include <stdlib.h> +#include <memory.h> +#include <stdio.h> +#include <string.h> + +/** + * cci_msg_new() + * + * Purpose: Allocate and initialize a new cc_msg_t structure + * + * Input parameter (type) in host order + * + * Return: non-NULL, the msg + * NULL, failure + * + * Errors: ccErrNoMem + * + */ +cc_int32 +cci_msg_new(cc_uint32 type, cc_msg_t** msgpp) +{ + // type should be validated. If invalid set error to ccErrBadParam + cc_msg_t* msg; + + if ( type > CC_MSG_MAX_TYPE || msgpp == NULL ) + return ccErrBadParam; + + msg = (cc_msg_t*)malloc(sizeof(cc_msg_t)); + if (msg == NULL) + return ccErrNoMem; + + msg->type = type; + msg->flat = NULL; + msg->header = NULL; + msg->flat_len = 0; + msg->header_len = 0; + msg->magic = 0; + cci_generic_list_new(&msg->data_blobs); + if (msg->data_blobs == NULL) { + // pass on error from previous call + free(msg); + return ccErrNoMem; + } + + *msgpp = msg; + return ccNoError; +} + +/** + * cci_msg_calc_header_size() + * + * Purpose: Calculates the size of the header + * + * Return: the size in bytes + * + * Errors: ccErrBadParam + * + */ +cc_int32 +cci_msg_calc_header_size(cc_msg_t* msg, cc_uint32 * lenp) +{ + int header_len = 12; /* header size, entire size, type */ + + if ( msg == NULL || lenp == NULL ) + return ccErrBadParam; + + header_len += msg->header_len; + *lenp = header_len; + return ccNoError; +} + +/** + * cci_msg_calc_size() + * + * Purpose: Calculates the size of the message + * (does not include the magic bytes) + * + * Return: the size in bytes + * + * Errors: ccErrBadParam + * + */ +cc_int32 +cci_msg_calc_size(cc_msg_t* msg, cc_uint32 * lenp) +{ + cc_uint32 flat_len; + cc_generic_list_node_t* gen_node; + cc_generic_iterate_t* gen_iterator; + cc_int32 code; + + if ( msg == NULL || lenp == NULL ) + return ccErrBadParam; + + code = cci_msg_calc_header_size(msg, &flat_len); + if (code != ccNoError) + goto bad; + + code = cci_generic_list_iterator(msg->data_blobs, &gen_iterator); + if ( code != ccNoError ) + goto bad; + + while (cci_generic_iterate_has_next(gen_iterator)) { + code = cci_generic_iterate_next(gen_iterator, &gen_node); + if (code != ccNoError) + break; + flat_len += gen_node->len + BLOB_LEN; + } + cci_generic_free_iterator(gen_iterator); + if (code != ccNoError) + goto bad; + + flat_len += MAGIC_HEAD_LEN + MAGIC_DATA_LEN; + *lenp = flat_len; + + bad: + return code; +} + +/** + * cci_msg_add_data_blob() + * + * Purpose: Adds 'len' bytes of data to the msg + * + * Return: + * + * Errors: + * + */ +cc_int32 +cci_msg_add_data_blob(cc_msg_t* msg, void *data, cc_uint32 len, cc_uint32 *lenp) +{ + cc_int32 code; + + if (msg == NULL || data == NULL || len <= 0 || lenp == NULL) + return ccErrBadParam; + + code = cci_generic_list_append(msg->data_blobs, data, len, NULL); + if ( code != ccNoError ) + return code; + return cci_msg_calc_blob_pos(msg, data, len, lenp); +} + +/** + * cc_msg_ + * + * Purpose: + * + * Return: + * + * Errors: + * + */ +cc_int32 +cci_msg_calc_blob_pos(cc_msg_t* msg, void *data, cc_uint32 len, cc_uint32 * posp) +{ + cc_uint32 pos; + cc_generic_list_node_t* gen_node; + cc_generic_iterate_t* gen_iterator; + cc_int32 code; + + code = cci_msg_calc_header_size(msg, &pos); + pos += sizeof(cc_uint32); /*+ sizeof(cc_uint32) for magic*/ + + code = cci_generic_list_iterator(msg->data_blobs, &gen_iterator); + while (cci_generic_iterate_has_next(gen_iterator)) { + code = cci_generic_iterate_next(gen_iterator, &gen_node); + if (gen_node->len != len && gen_node->data != data) { + pos += gen_node->len + sizeof(cc_uint32); + } else { + cci_generic_free_iterator(gen_iterator); + *posp = pos + sizeof(cc_uint32); + return ccNoError; + } + } + + cci_generic_free_iterator(gen_iterator); + return ccIteratorEnd; +} + +/** + * cc_msg_ + * + * Purpose: + * + * Return: + * + * Errors: + * + */ +cc_int32 +cci_msg_add_header(cc_msg_t* msg, void *header, cc_uint32 header_len) +{ + if ( msg == NULL || header == NULL ) + return ccErrBadParam; + + msg->header = header; + msg->header_len = header_len; + return ccNoError; +} + + +/** + * cc_msg_ + * + * Purpose: + * + * Return: + * + * Errors: + * + */ +cc_int32 +cci_msg_flatten(cc_msg_t* msg, void **flatpp) +{ + cc_generic_list_node_t* gen_node; + cc_generic_iterate_t* gen_iterator; + unsigned char *cur_pos; + cc_uint32 zero = 0; + cc_uint32 magic = 0; + cc_uint32 msg_len; + cc_uint32 u32; + cc_int32 code; + + if (msg == NULL) + return ccErrBadParam; + + code = cci_msg_calc_size(msg,&msg->flat_len); + if ( code != ccNoError ) + return code; + + if (msg->flat_len > CC_MSG_MAX_SIZE) + return ccErrBadParam; + + msg->flat = (void *)malloc(msg->flat_len); + if (msg->flat == NULL) + return ccErrNoMem; + + cur_pos = msg->flat; + + u32 = htonl(msg->header_len); + memcpy(cur_pos,&u32,sizeof(cc_uint32)); + cur_pos+=sizeof(cc_uint32); + + u32 = htonl(msg->flat_len); + memcpy(cur_pos,&u32,sizeof(cc_uint32)); + cur_pos+=sizeof(cc_uint32); + + u32 = htonl(msg->type); + memcpy(cur_pos,&u32,sizeof(cc_uint32)); + cur_pos+=sizeof(cc_uint32); + + /* header data is already in network order */ + memcpy(cur_pos, msg->header, msg->header_len); + cur_pos += msg->header_len; + + u32 = htonl(zero); + memcpy(cur_pos, &u32, sizeof(cc_uint32)); /*will be magic number later*/ + cur_pos += sizeof(cc_uint32); + + code = cci_generic_list_iterator(msg->data_blobs, &gen_iterator); + if ( code != ccNoError ) { + free(msg->flat); + return code; + } + + while (cci_generic_iterate_has_next(gen_iterator)) { + code = cci_generic_iterate_next(gen_iterator, &gen_node); + if (code != ccNoError) { + free(gen_iterator); + free(msg->flat); + return code; + } + u32 = htonl(gen_node->len); + memcpy(cur_pos, &u32, sizeof(cc_uint32)); + cur_pos+=sizeof(cc_uint32); + + /* data already in network order */ + memcpy(cur_pos, gen_node->data, gen_node->len); + cur_pos += gen_node->len; + } + free(gen_iterator); + + u32 = htonl(zero); + memcpy(cur_pos, &u32, sizeof(cc_uint32)); /*magic number will go here later*/ + cur_pos += sizeof(cc_uint32); + + if (cur_pos - (unsigned char *)msg->flat != msg->flat_len) { + fprintf(stderr, "ERROR cur_pos - msg->flat = %d\n",msg->flat_len); + } + + cci_msg_calc_magic(msg->flat, msg->flat_len, &magic); + printf("magic = %d\n",magic); + + cci_msg_calc_header_size(msg, &msg_len); + memcpy((char *)msg->flat + msg_len, &magic, sizeof(cc_uint32)); + memcpy((char *)msg->flat + msg->flat_len - sizeof(cc_uint32), &magic, sizeof(cc_uint32)); + + if ( flatpp != NULL ) + *flatpp = msg->flat; + + return ccNoError; +} + +/** + * cc_msg_ + * + * Purpose: + * + * Return: + * + * Errors: + * + */ +cc_int32 +cci_msg_calc_magic(void *flat, cc_uint32 flat_len, cc_uint32 * magicp) +{ + cc_uint32 magic = 0; + cc_uint32 i; + + for (i = 0; i < flat_len; i += sizeof(cc_uint32)) { + magic = magic ^ *(int *)((char *)flat + i); + } + *magicp = htonl(magic); + return ccNoError; +} + +/** + * cc_msg_ + * + * Purpose: + * + * Return: + * + * Errors: + * + */ +cc_int32 +cci_msg_verify(void *flat, cc_uint32 flat_len, cc_uint32 * validp) +{ + cc_uint32 *magic1, *magic2; + cc_uint32 *pheader_len; + cc_uint32 header_len; + cc_uint32 *ptotal_len; + cc_uint32 total_len; + cc_uint32 *pblob_len; + cc_uint32 blob_len; + cc_uint32 *ptype; + cc_uint32 type; + cc_uint32 num_blobs = 0; + cc_uint32 zero = 0; + cc_uint32 msg_magic, msg_magic2; + + if (flat == NULL || flat_len <= 0 || validp == NULL) + return ccErrBadParam; + + pheader_len = flat; + ptotal_len = (cc_uint32 *)((char *)pheader_len + sizeof(cc_uint32)); + ptype = (cc_uint32 *)((char *)ptotal_len + sizeof(cc_uint32)); + + header_len = ntohl(*pheader_len); + total_len = ntohl(*ptotal_len); + type = ntohl(*ptype); + + if (total_len != flat_len) { + *validp = 0; + return ccNoError; + } + + if (header_len > flat_len) { + /*too weak. We could verify header_len against type spec header.*/ + *validp = 0; + return ccNoError; + } + if (type > CC_MSG_MAX_TYPE) { + *validp = 0; + return ccNoError; + } + + magic1 = (cc_uint32 *)((char *)ptype + sizeof(cc_uint32) + header_len); + if ((char *)magic1 - (char *)flat == (flat_len - 8)) { + /*There are no data blobs*/ + magic2 = (cc_uint32 *)((char *)magic1 + sizeof(cc_uint32)); + num_blobs = 0; + } else { + pblob_len = (cc_uint32 *)((char *)magic1 + sizeof(cc_uint32)); + num_blobs = 1; + blob_len = ntohl(*pblob_len); + + while (blob_len + sizeof(cc_uint32) + ((char *)pblob_len - (char *)flat) < (flat_len - sizeof(cc_uint32))) { + pblob_len = (cc_uint32 *)((char *)pblob_len + blob_len + sizeof(cc_uint32)); + num_blobs++; + blob_len = ntohl(*pblob_len); + } + + if (blob_len + sizeof(cc_uint32) + ((char *)pblob_len - (char *)flat) != (flat_len - sizeof(cc_uint32))) { + /*blobs didn't line up*/ + *validp = 0; + return ccNoError; + } + magic2 = (cc_uint32 *)((char *)pblob_len + blob_len + sizeof(cc_uint32)); /*2nd magic should be directly after the last blob*/ + } + + if (*magic1 != *magic2) { + *validp = 0; + return ccNoError; + } + msg_magic = *magic1; + + printf("%d %d\n", (char *)magic1 - (char *)flat, (char *)magic2 - (char *)flat); + + memcpy(magic1, &zero, sizeof(cc_uint32)); + memcpy(magic2, &zero, sizeof(cc_uint32)); + cci_msg_calc_magic(flat, flat_len, &msg_magic2); + /* both msg_magic and msg_magic2 are in network order */ + if (msg_magic != msg_magic2) { + *validp = 0; + return ccNoError; + } + memcpy(magic1, &msg_magic, sizeof(cc_uint32)); + memcpy(magic2, &msg_magic, sizeof(cc_uint32)); + + *validp = 1; + return ccNoError; +} + +/** + * cc_msg_ + * + * Purpose: + * + * Return: + * + * Errors: + * + */ +cc_int32 +cci_msg_unflatten(void *flat, cc_uint32 flat_len, cc_msg_t** msgpp) +{ + cc_msg_t* msg; + char *cur_pos; + cc_uint32 blob_len; + char *blob; + cc_uint32 valid; + cc_int32 code; + + if ( flat == NULL || flat_len <= 0 || msgpp == NULL ) + return ccErrBadParam; + + code = cci_msg_new(0, &msg); + if (code) + return code; + + cci_msg_verify(flat, flat_len, &valid); + if (valid != 1) { + cci_msg_destroy(msg); + return ccErrBadParam; + } + + cur_pos = flat; + msg->flat = flat; + + msg->header_len = ntohl(*(cc_uint32 *)cur_pos); + cur_pos += sizeof(cc_uint32); + + msg->flat_len = ntohl(*(cc_uint32 *)cur_pos); + cur_pos += sizeof(cc_uint32); + + msg->type = ntohl(*(cc_uint32 *)cur_pos); + cur_pos += sizeof(cc_uint32); + + msg->header = (void *)malloc(msg->header_len); + if (msg->header == NULL) { + cci_msg_destroy(msg); + return ccErrNoMem; + } + memcpy(msg->header, cur_pos, msg->header_len); + cur_pos += msg->header_len; + + msg->magic = ntohl(*(cc_uint32 *)cur_pos); + cur_pos += sizeof(cc_uint32); + + if (cur_pos - (char *)flat != flat_len - 8) { /*at least 1 blob*/ + blob_len = ntohl(*(cc_uint32 *)cur_pos); + while (blob_len + (cur_pos - (char *)flat) + sizeof(cc_uint32) <= flat_len - sizeof(cc_uint32)) { + blob = (void *)malloc(blob_len); + if (blob == NULL) { + cci_msg_destroy(msg); + return ccErrNoMem; + } + memcpy(blob, cur_pos + sizeof(cc_uint32), blob_len); + cci_generic_list_append(msg->data_blobs, blob, blob_len, NULL); + + cur_pos += sizeof(cc_uint32) + blob_len; + blob_len = ntohl(*(int *)cur_pos); + } + } + *msgpp = msg; + return ccNoError; +} + +cc_int32 +cci_msg_retrieve_blob(cc_msg_t* msg, cc_uint32 blob_offset, cc_uint32 blob_len, char **blobp) +{ + cc_generic_iterate_t* gen_iterator; + cc_generic_list_node_t* gen_node; + void *ret; + cc_uint32 blob_pos; + cc_int32 code; + + /*Ensure that the message has been unflattened*/ + if ( msg == NULL || msg->flat == NULL || blob_offset > msg->flat_len || + blob_len > msg->flat_len - blob_offset || blobp == NULL) + return ccErrBadParam; + + code = cci_generic_list_iterator(msg->data_blobs, &gen_iterator); + while (cci_generic_iterate_has_next(gen_iterator)) { + code = cci_generic_iterate_next(gen_iterator, &gen_node); + code = cci_msg_calc_blob_pos(msg, gen_node->data, gen_node->len, &blob_pos); + if (blob_pos == blob_offset && gen_node->len == blob_len) { + free(gen_iterator); + ret = (void *)malloc(blob_len); + if (ret == NULL) + return ccErrNoMem; + memcpy(ret,(char *)msg->flat + blob_offset, blob_len); + *blobp = ret; + return ccNoError; + } + } + free(gen_iterator); + return ccIteratorEnd; +} + +/** + * cc_msg_ + * + * Purpose: + * + * Return: + * + * Errors: + * + */ +cc_int32 +cci_msg_destroy(cc_msg_t* msg) +{ + if (msg->flat != NULL) + free(msg->flat); + if (msg->header != NULL) + free(msg->header); + cci_generic_list_destroy(msg->data_blobs); + free(msg); + return ccNoError; +} + diff --git a/src/lib/ccapi/include/CredentialsCache.h b/src/lib/ccapi/include/CredentialsCache.h index 95c4fe79b..baad48fe7 100644 --- a/src/lib/ccapi/include/CredentialsCache.h +++ b/src/lib/ccapi/include/CredentialsCache.h @@ -277,219 +277,211 @@ typedef struct cc_credentials_union cc_credentials_union; /* Exposed parts */ struct cc_context_d { - const cc_context_f* functions; + const cc_context_f *functions; #if TARGET_OS_MAC - const cc_context_f* otherFunctions; + const cc_context_f *otherFunctions; #endif }; typedef struct cc_context_d cc_context_d; -typedef cc_context_d* cc_context_t; +typedef cc_context_d *cc_context_t; struct cc_ccache_d { - const cc_ccache_f* functions; + const cc_ccache_f *functions; #if TARGET_OS_MAC - const cc_ccache_f* otherFunctions; + const cc_ccache_f *otherFunctions; #endif }; typedef struct cc_ccache_d cc_ccache_d; -typedef cc_ccache_d* cc_ccache_t; +typedef cc_ccache_d *cc_ccache_t; struct cc_ccache_iterator_d { - const cc_ccache_iterator_f* functions; + const cc_ccache_iterator_f *functions; #if TARGET_OS_MAC - const cc_ccache_iterator_f* otherFunctions; + const cc_ccache_iterator_f *otherFunctions; #endif }; typedef struct cc_ccache_iterator_d cc_ccache_iterator_d; -typedef cc_ccache_iterator_d* cc_ccache_iterator_t; +typedef cc_ccache_iterator_d *cc_ccache_iterator_t; struct cc_credentials_iterator_d { - const cc_credentials_iterator_f* functions; + const cc_credentials_iterator_f *functions; #if TARGET_OS_MAC - const cc_credentials_iterator_f* otherFunctions; + const cc_credentials_iterator_f *otherFunctions; #endif }; typedef struct cc_credentials_iterator_d cc_credentials_iterator_d; -typedef cc_credentials_iterator_d* cc_credentials_iterator_t; +typedef cc_credentials_iterator_d *cc_credentials_iterator_t; struct cc_string_d { - const char* data; - const cc_string_f* functions; + const char *data; + const cc_string_f *functions; #if TARGET_OS_MAC - const cc_string_f* otherFunctions; + const cc_string_f *otherFunctions; #endif }; typedef struct cc_string_d cc_string_d; -typedef cc_string_d* cc_string_t; +typedef cc_string_d *cc_string_t; struct cc_credentials_d { - const cc_credentials_union* data; - const cc_credentials_f* functions; + const cc_credentials_union *data; + const cc_credentials_f *functions; #if TARGET_OS_MAC - const cc_credentials_f* otherFunctions; + const cc_credentials_f *otherFunctions; #endif }; typedef struct cc_credentials_d cc_credentials_d; -typedef cc_credentials_d* cc_credentials_t; +typedef cc_credentials_d *cc_credentials_t; /* Function pointer structs */ struct cc_context_f { - cc_int32 (*release) ( - cc_context_t context); - cc_int32 (*get_change_time) ( - cc_context_t context, - cc_time* time); - cc_int32 (*get_default_ccache_name) ( - cc_context_t context, - cc_string_t* name); - cc_int32 (*open_ccache) ( - cc_context_t context, - const char* name, - cc_ccache_t* ccache); - cc_int32 (*open_default_ccache) ( - cc_context_t context, - cc_ccache_t* ccache); - cc_int32 (*create_ccache) ( - cc_context_t context, - const char* name, - cc_uint32 cred_vers, - const char* principal, - cc_ccache_t* ccache); - cc_int32 (*create_default_ccache) ( - cc_context_t context, - cc_uint32 cred_vers, - const char* principal, - cc_ccache_t* ccache); - cc_int32 (*create_new_ccache) ( - cc_context_t context, - cc_uint32 cred_vers, - const char* principal, - cc_ccache_t* ccache); - cc_int32 (*new_ccache_iterator) ( - cc_context_t context, - cc_ccache_iterator_t* iterator); - cc_int32 (*lock) ( - cc_context_t context, - cc_uint32 lock_type, - cc_uint32 block); - cc_int32 (*unlock) ( - cc_context_t context); - cc_int32 (*compare) ( - cc_context_t context, - cc_context_t compare_to, - cc_uint32* equal); + cc_int32 (*release) (cc_context_t in_context); + + cc_int32 (*get_change_time) (cc_context_t in_context, + cc_time *out_time); + + cc_int32 (*get_default_ccache_name) (cc_context_t in_context, + cc_string_t *out_name); + + cc_int32 (*open_ccache) (cc_context_t in_context, + const char *in_name, + cc_ccache_t *out_ccache); + + cc_int32 (*open_default_ccache) (cc_context_t in_context, + cc_ccache_t *out_ccache); + + cc_int32 (*create_ccache) (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 (*create_default_ccache) (cc_context_t in_context, + cc_uint32 in_cred_vers, + const char *in_principal, + cc_ccache_t *out_ccache); + + cc_int32 (*create_new_ccache) (cc_context_t in_context, + cc_uint32 in_cred_vers, + const char *in_principal, + cc_ccache_t *out_ccache); + + cc_int32 (*new_ccache_iterator) (cc_context_t in_context, + cc_ccache_iterator_t *out_iterator); + + cc_int32 (*lock) (cc_context_t in_context, + cc_uint32 in_lock_type, + cc_uint32 in_block); + + cc_int32 (*unlock) (cc_context_t in_cc_context); + + cc_int32 (*compare) (cc_context_t in_cc_context, + cc_context_t in_compare_to_context, + cc_uint32 *out_equal); }; struct cc_ccache_f { - cc_int32 (*release) ( - cc_ccache_t ccache); - cc_int32 (*destroy) ( - cc_ccache_t ccache); - cc_int32 (*set_default) ( - cc_ccache_t ccache); - cc_int32 (*get_credentials_version) ( - cc_ccache_t ccache, - cc_uint32* credentials_version); - cc_int32 (*get_name) ( - cc_ccache_t ccache, - cc_string_t* name); - cc_int32 (*get_principal) ( - cc_ccache_t ccache, - cc_uint32 credentials_version, - cc_string_t* principal); - cc_int32 (*set_principal) ( - cc_ccache_t ccache, - cc_uint32 credentials_version, - const char* principal); - cc_int32 (*store_credentials) ( - cc_ccache_t ccache, - const cc_credentials_union* credentials); - cc_int32 (*remove_credentials) ( - cc_ccache_t ccache, - cc_credentials_t credentials); - cc_int32 (*new_credentials_iterator) ( - cc_ccache_t ccache, - cc_credentials_iterator_t* iterator); - cc_int32 (*move) ( - cc_ccache_t source, - cc_ccache_t destination); - cc_int32 (*lock) ( - cc_ccache_t ccache, - cc_uint32 lock_type, - cc_uint32 block); - cc_int32 (*unlock) ( - cc_ccache_t ccache); - cc_int32 (*get_last_default_time) ( - cc_ccache_t ccache, - cc_time* time); - cc_int32 (*get_change_time) ( - cc_ccache_t ccache, - cc_time* time); - cc_int32 (*compare) ( - cc_ccache_t ccache, - cc_ccache_t compare_to, - cc_uint32* equal); - cc_int32 (*get_kdc_time_offset) ( - cc_ccache_t ccache, - cc_int32 credentials_version, - cc_time* time_offset); - cc_int32 (*set_kdc_time_offset) ( - cc_ccache_t ccache, - cc_int32 credentials_version, - cc_time time_offset); - - cc_int32 (*clear_kdc_time_offset) ( - cc_ccache_t ccache, - cc_int32 credentials_version); + cc_int32 (*release) (cc_ccache_t io_ccache); + + cc_int32 (*destroy) (cc_ccache_t io_ccache); + + cc_int32 (*set_default) (cc_ccache_t io_ccache); + + cc_int32 (*get_credentials_version) (cc_ccache_t in_ccache, + cc_uint32 *in_credentials_version); + + cc_int32 (*get_name) (cc_ccache_t in_ccache, + cc_string_t *out_name); + + cc_int32 (*get_principal) (cc_ccache_t in_ccache, + cc_uint32 in_credentials_version, + cc_string_t *out_principal); + + cc_int32 (*set_principal) (cc_ccache_t io_ccache, + cc_uint32 in_credentials_version, + const char *in_principal); + + cc_int32 (*store_credentials) (cc_ccache_t io_ccache, + const cc_credentials_union *in_credentials_union); + + cc_int32 (*remove_credentials) (cc_ccache_t io_ccache, + cc_credentials_t in_credentials); + + cc_int32 (*new_credentials_iterator) (cc_ccache_t in_ccache, + cc_credentials_iterator_t *out_credentials_iterator); + + cc_int32 (*move) (cc_ccache_t io_source_ccache, + cc_ccache_t io_destination_ccache); + + cc_int32 (*lock) (cc_ccache_t io_ccache, + cc_uint32 in_lock_type, + cc_uint32 in_block); + + cc_int32 (*unlock) (cc_ccache_t io_ccache); + + cc_int32 (*get_last_default_time) (cc_ccache_t in_ccache, + cc_time *out_last_default_time); + + cc_int32 (*get_change_time) (cc_ccache_t in_ccache, + cc_time *out_change_time); + + cc_int32 (*compare) (cc_ccache_t in_ccache, + cc_ccache_t in_compare_to_ccache, + cc_uint32 *out_equal); + + cc_int32 (*get_kdc_time_offset) (cc_ccache_t in_ccache, + cc_int32 in_credentials_version, + cc_time *out_time_offset); + + cc_int32 (*set_kdc_time_offset) (cc_ccache_t io_ccache, + cc_int32 in_credentials_version, + cc_time in_time_offset); + + cc_int32 (*clear_kdc_time_offset) (cc_ccache_t in_ccache, + cc_int32 in_credentials_version); }; struct cc_string_f { - cc_int32 (*release) ( - cc_string_t string); + cc_int32 (*release) (cc_string_t in_string); }; struct cc_credentials_f { - cc_int32 (*release) ( - cc_credentials_t credentials); - cc_int32 (*compare) ( - cc_credentials_t credentials, - cc_credentials_t compare_to, - cc_uint32* equal); + cc_int32 (*release) (cc_credentials_t io_credentials); + + cc_int32 (*compare) (cc_credentials_t in_credentials, + cc_credentials_t in_compare_to_credentials, + cc_uint32 *out_equal); }; - + struct cc_ccache_iterator_f { - cc_int32 (*release) ( - cc_ccache_iterator_t iter); - cc_int32 (*next) ( - cc_ccache_iterator_t iter, - cc_ccache_t* ccache); - - cc_int32 (*clone) ( cc_ccache_iterator_t iter, - cc_ccache_iterator_t* new_iter); + cc_int32 (*release) (cc_ccache_iterator_t io_ccache_iterator); + + cc_int32 (*next) (cc_ccache_iterator_t in_ccache_iterator, + cc_ccache_t *out_ccache); + + cc_int32 (*clone) (cc_ccache_iterator_t in_ccache_iterator, + cc_ccache_iterator_t *out_ccache_iterator); }; struct cc_credentials_iterator_f { - cc_int32 (*release) ( - cc_credentials_iterator_t iter); - cc_int32 (*next) ( - cc_credentials_iterator_t iter, - cc_credentials_t* cred); - - cc_int32 (*clone) ( cc_credentials_iterator_t iter, - cc_credentials_iterator_t* new_iter); + cc_int32 (*release) (cc_credentials_iterator_t io_credentials_iterator); + + cc_int32 (*next) (cc_credentials_iterator_t in_credentials_iterator, + cc_credentials_t *out_credentials); + + cc_int32 (*clone) (cc_credentials_iterator_t in_credentials_iterator, + cc_credentials_iterator_t *out_credentials_iterator); }; /* * API functions */ - -CCACHE_API cc_int32 cc_initialize ( - cc_context_t* outContext, - cc_int32 inVersion, - cc_int32* outSupportedVersion, - char const** outVendor); + +CCACHE_API cc_int32 cc_initialize (cc_context_t *out_context, + cc_int32 in_version, + cc_int32 *out_supported_version, + char const **out_vendor); /* * Convenience macros diff --git a/src/lib/ccapi/include/CredentialsCache2.h b/src/lib/ccapi/include/CredentialsCache2.h index 5505bf29f..b7366273d 100644 --- a/src/lib/ccapi/include/CredentialsCache2.h +++ b/src/lib/ccapi/include/CredentialsCache2.h @@ -307,4 +307,4 @@ CCACHE_API cc_int32 cc_lock_request( } #endif /* __cplusplus */ -#endif /* __CREDENTIALSCACHE2__ */
\ No newline at end of file +#endif /* __CREDENTIALSCACHE2__ */ diff --git a/src/lib/ccapi/include/generic_lists.h b/src/lib/ccapi/include/generic_lists.h index 14b7ae28c..93636da38 100644 --- a/src/lib/ccapi/include/generic_lists.h +++ b/src/lib/ccapi/include/generic_lists.h @@ -50,10 +50,10 @@ #define __CC_GENERIC_LISTS_H_
enum cc_list_type {
- generic = 0,
- context,
- cache,
- credentials
+ cc_generic_list = 0,
+ cc_context_list,
+ cc_cache_list,
+ cc_credentials_list
};
struct cc_generic_list_node_t {
diff --git a/src/lib/ccapi/include/msg.h b/src/lib/ccapi/include/msg.h index 79b9a7f72..1682811c0 100644 --- a/src/lib/ccapi/include/msg.h +++ b/src/lib/ccapi/include/msg.h @@ -68,6 +68,11 @@ #include "CredentialsCache.h" #include "generic_lists.h" +#if TARGET_OS_MAC +#define htonll(x) OSSwapHostToBigInt64(x) +#define ntohll(x) OSSwapBigToHostInt64(x) +#endif + struct cc_msg_t { cc_uint32 type; /*type of message*/ cc_uint8 *flat; /*flattened representation of this message*/ @@ -136,9 +141,9 @@ cc_int32 cci_msg_add_data_blob(cc_msg_t* msg, void *data, cc_uint32 len, cc_uint cc_int32 cci_msg_add_header(cc_msg_t* msg, void *header, cc_uint32 header_len); cc_int32 cci_msg_calc_blob_pos(cc_msg_t* msg, void *data, cc_uint32 len, cc_uint32 * sizep); cc_int32 cci_msg_flatten(cc_msg_t* msg, void **); -cc_int32 cci_msg_calc_magic(void *flat, int flat_len, cc_uint32 * sizep); -cc_int32 cci_msg_verify(void* flat, int flat_len, cc_uint32 * sizep); -cc_int32 cci_msg_unflatten(void *flat, int flat_len, cc_msg_t** msgpp); +cc_int32 cci_msg_calc_magic(void *flat, cc_uint32 flat_len, cc_uint32 * sizep); +cc_int32 cci_msg_verify(void* flat, cc_uint32 flat_len, cc_uint32 * sizep); +cc_int32 cci_msg_unflatten(void *flat, cc_uint32 flat_len, cc_msg_t** msgpp); cc_int32 cci_msg_retrieve_blob(cc_msg_t* msg, cc_uint32 blob_offset, cc_uint32 blob_len, char **); cc_int32 cci_msg_destroy(cc_msg_t* msg); diff --git a/src/lib/ccapi/mac/CCAPI.xcodeproj/lxs.pbxuser b/src/lib/ccapi/mac/CCAPI.xcodeproj/lxs.pbxuser deleted file mode 100644 index ea15e540b..000000000 --- a/src/lib/ccapi/mac/CCAPI.xcodeproj/lxs.pbxuser +++ /dev/null @@ -1,2005 +0,0 @@ -// !$*UTF8*$! -{ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - activeBuildConfigurationName = Debug; - activeExecutable = A1E70D5E0A38B796007BE3E3 /* CCacheServer */; - activeTarget = A1E70D5C0A38B796007BE3E3 /* CCacheServer */; - addToTargets = ( - ); - breakpoints = ( - ); - breakpointsGroup = A1E70D500A38B5F3007BE3E3 /* XCBreakpointsBucket */; - codeSenseManager = A1E70CFE0A38B536007BE3E3 /* Code sense */; - executables = ( - A1E70D5E0A38B796007BE3E3 /* CCacheServer */, - ); - perUserDictionary = { - PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 811, - 20, - 48, - 43, - 43, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - PBXFileDataSource_Target_ColumnID, - ); - }; - PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 200, - 608, - 20, - 48, - 43, - 43, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXTargetDataSource_PrimaryAttribute, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - ); - }; - PBXPerProjectTemplateStateSaveDate = 171582174; - PBXWorkspaceStateSaveDate = 171582174; - }; - perUserProjectItems = { - A1E70DF70A38C765007BE3E3 /* PBXTextBookmark */ = A1E70DF70A38C765007BE3E3 /* PBXTextBookmark */; - A1E70DF80A38C765007BE3E3 /* PBXTextBookmark */ = A1E70DF80A38C765007BE3E3 /* PBXTextBookmark */; - A1E70DF90A38C765007BE3E3 /* PBXTextBookmark */ = A1E70DF90A38C765007BE3E3 /* PBXTextBookmark */; - A1E70DFA0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70DFA0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70DFB0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70DFB0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70DFD0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70DFD0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E010A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E010A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E020A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E020A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E060A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E060A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E090A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E090A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E0A0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E0A0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E0B0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E0B0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E0C0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E0C0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E100A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E100A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E110A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E110A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E120A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E120A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E130A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E130A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E140A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E140A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E150A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E150A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E160A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E160A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E170A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E170A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E180A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E180A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E1B0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E1B0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E1E0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E1E0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E1F0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E1F0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E200A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E200A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E250A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E250A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E260A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E260A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E290A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E290A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E2A0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E2A0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E2B0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E2B0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E2D0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E2D0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E2E0A38C765007BE3E3 /* PBXTextBookmark */ = A1E70E2E0A38C765007BE3E3 /* PBXTextBookmark */; - A1E70E380A38C778007BE3E3 /* PBXTextBookmark */ = A1E70E380A38C778007BE3E3 /* PBXTextBookmark */; - A1E70E3D0A38C78C007BE3E3 /* PBXTextBookmark */ = A1E70E3D0A38C78C007BE3E3 /* PBXTextBookmark */; - A1E70E410A38C78C007BE3E3 /* PBXTextBookmark */ = A1E70E410A38C78C007BE3E3 /* PBXTextBookmark */; - A1E70E430A38C791007BE3E3 /* PBXTextBookmark */ = A1E70E430A38C791007BE3E3 /* PBXTextBookmark */; - A1E70E450A38C791007BE3E3 /* PBXTextBookmark */ = A1E70E450A38C791007BE3E3 /* PBXTextBookmark */; - A1E70E4A0A38C7BE007BE3E3 /* PBXTextBookmark */ = A1E70E4A0A38C7BE007BE3E3 /* PBXTextBookmark */; - A1E70E520A38C9FD007BE3E3 /* PBXTextBookmark */ = A1E70E520A38C9FD007BE3E3 /* PBXTextBookmark */; - A1E70E530A38C9FD007BE3E3 /* PBXTextBookmark */ = A1E70E530A38C9FD007BE3E3 /* PBXTextBookmark */; - A1E70E560A38C9FD007BE3E3 /* PBXTextBookmark */ = A1E70E560A38C9FD007BE3E3 /* PBXTextBookmark */; - A1E70E580A38C9FD007BE3E3 /* PBXTextBookmark */ = A1E70E580A38C9FD007BE3E3 /* PBXTextBookmark */; - A1E70E6F0A38CA08007BE3E3 /* PBXTextBookmark */ = A1E70E6F0A38CA08007BE3E3 /* PBXTextBookmark */; - A1E70E770A38CA55007BE3E3 /* PBXTextBookmark */ = A1E70E770A38CA55007BE3E3 /* PBXTextBookmark */; - A1E70E7D0A38CA55007BE3E3 /* PBXTextBookmark */ = A1E70E7D0A38CA55007BE3E3 /* PBXTextBookmark */; - A1E70E9C0A38CAF1007BE3E3 /* PBXTextBookmark */ = A1E70E9C0A38CAF1007BE3E3 /* PBXTextBookmark */; - A1E70EA80A38CB24007BE3E3 /* PBXTextBookmark */ = A1E70EA80A38CB24007BE3E3 /* PBXTextBookmark */; - A1E70EAB0A38CB24007BE3E3 /* PBXTextBookmark */ = A1E70EAB0A38CB24007BE3E3 /* PBXTextBookmark */; - A1E70EB50A38CB4D007BE3E3 /* PBXTextBookmark */ = A1E70EB50A38CB4D007BE3E3 /* PBXTextBookmark */; - A1E70EC30A38CC14007BE3E3 /* PBXTextBookmark */ = A1E70EC30A38CC14007BE3E3 /* PBXTextBookmark */; - A1E70ECB0A38CC4C007BE3E3 /* PBXTextBookmark */ = A1E70ECB0A38CC4C007BE3E3 /* PBXTextBookmark */; - A1E70ED70A38CCB6007BE3E3 /* PBXTextBookmark */ = A1E70ED70A38CCB6007BE3E3 /* PBXTextBookmark */; - A1E70EE20A38CCD6007BE3E3 /* PBXTextBookmark */ = A1E70EE20A38CCD6007BE3E3 /* PBXTextBookmark */; - A1E70EFE0A38CD66007BE3E3 /* PBXTextBookmark */ = A1E70EFE0A38CD66007BE3E3 /* PBXTextBookmark */; - A1E70F0F0A38CE21007BE3E3 /* PBXTextBookmark */ = A1E70F0F0A38CE21007BE3E3 /* PBXTextBookmark */; - A1E70F440A38D252007BE3E3 /* PBXTextBookmark */ = A1E70F440A38D252007BE3E3 /* PBXTextBookmark */; - A1E70F450A38D252007BE3E3 /* PBXTextBookmark */ = A1E70F450A38D252007BE3E3 /* PBXTextBookmark */; - A1E70F8B0A38D3B4007BE3E3 /* PBXTextBookmark */ = A1E70F8B0A38D3B4007BE3E3 /* PBXTextBookmark */; - A1E70F9C0A38D41E007BE3E3 /* PBXTextBookmark */ = A1E70F9C0A38D41E007BE3E3 /* PBXTextBookmark */; - A1E70F9D0A38D41E007BE3E3 /* PBXTextBookmark */ = A1E70F9D0A38D41E007BE3E3 /* PBXTextBookmark */; - A1E70FC60A38D560007BE3E3 /* PBXTextBookmark */ = A1E70FC60A38D560007BE3E3 /* PBXTextBookmark */; - A1E70FC80A38D560007BE3E3 /* PBXTextBookmark */ = A1E70FC80A38D560007BE3E3 /* PBXTextBookmark */; - A1E70FC90A38D560007BE3E3 /* PBXTextBookmark */ = A1E70FC90A38D560007BE3E3 /* PBXTextBookmark */; - A1E70FCA0A38D560007BE3E3 /* PBXTextBookmark */ = A1E70FCA0A38D560007BE3E3 /* PBXTextBookmark */; - A1E70FCD0A38D560007BE3E3 /* PBXTextBookmark */ = A1E70FCD0A38D560007BE3E3 /* PBXTextBookmark */; - A1E70FD80A38D573007BE3E3 /* PBXTextBookmark */ = A1E70FD80A38D573007BE3E3 /* PBXTextBookmark */; - A1E70FEE0A38D7C0007BE3E3 /* PBXTextBookmark */ = A1E70FEE0A38D7C0007BE3E3 /* PBXTextBookmark */; - A1E70FEF0A38D7C0007BE3E3 /* PBXTextBookmark */ = A1E70FEF0A38D7C0007BE3E3 /* PBXTextBookmark */; - A1E70FF00A38D7C0007BE3E3 /* PBXTextBookmark */ = A1E70FF00A38D7C0007BE3E3 /* PBXTextBookmark */; - A1E70FFA0A38D806007BE3E3 /* PBXTextBookmark */ = A1E70FFA0A38D806007BE3E3 /* PBXTextBookmark */; - A1E70FFC0A38D806007BE3E3 /* PBXTextBookmark */ = A1E70FFC0A38D806007BE3E3 /* PBXTextBookmark */; - A1E70FFF0A38D806007BE3E3 /* PBXTextBookmark */ = A1E70FFF0A38D806007BE3E3 /* PBXTextBookmark */; - A1E710010A38D814007BE3E3 /* PBXTextBookmark */ = A1E710010A38D814007BE3E3 /* PBXTextBookmark */; - A1E7100A0A38D888007BE3E3 /* PBXTextBookmark */ = A1E7100A0A38D888007BE3E3 /* PBXTextBookmark */; - A1E7100C0A38D888007BE3E3 /* PBXTextBookmark */ = A1E7100C0A38D888007BE3E3 /* PBXTextBookmark */; - A1E7100D0A38D888007BE3E3 /* PBXTextBookmark */ = A1E7100D0A38D888007BE3E3 /* PBXTextBookmark */; - A1E710110A38D888007BE3E3 /* PBXTextBookmark */ = A1E710110A38D888007BE3E3 /* PBXTextBookmark */; - A1E710140A38D888007BE3E3 /* PBXTextBookmark */ = A1E710140A38D888007BE3E3 /* PBXTextBookmark */; - A1E7103C0A38DE0B007BE3E3 /* PBXTextBookmark */ = A1E7103C0A38DE0B007BE3E3 /* PBXTextBookmark */; - A1E710400A38DE0B007BE3E3 /* PBXTextBookmark */ = A1E710400A38DE0B007BE3E3 /* PBXTextBookmark */; - A1E710530A39EC0B007BE3E3 /* PBXTextBookmark */ = A1E710530A39EC0B007BE3E3 /* PBXTextBookmark */; - A1E7105A0A39ED89007BE3E3 /* PBXTextBookmark */ = A1E7105A0A39ED89007BE3E3 /* PBXTextBookmark */; - A1E7105D0A39ED89007BE3E3 /* PBXTextBookmark */ = A1E7105D0A39ED89007BE3E3 /* PBXTextBookmark */; - A1E7105E0A39ED89007BE3E3 /* PBXTextBookmark */ = A1E7105E0A39ED89007BE3E3 /* PBXTextBookmark */; - A1E710680A39F102007BE3E3 /* PBXTextBookmark */ = A1E710680A39F102007BE3E3 /* PBXTextBookmark */; - A1E710840A3A1CFB007BE3E3 /* PBXTextBookmark */ = A1E710840A3A1CFB007BE3E3 /* PBXTextBookmark */; - A1E710860A3A1CFB007BE3E3 /* PBXTextBookmark */ = A1E710860A3A1CFB007BE3E3 /* PBXTextBookmark */; - A1E710870A3A1CFB007BE3E3 /* PBXTextBookmark */ = A1E710870A3A1CFB007BE3E3 /* PBXTextBookmark */; - A1E710890A3A1D04007BE3E3 /* PBXTextBookmark */ = A1E710890A3A1D04007BE3E3 /* PBXTextBookmark */; - A1E7108B0A3A1D04007BE3E3 /* PBXTextBookmark */ = A1E7108B0A3A1D04007BE3E3 /* PBXTextBookmark */; - A1E7108D0A3A1D06007BE3E3 /* PBXTextBookmark */ = A1E7108D0A3A1D06007BE3E3 /* PBXTextBookmark */; - A1E710930A3A1D22007BE3E3 /* PBXTextBookmark */ = A1E710930A3A1D22007BE3E3 /* PBXTextBookmark */; - A1E710940A3A1D22007BE3E3 /* PBXTextBookmark */ = A1E710940A3A1D22007BE3E3 /* PBXTextBookmark */; - A1E710950A3A1D22007BE3E3 /* PBXTextBookmark */ = A1E710950A3A1D22007BE3E3 /* PBXTextBookmark */; - A1E710960A3A1D22007BE3E3 /* PBXTextBookmark */ = A1E710960A3A1D22007BE3E3 /* PBXTextBookmark */; - A1E710970A3A1D22007BE3E3 /* PBXTextBookmark */ = A1E710970A3A1D22007BE3E3 /* PBXTextBookmark */; - A1E7109C0A3A1D2B007BE3E3 /* PBXTextBookmark */ = A1E7109C0A3A1D2B007BE3E3 /* PBXTextBookmark */; - A1E7109D0A3A1D2B007BE3E3 /* PBXTextBookmark */ = A1E7109D0A3A1D2B007BE3E3 /* PBXTextBookmark */; - A1E7109F0A3A1DD0007BE3E3 /* PBXTextBookmark */ = A1E7109F0A3A1DD0007BE3E3 /* PBXTextBookmark */; - A1E710A00A3A1DD0007BE3E3 /* PBXTextBookmark */ = A1E710A00A3A1DD0007BE3E3 /* PBXTextBookmark */; - A1E710A50A3A22E1007BE3E3 /* PBXTextBookmark */ = A1E710A50A3A22E1007BE3E3 /* PBXTextBookmark */; - A1E710AB0A3A22F5007BE3E3 /* PBXTextBookmark */ = A1E710AB0A3A22F5007BE3E3 /* PBXTextBookmark */; - A1E710AC0A3A22F5007BE3E3 /* PBXTextBookmark */ = A1E710AC0A3A22F5007BE3E3 /* PBXTextBookmark */; - A1E710AD0A3A22F5007BE3E3 /* PBXTextBookmark */ = A1E710AD0A3A22F5007BE3E3 /* PBXTextBookmark */; - A1E710AF0A3A22FE007BE3E3 /* PBXTextBookmark */ = A1E710AF0A3A22FE007BE3E3 /* PBXTextBookmark */; - A1E710B30A3A22FF007BE3E3 /* PBXTextBookmark */ = A1E710B30A3A22FF007BE3E3 /* PBXTextBookmark */; - A1E710B90A3A23FB007BE3E3 /* PBXTextBookmark */ = A1E710B90A3A23FB007BE3E3 /* PBXTextBookmark */; - A1E710BC0A3A2415007BE3E3 /* PBXTextBookmark */ = A1E710BC0A3A2415007BE3E3 /* PBXTextBookmark */; - A1E710BD0A3A2415007BE3E3 /* PBXTextBookmark */ = A1E710BD0A3A2415007BE3E3 /* PBXTextBookmark */; - A1E710BE0A3A2415007BE3E3 /* PBXTextBookmark */ = A1E710BE0A3A2415007BE3E3 /* PBXTextBookmark */; - A1E710BF0A3A2415007BE3E3 /* PBXTextBookmark */ = A1E710BF0A3A2415007BE3E3 /* PBXTextBookmark */; - A1E710C00A3A2415007BE3E3 /* PBXTextBookmark */ = A1E710C00A3A2415007BE3E3 /* PBXTextBookmark */; - A1E710C60A3A2441007BE3E3 /* PBXTextBookmark */ = A1E710C60A3A2441007BE3E3 /* PBXTextBookmark */; - A1E710C70A3A2441007BE3E3 /* PBXTextBookmark */ = A1E710C70A3A2441007BE3E3 /* PBXTextBookmark */; - A1E710C80A3A2441007BE3E3 /* PBXTextBookmark */ = A1E710C80A3A2441007BE3E3 /* PBXTextBookmark */; - A1E710C90A3A2441007BE3E3 /* PBXTextBookmark */ = A1E710C90A3A2441007BE3E3 /* PBXTextBookmark */; - A1E710CA0A3A244D007BE3E3 /* PBXTextBookmark */ = A1E710CA0A3A244D007BE3E3 /* PBXTextBookmark */; - A1E710CB0A3A244D007BE3E3 /* PBXTextBookmark */ = A1E710CB0A3A244D007BE3E3 /* PBXTextBookmark */; - A1E710CC0A3A244D007BE3E3 /* PBXTextBookmark */ = A1E710CC0A3A244D007BE3E3 /* PBXTextBookmark */; - A1E710CD0A3A244D007BE3E3 /* PBXTextBookmark */ = A1E710CD0A3A244D007BE3E3 /* PBXTextBookmark */; - A1E710CE0A3A244D007BE3E3 /* PBXTextBookmark */ = A1E710CE0A3A244D007BE3E3 /* PBXTextBookmark */; - A1E710D00A3A2456007BE3E3 /* PBXTextBookmark */ = A1E710D00A3A2456007BE3E3 /* PBXTextBookmark */; - A1E710D10A3A2456007BE3E3 /* PBXTextBookmark */ = A1E710D10A3A2456007BE3E3 /* PBXTextBookmark */; - A1E710D20A3A2456007BE3E3 /* PBXTextBookmark */ = A1E710D20A3A2456007BE3E3 /* PBXTextBookmark */; - A1E710D30A3A2456007BE3E3 /* PBXTextBookmark */ = A1E710D30A3A2456007BE3E3 /* PBXTextBookmark */; - A1E710D40A3A2456007BE3E3 /* PBXTextBookmark */ = A1E710D40A3A2456007BE3E3 /* PBXTextBookmark */; - A1E710D70A3A2465007BE3E3 /* PBXTextBookmark */ = A1E710D70A3A2465007BE3E3 /* PBXTextBookmark */; - A1E710D80A3A2465007BE3E3 /* PBXTextBookmark */ = A1E710D80A3A2465007BE3E3 /* PBXTextBookmark */; - A1E710D90A3A2465007BE3E3 /* PBXTextBookmark */ = A1E710D90A3A2465007BE3E3 /* PBXTextBookmark */; - A1E710DB0A3A246E007BE3E3 /* PBXTextBookmark */ = A1E710DB0A3A246E007BE3E3 /* PBXTextBookmark */; - A1E710DF0A3A247D007BE3E3 /* PBXTextBookmark */ = A1E710DF0A3A247D007BE3E3 /* PBXTextBookmark */; - A1E710E00A3A247D007BE3E3 /* PBXTextBookmark */ = A1E710E00A3A247D007BE3E3 /* PBXTextBookmark */; - A1E710E10A3A247D007BE3E3 /* PBXTextBookmark */ = A1E710E10A3A247D007BE3E3 /* PBXTextBookmark */; - A1E710E20A3A247D007BE3E3 /* PBXTextBookmark */ = A1E710E20A3A247D007BE3E3 /* PBXTextBookmark */; - A1E710E30A3A247D007BE3E3 /* PBXTextBookmark */ = A1E710E30A3A247D007BE3E3 /* PBXTextBookmark */; - A1E710E50A3A248A007BE3E3 /* PBXTextBookmark */ = A1E710E50A3A248A007BE3E3 /* PBXTextBookmark */; - A1E710E60A3A248A007BE3E3 /* PBXTextBookmark */ = A1E710E60A3A248A007BE3E3 /* PBXTextBookmark */; - A1E710E70A3A24A4007BE3E3 /* PBXTextBookmark */ = A1E710E70A3A24A4007BE3E3 /* PBXTextBookmark */; - A1E710E80A3A24A5007BE3E3 /* PBXTextBookmark */ = A1E710E80A3A24A5007BE3E3 /* PBXTextBookmark */; - A1E710E90A3A24A5007BE3E3 /* PBXTextBookmark */ = A1E710E90A3A24A5007BE3E3 /* PBXTextBookmark */; - A1E710EA0A3A2521007BE3E3 /* PBXTextBookmark */ = A1E710EA0A3A2521007BE3E3 /* PBXTextBookmark */; - A1E710EB0A3A2521007BE3E3 /* PBXTextBookmark */ = A1E710EB0A3A2521007BE3E3 /* PBXTextBookmark */; - A1E710EC0A3A2521007BE3E3 /* PBXTextBookmark */ = A1E710EC0A3A2521007BE3E3 /* PBXTextBookmark */; - A1E710ED0A3A2521007BE3E3 /* PBXTextBookmark */ = A1E710ED0A3A2521007BE3E3 /* PBXTextBookmark */; - A1E710EE0A3A2521007BE3E3 /* PBXTextBookmark */ = A1E710EE0A3A2521007BE3E3 /* PBXTextBookmark */; - A1E710EF0A3A2521007BE3E3 /* PBXTextBookmark */ = A1E710EF0A3A2521007BE3E3 /* PBXTextBookmark */; - A1E710F00A3A2521007BE3E3 /* PBXTextBookmark */ = A1E710F00A3A2521007BE3E3 /* PBXTextBookmark */; - A1E710F10A3A2521007BE3E3 /* PBXTextBookmark */ = A1E710F10A3A2521007BE3E3 /* PBXTextBookmark */; - A1E710F40A3A253F007BE3E3 /* PBXTextBookmark */ = A1E710F40A3A253F007BE3E3 /* PBXTextBookmark */; - A1E710F50A3A253F007BE3E3 /* PBXTextBookmark */ = A1E710F50A3A253F007BE3E3 /* PBXTextBookmark */; - }; - sourceControlManager = A1E70CFD0A38B536007BE3E3 /* Source Control */; - userBuildSettings = { - }; - }; - A1E70CFD0A38B536007BE3E3 /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - }; - scmType = ""; - }; - A1E70CFE0A38B536007BE3E3 /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - A1E70D000A38B5BB007BE3E3 /* cacheapi.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1087, 2100}}"; - sepNavSelRange = "{4787, 139}"; - sepNavVisRect = "{{0, 1547}, {1087, 448}}"; - }; - }; - A1E70D010A38B5BB007BE3E3 /* ccache.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1003, 18424}}"; - sepNavSelRange = "{11919, 0}"; - sepNavVisRect = "{{0, 5185}, {1003, 481}}"; - }; - }; - A1E70D020A38B5BB007BE3E3 /* ccache.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {980, 2058}}"; - sepNavSelRange = "{2339, 9}"; - sepNavVisRect = "{{0, 556}, {980, 387}}"; - }; - }; - A1E70D080A38B5BB007BE3E3 /* context.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {980, 13958}}"; - sepNavSelRange = "{29891, 21}"; - sepNavVisRect = "{{0, 13156}, {980, 387}}"; - }; - }; - A1E70D0B0A38B5BB007BE3E3 /* credentials.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {621, 1330}}"; - sepNavSelRange = "{0, 2110}"; - sepNavVisRect = "{{0, 235}, {621, 499}}"; - }; - }; - A1E70D0C0A38B5BB007BE3E3 /* credentials_iterator.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {980, 3836}}"; - sepNavSelRange = "{6723, 21}"; - sepNavVisRect = "{{0, 2544}, {980, 387}}"; - }; - }; - A1E70D0F0A38B5BB007BE3E3 /* NTMakefile */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {734, 998}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {734, 998}}"; - sepNavWindowFrame = "{{15, 46}, {779, 1127}}"; - }; - }; - A1E70D120A38B5BB007BE3E3 /* generic_lists.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1003, 5572}}"; - sepNavSelRange = "{2282, 0}"; - sepNavVisRect = "{{0, 489}, {1003, 521}}"; - }; - }; - A1E70D130A38B5BB007BE3E3 /* marshall.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {980, 6188}}"; - sepNavSelRange = "{11995, 68}"; - sepNavVisRect = "{{0, 4756}, {980, 387}}"; - }; - }; - A1E70D140A38B5BB007BE3E3 /* msg.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1087, 8722}}"; - sepNavSelRange = "{15262, 21}"; - sepNavVisRect = "{{0, 7868}, {1087, 448}}"; - }; - }; - A1E70D150A38B5BB007BE3E3 /* NTMakefile */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {621, 499}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {621, 499}}"; - }; - }; - A1E70D190A38B5BB007BE3E3 /* cc_rpc.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {888, 742}}"; - sepNavSelRange = "{2202, 18}"; - sepNavVisRect = "{{0, 453}, {888, 289}}"; - }; - }; - A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1003, 8302}}"; - sepNavSelRange = "{2631, 0}"; - sepNavVisRect = "{{0, 958}, {1003, 521}}"; - }; - }; - A1E70D1B0A38B5BB007BE3E3 /* CredentialsCache2.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1003, 4340}}"; - sepNavSelRange = "{7813, 0}"; - sepNavVisRect = "{{0, 422}, {1003, 521}}"; - }; - }; - A1E70D1C0A38B5BB007BE3E3 /* datastore.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {888, 2562}}"; - sepNavSelRange = "{2301, 0}"; - sepNavVisRect = "{{0, 573}, {888, 436}}"; - }; - }; - A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1003, 1442}}"; - sepNavSelRange = "{2369, 0}"; - sepNavVisRect = "{{0, 545}, {1003, 521}}"; - }; - }; - A1E70D1F0A38B5BB007BE3E3 /* msg.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1003, 2268}}"; - sepNavSelRange = "{5529, 0}"; - sepNavVisRect = "{{0, 1721}, {1003, 521}}"; - }; - }; - A1E70D260A38B5BB007BE3E3 /* NTMakefile */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {621, 499}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {621, 499}}"; - }; - }; - A1E70D280A38B5BB007BE3E3 /* ccs_ccache.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1003, 9856}}"; - sepNavSelRange = "{9783, 0}"; - sepNavVisRect = "{{0, 3674}, {1003, 730}}"; - }; - }; - A1E70D2C0A38B5BB007BE3E3 /* main.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {621, 910}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 134}, {621, 727}}"; - }; - }; - A1E70D2F0A38B5BB007BE3E3 /* serv_ops.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1087, 22204}}"; - sepNavSelRange = "{36879, 21}"; - sepNavVisRect = "{{0, 14168}, {1087, 448}}"; - }; - }; - A1E70D3B0A38B5BB007BE3E3 /* client.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {804, 1988}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {804, 503}}"; - }; - }; - A1E70D460A38B5BC007BE3E3 /* server.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {621, 9520}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {621, 499}}"; - }; - }; - A1E70D500A38B5F3007BE3E3 /* XCBreakpointsBucket */ = { - isa = XCBreakpointsBucket; - name = CCAPI; - objects = ( - ); - }; - A1E70D5C0A38B796007BE3E3 /* CCacheServer */ = { - activeExec = 0; - executables = ( - A1E70D5E0A38B796007BE3E3 /* CCacheServer */, - ); - }; - A1E70D5E0A38B796007BE3E3 /* CCacheServer */ = { - isa = PBXExecutable; - activeArgIndex = 2147483647; - activeArgIndices = ( - ); - argumentStrings = ( - ); - autoAttachOnCrash = 1; - configStateDict = { - }; - customDataFormattersEnabled = 1; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = CCacheServer; - sourceDirectories = ( - ); - }; - A1E70D930A38BB67007BE3E3 /* main.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {980, 476}}"; - sepNavSelRange = "{316, 42}"; - sepNavVisRect = "{{0, 24}, {980, 387}}"; - }; - }; - A1E70D9E0A38BCAD007BE3E3 /* mig.defs */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {804, 826}}"; - sepNavSelRange = "{2123, 0}"; - sepNavVisRect = "{{0, 400}, {804, 391}}"; - }; - }; - A1E70DB10A38C01E007BE3E3 /* mig_types.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {804, 686}}"; - sepNavSelRange = "{2188, 0}"; - sepNavVisRect = "{{0, 281}, {804, 391}}"; - }; - }; - A1E70DE10A38C6FD007BE3E3 /* kipc_common.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {888, 1078}}"; - sepNavSelRange = "{1293, 0}"; - sepNavVisRect = "{{0, 206}, {888, 470}}"; - }; - }; - A1E70DE40A38C6FD007BE3E3 /* kipc_client.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {804, 1218}}"; - sepNavSelRange = "{1240, 34}"; - sepNavVisRect = "{{0, 235}, {804, 329}}"; - }; - }; - A1E70DE50A38C6FD007BE3E3 /* kipc_common.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {632, 1316}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {621, 499}}"; - }; - }; - A1E70DE60A38C6FD007BE3E3 /* kipc_server.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {728, 4396}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {621, 499}}"; - }; - }; - A1E70DE70A38C6FD007BE3E3 /* kipc_session.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {698, 1988}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {621, 499}}"; - }; - }; - A1E70DE80A38C6FD007BE3E3 /* notify.defs */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {621, 518}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {621, 499}}"; - }; - }; - A1E70DF70A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D150A38B5BB007BE3E3 /* NTMakefile */; - name = "NTMakefile: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 308; - vrLoc = 0; - }; - A1E70DF80A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D3B0A38B5BB007BE3E3 /* client.c */; - name = "client.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 903; - vrLoc = 0; - }; - A1E70DF90A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D3C0A38B5BB007BE3E3 /* dllmain.c */; - name = "dllmain.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 298; - vrLoc = 0; - }; - A1E70DFA0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D3A0A38B5BB007BE3E3 /* cacheapi.def */; - name = "cacheapi.def: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 847; - vrLoc = 0; - }; - A1E70DFB0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D460A38B5BC007BE3E3 /* server.c */; - name = "server.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 756; - vrLoc = 0; - }; - A1E70DFD0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "generic_lists.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1826; - vrLoc = 0; - }; - A1E70E010A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D0B0A38B5BB007BE3E3 /* credentials.h */; - name = "credentials.h: 1"; - rLen = 2110; - rLoc = 0; - rType = 0; - vrLen = 1604; - vrLoc = 749; - }; - A1E70E020A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D2C0A38B5BB007BE3E3 /* main.c */; - name = "main.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1306; - vrLoc = 202; - }; - A1E70E060A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1B0A38B5BB007BE3E3 /* CredentialsCache2.h */; - name = "CredentialsCache2.h: 303"; - rLen = 0; - rLoc = 7813; - rType = 0; - vrLen = 1128; - vrLoc = 6802; - }; - A1E70E090A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE80A38C6FD007BE3E3 /* notify.defs */; - name = "notify.defs: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1437; - vrLoc = 0; - }; - A1E70E0A0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE60A38C6FD007BE3E3 /* kipc_server.c */; - name = "kipc_server.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1538; - vrLoc = 0; - }; - A1E70E0B0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE70A38C6FD007BE3E3 /* kipc_session.c */; - name = "kipc_session.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1461; - vrLoc = 0; - }; - A1E70E0C0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE50A38C6FD007BE3E3 /* kipc_common.c */; - name = "kipc_common.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1496; - vrLoc = 0; - }; - A1E70E100A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D150A38B5BB007BE3E3 /* NTMakefile */; - name = "NTMakefile: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 308; - vrLoc = 0; - }; - A1E70E110A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "generic_lists.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1826; - vrLoc = 0; - }; - A1E70E120A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D3B0A38B5BB007BE3E3 /* client.c */; - name = "client.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 903; - vrLoc = 0; - }; - A1E70E130A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D3C0A38B5BB007BE3E3 /* dllmain.c */; - name = "dllmain.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 298; - vrLoc = 0; - }; - A1E70E140A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D3A0A38B5BB007BE3E3 /* cacheapi.def */; - name = "cacheapi.def: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 847; - vrLoc = 0; - }; - A1E70E150A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D460A38B5BC007BE3E3 /* server.c */; - name = "server.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 756; - vrLoc = 0; - }; - A1E70E160A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D2C0A38B5BB007BE3E3 /* main.c */; - name = "main.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 954; - vrLoc = 0; - }; - A1E70E170A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D2F0A38B5BB007BE3E3 /* serv_ops.c */; - name = "serv_ops.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1825; - vrLoc = 0; - }; - A1E70E180A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D280A38B5BB007BE3E3 /* ccs_ccache.c */; - name = "ccs_ccache.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1861; - vrLoc = 0; - }; - A1E70E1B0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D930A38BB67007BE3E3 /* main.c */; - name = "main.c: 22"; - rLen = 0; - rLoc = 509; - rType = 0; - vrLen = 954; - vrLoc = 0; - }; - A1E70E1E0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D0B0A38B5BB007BE3E3 /* credentials.h */; - name = "credentials.h: 1"; - rLen = 2110; - rLoc = 0; - rType = 0; - vrLen = 1604; - vrLoc = 749; - }; - A1E70E1F0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D130A38B5BB007BE3E3 /* marshall.c */; - name = cci_creds_v5_marshall; - rLen = 21; - rLoc = 6670; - rType = 0; - vrLen = 1513; - vrLoc = 6116; - }; - A1E70E200A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = cci_msg_flatten; - rLen = 15; - rLoc = 7396; - rType = 0; - vrLen = 1003; - vrLoc = 7034; - }; - A1E70E250A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 583"; - rLen = 0; - rLoc = 20525; - rType = 0; - vrLen = 2454; - vrLoc = 18163; - }; - A1E70E260A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D9E0A38BCAD007BE3E3 /* mig.defs */; - name = "ccapi_ipc.defs: 55"; - rLen = 0; - rLoc = 2520; - rType = 0; - vrLen = 1955; - vrLoc = 87; - }; - A1E70E290A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE40A38C6FD007BE3E3 /* kipc_client.c */; - name = "kipc_client.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1544; - vrLoc = 0; - }; - A1E70E2A0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE50A38C6FD007BE3E3 /* kipc_common.c */; - name = "kipc_common.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1496; - vrLoc = 0; - }; - A1E70E2B0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE80A38C6FD007BE3E3 /* notify.defs */; - name = "notify.defs: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1437; - vrLoc = 0; - }; - A1E70E2D0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE60A38C6FD007BE3E3 /* kipc_server.c */; - name = "kipc_server.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1538; - vrLoc = 0; - }; - A1E70E2E0A38C765007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE70A38C6FD007BE3E3 /* kipc_session.c */; - name = "kipc_session.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1461; - vrLoc = 0; - }; - A1E70E380A38C778007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D000A38B5BB007BE3E3 /* cacheapi.c */; - name = "#include <CredentialsCache.h>"; - rLen = 30; - rLoc = 2170; - rType = 0; - vrLen = 696; - vrLoc = 1821; - }; - A1E70E3D0A38C78C007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D260A38B5BB007BE3E3 /* NTMakefile */; - name = "NTMakefile: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 437; - vrLoc = 0; - }; - A1E70E410A38C78C007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D260A38B5BB007BE3E3 /* NTMakefile */; - name = "NTMakefile: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 437; - vrLoc = 0; - }; - A1E70E430A38C791007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D0F0A38B5BB007BE3E3 /* NTMakefile */; - name = "NTMakefile: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 432; - vrLoc = 0; - }; - A1E70E450A38C791007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D0F0A38B5BB007BE3E3 /* NTMakefile */; - name = "NTMakefile: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 432; - vrLoc = 0; - }; - A1E70E4A0A38C7BE007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D0F0A38B5BB007BE3E3 /* NTMakefile */; - name = "NTMakefile: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 432; - vrLoc = 0; - }; - A1E70E520A38C9FD007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D150A38B5BB007BE3E3 /* NTMakefile */; - name = "NTMakefile: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 308; - vrLoc = 0; - }; - A1E70E530A38C9FD007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1C0A38B5BB007BE3E3 /* datastore.h */; - name = cc_list_type; - rLen = 0; - rLoc = 2301; - rType = 0; - vrLen = 425; - vrLoc = 2113; - }; - A1E70E560A38C9FD007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = cc_list_type; - rLen = 12; - rLoc = 2736; - rType = 0; - vrLen = 728; - vrLoc = 2219; - }; - A1E70E580A38C9FD007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1C0A38B5BB007BE3E3 /* datastore.h */; - name = cc_list_type; - rLen = 0; - rLoc = 2301; - rType = 0; - vrLen = 425; - vrLoc = 2113; - }; - A1E70E6F0A38CA08007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1F0A38B5BB007BE3E3 /* msg.h */; - name = "#include \"generic_lists.h\""; - rLen = 27; - rLoc = 2765; - rType = 0; - vrLen = 755; - vrLoc = 2478; - }; - A1E70E770A38CA55007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D190A38B5BB007BE3E3 /* cc_rpc.h */; - name = "#include \"msg.h\""; - rLen = 18; - rLoc = 2202; - rType = 0; - vrLen = 644; - vrLoc = 1674; - }; - A1E70E7D0A38CA55007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D190A38B5BB007BE3E3 /* cc_rpc.h */; - name = "#include \"msg.h\""; - rLen = 18; - rLoc = 2202; - rType = 0; - vrLen = 644; - vrLoc = 1674; - }; - A1E70E9C0A38CAF1007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "generic_lists.c: 56"; - rLen = 0; - rLoc = 2280; - rType = 0; - vrLen = 463; - vrLoc = 2119; - }; - A1E70EA80A38CB24007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = "generic_lists.h: cc_generic_list_node_t"; - rLen = 0; - rLoc = 2452; - rType = 0; - vrLen = 598; - vrLoc = 2206; - }; - A1E70EAB0A38CB24007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D080A38B5BB007BE3E3 /* context.c */; - name = "code = cci_msg_add_data_blob(request, (void *)name, strlen(name) + 1, &blob_pos);"; - rLen = 86; - rLoc = 14073; - rType = 0; - vrLen = 704; - vrLoc = 13925; - }; - A1E70EB50A38CB4D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D000A38B5BB007BE3E3 /* cacheapi.c */; - name = "strncpy(vendor, string, sizeof(vendor)-1);"; - rLen = 55; - rLoc = 4926; - rType = 0; - vrLen = 780; - vrLoc = 1821; - }; - A1E70EC30A38CC14007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D010A38B5BB007BE3E3 /* ccache.c */; - name = "ccache.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1115; - vrLoc = 0; - }; - A1E70ECB0A38CC4C007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE40A38C6FD007BE3E3 /* kipc_client.c */; - name = "#include <Kerberos/kipc_client.h>"; - rLen = 34; - rLoc = 1240; - rType = 0; - vrLen = 891; - vrLoc = 724; - }; - A1E70ED70A38CCB6007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE40A38C6FD007BE3E3 /* kipc_client.c */; - name = "#include <Kerberos/kipc_client.h>"; - rLen = 34; - rLoc = 1240; - rType = 0; - vrLen = 1069; - vrLoc = 582; - }; - A1E70EE20A38CCD6007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DB10A38C01E007BE3E3 /* mig_types.h */; - name = "ccapi_ipc.h: 39"; - rLen = 0; - rLoc = 1957; - rType = 0; - vrLen = 892; - vrLoc = 1209; - }; - A1E70EFE0A38CD66007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE10A38C6FD007BE3E3 /* kipc_common.h */; - name = "#include <Kerberos/KerberosDebug.h>"; - rLen = 36; - rLoc = 1293; - rType = 0; - vrLen = 609; - vrLoc = 1011; - }; - A1E70F0F0A38CE21007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D3B0A38B5BB007BE3E3 /* client.c */; - name = "client.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 903; - vrLoc = 0; - }; - A1E70F440A38D252007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DB10A38C01E007BE3E3 /* mig_types.h */; - name = "msg_ipc.h: 48"; - rLen = 0; - rLoc = 2188; - rType = 0; - vrLen = 793; - vrLoc = 1409; - }; - A1E70F450A38D252007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DE10A38C6FD007BE3E3 /* kipc_common.h */; - name = "kipc_common.h: 32"; - rLen = 0; - rLoc = 1293; - rType = 0; - vrLen = 1252; - vrLoc = 450; - }; - A1E70F8B0A38D3B4007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D9E0A38BCAD007BE3E3 /* mig.defs */; - name = "msg_ipc.defs: 43"; - rLen = 0; - rLoc = 2111; - rType = 0; - vrLen = 1149; - vrLoc = 1378; - }; - A1E70F9C0A38D41E007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70DB10A38C01E007BE3E3 /* mig_types.h */; - name = "mig_types.h: 48"; - rLen = 0; - rLoc = 2188; - rType = 0; - vrLen = 1178; - vrLoc = 1024; - }; - A1E70F9D0A38D41E007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D9E0A38BCAD007BE3E3 /* mig.defs */; - name = "mig.defs: 44"; - rLen = 0; - rLoc = 2123; - rType = 0; - vrLen = 1034; - vrLoc = 1439; - }; - A1E70FC60A38D560007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70FC70A38D560007BE3E3 /* migServer.h */; - name = ccapi_server; - rLen = 12; - rLoc = 1268; - rType = 0; - vrLen = 879; - vrLoc = 942; - }; - A1E70FC70A38D560007BE3E3 /* migServer.h */ = { - isa = PBXFileReference; - name = migServer.h; - path = "/Volumes/Ra-Tilt/Users/lxs/Builds/CCAPI.build/Debug/CCacheServer.build/DerivedSources/migServer.h"; - sourceTree = "<absolute>"; - }; - A1E70FC80A38D560007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D930A38BB67007BE3E3 /* main.c */; - name = "main.c: 23"; - rLen = 0; - rLoc = 495; - rType = 0; - vrLen = 691; - vrLoc = 0; - }; - A1E70FC90A38D560007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1C0A38B5BB007BE3E3 /* datastore.h */; - name = "datastore.h: 55"; - rLen = 0; - rLoc = 2301; - rType = 0; - vrLen = 805; - vrLoc = 2101; - }; - A1E70FCA0A38D560007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = "generic_lists.h: 52"; - rLen = 0; - rLoc = 2371; - rType = 0; - vrLen = 757; - vrLoc = 2012; - }; - A1E70FCD0A38D560007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D930A38BB67007BE3E3 /* main.c */; - name = "main.c: 23"; - rLen = 0; - rLoc = 495; - rType = 0; - vrLen = 691; - vrLoc = 0; - }; - A1E70FD80A38D573007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D930A38BB67007BE3E3 /* main.c */; - name = "syslog (LOG_INFO, \"Starting up.\");"; - rLen = 42; - rLoc = 316; - rType = 0; - vrLen = 628; - vrLoc = 21; - }; - A1E70FEE0A38D7C0007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D130A38B5BB007BE3E3 /* marshall.c */; - name = "marshall.c: 48"; - rLen = 0; - rLoc = 2234; - rType = 0; - vrLen = 831; - vrLoc = 1674; - }; - A1E70FEF0A38D7C0007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D010A38B5BB007BE3E3 /* ccache.c */; - name = "ccache.c: 49"; - rLen = 0; - rLoc = 2186; - rType = 0; - vrLen = 432; - vrLoc = 2106; - }; - A1E70FF00A38D7C0007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D080A38B5BB007BE3E3 /* context.c */; - name = "code = cci_msg_retrieve_blob(response, ntohl(response_header->vendor_offset), ntohl(response_header->vendor_length), &string);"; - rLen = 139; - rLoc = 29872; - rType = 0; - vrLen = 757; - vrLoc = 27442; - }; - A1E70FFA0A38D806007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D130A38B5BB007BE3E3 /* marshall.c */; - name = "memcpy(creds->client, flat + header->client.data, length);"; - rLen = 68; - rLoc = 11995; - rType = 0; - vrLen = 1038; - vrLoc = 11543; - }; - A1E70FFC0A38D806007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D020A38B5BB007BE3E3 /* ccache.h */; - name = cc_handle; - rLen = 9; - rLoc = 2339; - rType = 0; - vrLen = 663; - vrLoc = 2042; - }; - A1E70FFF0A38D806007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D020A38B5BB007BE3E3 /* ccache.h */; - name = cc_handle; - rLen = 9; - rLoc = 2339; - rType = 0; - vrLen = 663; - vrLoc = 2042; - }; - A1E710010A38D814007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = cc_handle; - rLen = 9; - rLoc = 5095; - rType = 0; - vrLen = 617; - vrLoc = 4722; - }; - A1E7100A0A38D888007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = cc_handle; - rLen = 9; - rLoc = 5095; - rType = 0; - vrLen = 619; - vrLoc = 4720; - }; - A1E7100C0A38D888007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D080A38B5BB007BE3E3 /* context.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 29891; - rType = 0; - vrLen = 1038; - vrLoc = 29282; - }; - A1E7100D0A38D888007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D0C0A38B5BB007BE3E3 /* credentials_iterator.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 6723; - rType = 0; - vrLen = 1080; - vrLoc = 6223; - }; - A1E710110A38D888007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D2F0A38B5BB007BE3E3 /* serv_ops.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 22827; - rType = 0; - vrLen = 921; - vrLoc = 22183; - }; - A1E710140A38D888007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D0C0A38B5BB007BE3E3 /* credentials_iterator.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 6723; - rType = 0; - vrLen = 1080; - vrLoc = 6223; - }; - A1E7103C0A38DE0B007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1F0A38B5BB007BE3E3 /* msg.h */; - name = "msg.h: 142"; - rLen = 0; - rLoc = 5529; - rType = 0; - vrLen = 1239; - vrLoc = 4630; - }; - A1E710400A38DE0B007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: cci_msg_retrieve_blob"; - rLen = 0; - rLoc = 15353; - rType = 0; - vrLen = 962; - vrLoc = 14947; - }; - A1E710530A39EC0B007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D2F0A38B5BB007BE3E3 /* serv_ops.c */; - name = "serv_ops.c: 322"; - rLen = 0; - rLoc = 12676; - rType = 0; - vrLen = 1049; - vrLoc = 12199; - }; - A1E7105A0A39ED89007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D000A38B5BB007BE3E3 /* cacheapi.c */; - name = "code = cci_msg_retrieve_blob(response, ntohl(response_header->vendor_offset), ntohl(response_header->vendor_length), &string);"; - rLen = 139; - rLoc = 4787; - rType = 0; - vrLen = 1079; - vrLoc = 4176; - }; - A1E7105D0A39ED89007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D000A38B5BB007BE3E3 /* cacheapi.c */; - name = "code = cci_msg_retrieve_blob(response, ntohl(response_header->vendor_offset), ntohl(response_header->vendor_length), &string);"; - rLen = 139; - rLoc = 4787; - rType = 0; - vrLen = 1079; - vrLoc = 4176; - }; - A1E7105E0A39ED89007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "cur_pos = msg->flat;"; - rLen = 25; - rLoc = 7704; - rType = 0; - vrLen = 835; - vrLoc = 7353; - }; - A1E710680A39F102007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D2F0A38B5BB007BE3E3 /* serv_ops.c */; - name = "resp_header->ccache = htonll((cc_handle) ccache);"; - rLen = 54; - rLoc = 23249; - rType = 0; - vrLen = 1200; - vrLoc = 22714; - }; - A1E710840A3A1CFB007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D010A38B5BB007BE3E3 /* ccache.c */; - name = "ccache.c: 378"; - rLen = 0; - rLoc = 11919; - rType = 0; - vrLen = 1092; - vrLoc = 11685; - }; - A1E710860A3A1CFB007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: 585"; - rLen = 0; - rLoc = 15353; - rType = 0; - vrLen = 1129; - vrLoc = 14797; - }; - A1E710870A3A1CFB007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D010A38B5BB007BE3E3 /* ccache.c */; - name = "ccache.c: 378"; - rLen = 0; - rLoc = 11919; - rType = 0; - vrLen = 1092; - vrLoc = 11685; - }; - A1E710890A3A1D04007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D280A38B5BB007BE3E3 /* ccs_ccache.c */; - name = "ccs_ccache.c: 289"; - rLen = 0; - rLoc = 9783; - rType = 0; - vrLen = 919; - vrLoc = 9327; - }; - A1E7108B0A3A1D04007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D280A38B5BB007BE3E3 /* ccs_ccache.c */; - name = "ccs_ccache.c: 289"; - rLen = 0; - rLoc = 9783; - rType = 0; - vrLen = 919; - vrLoc = 9327; - }; - A1E7108D0A3A1D06007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D280A38B5BB007BE3E3 /* ccs_ccache.c */; - name = "ccs_ccache.c: 289"; - rLen = 0; - rLoc = 9783; - rType = 0; - vrLen = 1441; - vrLoc = 9196; - }; - A1E710930A3A1D22007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D2F0A38B5BB007BE3E3 /* serv_ops.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 36879; - rType = 0; - vrLen = 1393; - vrLoc = 35980; - }; - A1E710940A3A1D22007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1F0A38B5BB007BE3E3 /* msg.h */; - name = "msg.h: 142"; - rLen = 0; - rLoc = 5529; - rType = 0; - vrLen = 1480; - vrLoc = 4457; - }; - A1E710950A3A1D22007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - rLen = 21; - rLoc = 14700; - rType = 0; - }; - A1E710960A3A1D22007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D2F0A38B5BB007BE3E3 /* serv_ops.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 36879; - rType = 0; - vrLen = 1393; - vrLoc = 35980; - }; - A1E710970A3A1D22007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1F0A38B5BB007BE3E3 /* msg.h */; - name = "msg.h: 142"; - rLen = 0; - rLoc = 5529; - rType = 0; - vrLen = 1480; - vrLoc = 4457; - }; - A1E7109C0A3A1D2B007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D2F0A38B5BB007BE3E3 /* serv_ops.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 36879; - rType = 0; - vrLen = 1196; - vrLoc = 36344; - }; - A1E7109D0A3A1D2B007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - comments = "error: conflicting types for 'cci_msg_retrieve_blob'"; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - rLen = 1; - rLoc = 570; - rType = 1; - }; - A1E7109F0A3A1DD0007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: 1248"; - rLen = 0; - rLoc = 16800; - rType = 0; - vrLen = 1576; - vrLoc = 14015; - }; - A1E710A00A3A1DD0007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: 1248"; - rLen = 0; - rLoc = 16800; - rType = 0; - vrLen = 1582; - vrLoc = 0; - }; - A1E710A50A3A22E1007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: 623"; - rLen = 0; - rLoc = 16800; - rType = 0; - vrLen = 1674; - vrLoc = 0; - }; - A1E710AB0A3A22F5007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: 623"; - rLen = 0; - rLoc = 16800; - rType = 0; - vrLen = 2012; - vrLoc = 0; - }; - A1E710AC0A3A22F5007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: cci_msg_retrieve_blob"; - rLen = 0; - rLoc = 15346; - rType = 0; - vrLen = 1284; - vrLoc = 15187; - }; - A1E710AD0A3A22F5007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: cci_msg_retrieve_blob"; - rLen = 0; - rLoc = 15346; - rType = 0; - vrLen = 1209; - vrLoc = 15187; - }; - A1E710AF0A3A22FE007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: cci_msg_retrieve_blob"; - rLen = 0; - rLoc = 15346; - rType = 0; - vrLen = 1589; - vrLoc = 14614; - }; - A1E710B30A3A22FF007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = "msg.c: cci_msg_retrieve_blob"; - rLen = 0; - rLoc = 15346; - rType = 0; - vrLen = 1209; - vrLoc = 15187; - }; - A1E710B90A3A23FB007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 15262; - rType = 0; - vrLen = 1209; - vrLoc = 15187; - }; - A1E710BC0A3A2415007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 15262; - rType = 0; - vrLen = 1356; - vrLoc = 15083; - }; - A1E710BD0A3A2415007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "generic_lists.c: 56"; - rLen = 0; - rLoc = 2280; - rType = 0; - vrLen = 873; - vrLoc = 1826; - }; - A1E710BE0A3A2415007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 15262; - rType = 0; - vrLen = 1356; - vrLoc = 15083; - }; - A1E710BF0A3A2415007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "generic_lists.c: 56"; - rLen = 0; - rLoc = 2280; - rType = 0; - vrLen = 863; - vrLoc = 1826; - }; - A1E710C00A3A2415007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 15262; - rType = 0; - vrLen = 1209; - vrLoc = 15187; - }; - A1E710C60A3A2441007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "generic_lists.c: 56"; - rLen = 0; - rLoc = 2280; - rType = 0; - vrLen = 863; - vrLoc = 1826; - }; - A1E710C70A3A2441007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = "generic_lists.h: 54"; - rLen = 0; - rLoc = 2452; - rType = 0; - vrLen = 1215; - vrLoc = 1674; - }; - A1E710C80A3A2441007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "generic_lists.c: 56"; - rLen = 0; - rLoc = 2280; - rType = 0; - vrLen = 863; - vrLoc = 1826; - }; - A1E710C90A3A2441007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = "generic_lists.h: 58"; - rLen = 0; - rLoc = 2369; - rType = 0; - vrLen = 939; - vrLoc = 1935; - }; - A1E710CA0A3A244D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D140A38B5BB007BE3E3 /* msg.c */; - name = cci_msg_retrieve_blob; - rLen = 21; - rLoc = 15262; - rType = 0; - vrLen = 1209; - vrLoc = 15187; - }; - A1E710CB0A3A244D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = "generic_lists.h: 58"; - rLen = 0; - rLoc = 2369; - rType = 0; - vrLen = 696; - vrLoc = 2147; - }; - A1E710CC0A3A244D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - comments = "error: CredentialsCache.h: No such file or directory"; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - rLen = 1; - rLoc = 53; - rType = 1; - }; - A1E710CD0A3A244D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = "generic_lists.h: 58"; - rLen = 0; - rLoc = 2369; - rType = 0; - vrLen = 696; - vrLoc = 2147; - }; - A1E710CE0A3A244D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "#include \"CredentialsCache.h\""; - rLen = 31; - rLoc = 2221; - rType = 0; - vrLen = 608; - vrLoc = 2043; - }; - A1E710D00A3A2456007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = "generic_lists.h: 58"; - rLen = 0; - rLoc = 2369; - rType = 0; - vrLen = 906; - vrLoc = 2012; - }; - A1E710D10A3A2456007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "#include \"CredentialsCache.h\""; - rLen = 31; - rLoc = 2221; - rType = 0; - vrLen = 861; - vrLoc = 1792; - }; - A1E710D20A3A2456007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = cc_handle; - rLen = 9; - rLoc = 5095; - rType = 0; - vrLen = 822; - vrLoc = 4694; - }; - A1E710D30A3A2456007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "#include \"CredentialsCache.h\""; - rLen = 31; - rLoc = 2221; - rType = 0; - vrLen = 861; - vrLoc = 1792; - }; - A1E710D40A3A2456007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = cc_handle; - rLen = 9; - rLoc = 5095; - rType = 0; - vrLen = 822; - vrLoc = 4694; - }; - A1E710D70A3A2465007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = cc_handle; - rLen = 9; - rLoc = 5095; - rType = 0; - vrLen = 802; - vrLoc = 4694; - }; - A1E710D80A3A2465007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "#include \"CredentialsCache.h\""; - rLen = 31; - rLoc = 2221; - rType = 0; - vrLen = 683; - vrLoc = 1899; - }; - A1E710D90A3A2465007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = cc_handle; - rLen = 9; - rLoc = 5095; - rType = 0; - vrLen = 726; - vrLoc = 4701; - }; - A1E710DB0A3A246E007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = cc_handle; - rLen = 9; - rLoc = 5095; - rType = 0; - vrLen = 726; - vrLoc = 4701; - }; - A1E710DF0A3A247D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1B0A38B5BB007BE3E3 /* CredentialsCache2.h */; - name = "CredentialsCache2.h: 303"; - rLen = 0; - rLoc = 7813; - rType = 0; - vrLen = 786; - vrLoc = 7144; - }; - A1E710E00A3A247D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = cc_handle; - rLen = 9; - rLoc = 5095; - rType = 0; - vrLen = 802; - vrLoc = 4694; - }; - A1E710E10A3A247D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = cc_handle; - rLen = 9; - rLoc = 5095; - rType = 0; - vrLen = 802; - vrLoc = 4694; - }; - A1E710E20A3A247D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1B0A38B5BB007BE3E3 /* CredentialsCache2.h */; - name = "CredentialsCache2.h: 303"; - rLen = 0; - rLoc = 7813; - rType = 0; - vrLen = 786; - vrLoc = 7144; - }; - A1E710E30A3A247D007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 836; - vrLoc = 2610; - }; - A1E710E50A3A248A007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 1007; - vrLoc = 2180; - }; - A1E710E60A3A248A007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 750; - vrLoc = 2696; - }; - A1E710E70A3A24A4007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 750; - vrLoc = 2696; - }; - A1E710E80A3A24A5007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 825; - vrLoc = 2639; - }; - A1E710E90A3A24A5007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 750; - vrLoc = 2696; - }; - A1E710EA0A3A2521007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 825; - vrLoc = 2639; - }; - A1E710EB0A3A2521007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1B0A38B5BB007BE3E3 /* CredentialsCache2.h */; - name = "CredentialsCache2.h: 303"; - rLen = 0; - rLoc = 7813; - rType = 0; - vrLen = 1103; - vrLoc = 1564; - }; - A1E710EC0A3A2521007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = "generic_lists.h: 58"; - rLen = 0; - rLoc = 2369; - rType = 0; - vrLen = 906; - vrLoc = 2012; - }; - A1E710ED0A3A2521007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 825; - vrLoc = 2639; - }; - A1E710EE0A3A2521007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1B0A38B5BB007BE3E3 /* CredentialsCache2.h */; - name = "CredentialsCache2.h: 303"; - rLen = 0; - rLoc = 7813; - rType = 0; - vrLen = 1103; - vrLoc = 1564; - }; - A1E710EF0A3A2521007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1D0A38B5BB007BE3E3 /* generic_lists.h */; - name = "generic_lists.h: 58"; - rLen = 0; - rLoc = 2369; - rType = 0; - vrLen = 906; - vrLoc = 2012; - }; - A1E710F00A3A2521007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "generic_lists.c: 56"; - rLen = 0; - rLoc = 2280; - rType = 0; - vrLen = 842; - vrLoc = 1792; - }; - A1E710F10A3A2521007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 750; - vrLoc = 2696; - }; - A1E710F40A3A253F007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D120A38B5BB007BE3E3 /* generic_lists.c */; - name = "generic_lists.c: 57"; - rLen = 0; - rLoc = 2282; - rType = 0; - vrLen = 861; - vrLoc = 1792; - }; - A1E710F50A3A253F007BE3E3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A1E70D1A0A38B5BB007BE3E3 /* CredentialsCache.h */; - name = "CredentialsCache.h: 67"; - rLen = 0; - rLoc = 2631; - rType = 0; - vrLen = 750; - vrLoc = 2696; - }; - D2AAC045055464E500DB518D /* CCAPI */ = { - activeExec = 0; - }; -} diff --git a/src/lib/ccapi/mac/CCAPI.xcodeproj/lxs.perspective b/src/lib/ccapi/mac/CCAPI.xcodeproj/lxs.perspective deleted file mode 100644 index 198370765..000000000 --- a/src/lib/ccapi/mac/CCAPI.xcodeproj/lxs.perspective +++ /dev/null @@ -1,1567 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>ActivePerspectiveName</key> - <string>Project</string> - <key>AllowedModules</key> - <array> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Name</key> - <string>Groups and Files Outline View</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Name</key> - <string>Editor</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCTaskListModule</string> - <key>Name</key> - <string>Task List</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCDetailModule</string> - <key>Name</key> - <string>File and Smart Group Detail Viewer</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXBuildResultsModule</string> - <key>Name</key> - <string>Detailed Build Results Viewer</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXProjectFindModule</string> - <key>Name</key> - <string>Project Batch Find Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXRunSessionModule</string> - <key>Name</key> - <string>Run Log</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXBookmarksModule</string> - <key>Name</key> - <string>Bookmarks Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXClassBrowserModule</string> - <key>Name</key> - <string>Class Browser</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXCVSModule</string> - <key>Name</key> - <string>Source Code Control Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXDebugBreakpointsModule</string> - <key>Name</key> - <string>Debug Breakpoints Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCDockableInspector</string> - <key>Name</key> - <string>Inspector</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXOpenQuicklyModule</string> - <key>Name</key> - <string>Open Quickly Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXDebugSessionModule</string> - <key>Name</key> - <string>Debugger</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXDebugCLIModule</string> - <key>Name</key> - <string>Debug Console</string> - </dict> - </array> - <key>Description</key> - <string>AIODescriptionKey</string> - <key>DockingSystemVisible</key> - <false/> - <key>Extension</key> - <string>perspective</string> - <key>FavBarConfig</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>A1E70E750A38CA08007BE3E3</string> - <key>XCBarModuleItemNames</key> - <dict/> - <key>XCBarModuleItems</key> - <array/> - </dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>com.apple.perspectives.project.default</string> - <key>MajorVersion</key> - <integer>33</integer> - <key>MinorVersion</key> - <integer>0</integer> - <key>Name</key> - <string>All-In-One</string> - <key>Notifications</key> - <array> - <dict> - <key>XCObserverAutoDisconnectKey</key> - <true/> - <key>XCObserverDefintionKey</key> - <dict/> - <key>XCObserverFactoryKey</key> - <string>XCPerspectivesSpecificationIdentifier</string> - <key>XCObserverGUIDKey</key> - <string>XCObserverProjectIdentifier</string> - <key>XCObserverNotificationKey</key> - <string>PBXStatusBuildStateMessageNotification</string> - <key>XCObserverTargetKey</key> - <string>XCMainBuildResultsModuleGUID</string> - <key>XCObserverTriggerKey</key> - <string>awakenModuleWithObserver:</string> - <key>XCObserverValidationKey</key> - <dict/> - </dict> - </array> - <key>OpenEditors</key> - <array/> - <key>PerspectiveWidths</key> - <array> - <integer>1340</integer> - <integer>1340</integer> - <integer>1340</integer> - </array> - <key>Perspectives</key> - <array> - <dict> - <key>ChosenToolbarItems</key> - <array> - <string>XCToolbarPerspectiveControl</string> - <string>NSToolbarSeparatorItem</string> - <string>active-target-popup</string> - <string>action</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>buildOrClean</string> - <string>build-and-runOrDebug</string> - <string>com.apple.ide.PBXToolbarStopButton</string> - <string>get-info</string> - <string>toggle-editor</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>com.apple.pbx.toolbar.searchfield</string> - </array> - <key>ControllerClassBaseName</key> - <string></string> - <key>IconName</key> - <string>WindowOfProject</string> - <key>Identifier</key> - <string>perspective.project</string> - <key>IsVertical</key> - <false/> - <key>Layout</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C37FBAC04509CD000000102</string> - <string>1C37FAAC04509CD000000102</string> - <string>1C08E77C0454961000C914BD</string> - <string>1C37FABC05509CD000000102</string> - <string>1C37FABC05539CD112110102</string> - <string>E2644B35053B69B200211256</string> - <string>1C37FABC04509CD000100104</string> - <string>1CC0EA4004350EF90044410B</string> - <string>1CC0EA4004350EF90041110B</string> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>1CA23ED40692098700951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>yes</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>268</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>08FB7794FE84155DC02AAC07</string> - <string>A1E70CFF0A38B5BB007BE3E3</string> - <string>A1E70D110A38B5BB007BE3E3</string> - <string>A1E70D7E0A38BAC5007BE3E3</string> - <string>A1E70D180A38B5BB007BE3E3</string> - <string>A1E70D270A38B5BB007BE3E3</string> - <string>A1E70D2B0A38B5BB007BE3E3</string> - <string>A1E70D390A38B5BB007BE3E3</string> - <string>1C37FBAC04509CD000000102</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>24</integer> - <integer>19</integer> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {268, 841}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <false/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {285, 859}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>268</real> - </array> - <key>RubberWindowFrame</key> - <string>170 278 1340 900 0 0 1920 1178 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>285pt</string> - </dict> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>A1E70DF50A38C765007BE3E3</string> - <key>PBXProjectModuleLabel</key> - <string>generic_lists.c</string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>A1E70DF60A38C765007BE3E3</string> - <key>PBXProjectModuleLabel</key> - <string>generic_lists.c</string> - <key>_historyCapacity</key> - <integer>0</integer> - <key>bookmark</key> - <string>A1E710F40A3A253F007BE3E3</string> - <key>history</key> - <array> - <string>A1E70DF90A38C765007BE3E3</string> - <string>A1E70DFA0A38C765007BE3E3</string> - <string>A1E70DFB0A38C765007BE3E3</string> - <string>A1E70E010A38C765007BE3E3</string> - <string>A1E70E020A38C765007BE3E3</string> - <string>A1E70E090A38C765007BE3E3</string> - <string>A1E70E0A0A38C765007BE3E3</string> - <string>A1E70E0B0A38C765007BE3E3</string> - <string>A1E70E0C0A38C765007BE3E3</string> - <string>A1E70E3D0A38C78C007BE3E3</string> - <string>A1E70E4A0A38C7BE007BE3E3</string> - <string>A1E70E520A38C9FD007BE3E3</string> - <string>A1E70E530A38C9FD007BE3E3</string> - <string>A1E70E770A38CA55007BE3E3</string> - <string>A1E70EB50A38CB4D007BE3E3</string> - <string>A1E70ED70A38CCB6007BE3E3</string> - <string>A1E70EFE0A38CD66007BE3E3</string> - <string>A1E70F0F0A38CE21007BE3E3</string> - <string>A1E70F9C0A38D41E007BE3E3</string> - <string>A1E70F9D0A38D41E007BE3E3</string> - <string>A1E70FC60A38D560007BE3E3</string> - <string>A1E70FD80A38D573007BE3E3</string> - <string>A1E70FFA0A38D806007BE3E3</string> - <string>A1E70FFC0A38D806007BE3E3</string> - <string>A1E7100C0A38D888007BE3E3</string> - <string>A1E7100D0A38D888007BE3E3</string> - <string>A1E710840A3A1CFB007BE3E3</string> - <string>A1E7108D0A3A1D06007BE3E3</string> - <string>A1E710930A3A1D22007BE3E3</string> - <string>A1E710940A3A1D22007BE3E3</string> - <string>A1E710BC0A3A2415007BE3E3</string> - <string>A1E710EA0A3A2521007BE3E3</string> - <string>A1E710EB0A3A2521007BE3E3</string> - <string>A1E710EC0A3A2521007BE3E3</string> - <string>A1E710D10A3A2456007BE3E3</string> - </array> - <key>prevStack</key> - <array> - <string>A1E70E100A38C765007BE3E3</string> - <string>A1E70E110A38C765007BE3E3</string> - <string>A1E70E120A38C765007BE3E3</string> - <string>A1E70E130A38C765007BE3E3</string> - <string>A1E70E140A38C765007BE3E3</string> - <string>A1E70E150A38C765007BE3E3</string> - <string>A1E70E160A38C765007BE3E3</string> - <string>A1E70E180A38C765007BE3E3</string> - <string>A1E70E1B0A38C765007BE3E3</string> - <string>A1E70E1E0A38C765007BE3E3</string> - <string>A1E70E1F0A38C765007BE3E3</string> - <string>A1E70E200A38C765007BE3E3</string> - <string>A1E70E250A38C765007BE3E3</string> - <string>A1E70E260A38C765007BE3E3</string> - <string>A1E70E290A38C765007BE3E3</string> - <string>A1E70E2A0A38C765007BE3E3</string> - <string>A1E70E2B0A38C765007BE3E3</string> - <string>A1E70E2D0A38C765007BE3E3</string> - <string>A1E70E2E0A38C765007BE3E3</string> - <string>A1E70E380A38C778007BE3E3</string> - <string>A1E70E410A38C78C007BE3E3</string> - <string>A1E70E450A38C791007BE3E3</string> - <string>A1E70E560A38C9FD007BE3E3</string> - <string>A1E70E580A38C9FD007BE3E3</string> - <string>A1E70E6F0A38CA08007BE3E3</string> - <string>A1E70E7D0A38CA55007BE3E3</string> - <string>A1E70EAB0A38CB24007BE3E3</string> - <string>A1E70EC30A38CC14007BE3E3</string> - <string>A1E70EE20A38CCD6007BE3E3</string> - <string>A1E70FFF0A38D806007BE3E3</string> - <string>A1E710110A38D888007BE3E3</string> - <string>A1E710140A38D888007BE3E3</string> - <string>A1E710BE0A3A2415007BE3E3</string> - <string>A1E710C80A3A2441007BE3E3</string> - <string>A1E710D30A3A2456007BE3E3</string> - <string>A1E710E10A3A247D007BE3E3</string> - <string>A1E710E20A3A247D007BE3E3</string> - <string>A1E710ED0A3A2521007BE3E3</string> - <string>A1E710EE0A3A2521007BE3E3</string> - <string>A1E710EF0A3A2521007BE3E3</string> - </array> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <true/> - <key>XCSharingToken</key> - <string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {1050, 553}}</string> - <key>RubberWindowFrame</key> - <string>170 278 1340 900 0 0 1920 1178 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>553pt</string> - </dict> - <dict> - <key>Proportion</key> - <string>301pt</string> - <key>Tabs</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CA23EDF0692099D00951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>Detail</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{10, 27}, {1050, 274}}</string> - <key>RubberWindowFrame</key> - <string>170 278 1340 900 0 0 1920 1178 </string> - </dict> - <key>Module</key> - <string>XCDetailModule</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CA23EE00692099D00951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>Project Find</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{10, 27}, {1050, 274}}</string> - </dict> - <key>Module</key> - <string>PBXProjectFindModule</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CA23EE10692099D00951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>SCM Results</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{10, 31}, {603, 297}}</string> - </dict> - <key>Module</key> - <string>PBXCVSModule</string> - </dict> - </array> - </dict> - </array> - <key>Proportion</key> - <string>1050pt</string> - </dict> - </array> - <key>Name</key> - <string>Project</string> - <key>ServiceClasses</key> - <array> - <string>XCModuleDock</string> - <string>PBXSmartGroupTreeModule</string> - <string>XCModuleDock</string> - <string>PBXNavigatorGroup</string> - <string>XCDockableTabModule</string> - <string>XCDetailModule</string> - <string>PBXProjectFindModule</string> - <string>PBXCVSModule</string> - </array> - <key>TableOfContents</key> - <array> - <string>A1E710B00A3A22FE007BE3E3</string> - <string>1CA23ED40692098700951B8B</string> - <string>A1E710B10A3A22FE007BE3E3</string> - <string>A1E70DF50A38C765007BE3E3</string> - <string>A1E710B20A3A22FE007BE3E3</string> - <string>1CA23EDF0692099D00951B8B</string> - <string>1CA23EE00692099D00951B8B</string> - <string>1CA23EE10692099D00951B8B</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.default</string> - </dict> - <dict> - <key>ChosenToolbarItems</key> - <array> - <string>XCToolbarPerspectiveControl</string> - <string>NSToolbarSeparatorItem</string> - <string>active-target-popup</string> - <string>active-executable-popup</string> - <string>active-buildstyle-popup</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>build</string> - <string>clean</string> - <string>NSToolbarSeparatorItem</string> - <string>run</string> - <string>debug</string> - </array> - <key>ControllerClassBaseName</key> - <string></string> - <key>IconName</key> - <string>BuildTabIcon</string> - <key>Identifier</key> - <string>perspective.build</string> - <key>IsVertical</key> - <false/> - <key>Layout</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array/> - <key>PBXProjectModuleGUID</key> - <string>1CA23EE50692099D00951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>yes</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>184</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array/> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {184, 841}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <false/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {201, 859}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>184</real> - </array> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>201pt</string> - </dict> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>A1E70DF50A38C765007BE3E3</string> - <key>PBXProjectModuleLabel</key> - <string>CredentialsCache.h</string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>A1E70DF60A38C765007BE3E3</string> - <key>PBXProjectModuleLabel</key> - <string>CredentialsCache.h</string> - <key>_historyCapacity</key> - <integer>0</integer> - <key>bookmark</key> - <string>A1E710F50A3A253F007BE3E3</string> - <key>history</key> - <array> - <string>A1E70DF70A38C765007BE3E3</string> - <string>A1E70DF80A38C765007BE3E3</string> - <string>A1E70DF90A38C765007BE3E3</string> - <string>A1E70DFA0A38C765007BE3E3</string> - <string>A1E70DFB0A38C765007BE3E3</string> - <string>A1E70E010A38C765007BE3E3</string> - <string>A1E70E020A38C765007BE3E3</string> - <string>A1E70E060A38C765007BE3E3</string> - <string>A1E70E090A38C765007BE3E3</string> - <string>A1E70E0A0A38C765007BE3E3</string> - <string>A1E70E0B0A38C765007BE3E3</string> - <string>A1E70E0C0A38C765007BE3E3</string> - <string>A1E70E3D0A38C78C007BE3E3</string> - <string>A1E70E430A38C791007BE3E3</string> - <string>A1E70E770A38CA55007BE3E3</string> - <string>A1E70ECB0A38CC4C007BE3E3</string> - <string>A1E70F440A38D252007BE3E3</string> - <string>A1E70F450A38D252007BE3E3</string> - <string>A1E70F8B0A38D3B4007BE3E3</string> - <string>A1E70FC60A38D560007BE3E3</string> - <string>A1E70FC80A38D560007BE3E3</string> - <string>A1E70FC90A38D560007BE3E3</string> - <string>A1E70FEE0A38D7C0007BE3E3</string> - <string>A1E70FEF0A38D7C0007BE3E3</string> - <string>A1E70FF00A38D7C0007BE3E3</string> - <string>A1E70FFC0A38D806007BE3E3</string> - <string>A1E7100D0A38D888007BE3E3</string> - <string>A1E7103C0A38DE0B007BE3E3</string> - <string>A1E7105A0A39ED89007BE3E3</string> - <string>A1E710890A3A1D04007BE3E3</string> - <string>A1E7109C0A3A1D2B007BE3E3</string> - <string>A1E710CA0A3A244D007BE3E3</string> - <string>A1E710CB0A3A244D007BE3E3</string> - <string>A1E710D80A3A2465007BE3E3</string> - <string>A1E710E30A3A247D007BE3E3</string> - </array> - <key>prevStack</key> - <array> - <string>A1E70E100A38C765007BE3E3</string> - <string>A1E70E110A38C765007BE3E3</string> - <string>A1E70E120A38C765007BE3E3</string> - <string>A1E70E130A38C765007BE3E3</string> - <string>A1E70E140A38C765007BE3E3</string> - <string>A1E70E150A38C765007BE3E3</string> - <string>A1E70E160A38C765007BE3E3</string> - <string>A1E70E170A38C765007BE3E3</string> - <string>A1E70E180A38C765007BE3E3</string> - <string>A1E70E1E0A38C765007BE3E3</string> - <string>A1E70E1F0A38C765007BE3E3</string> - <string>A1E70E250A38C765007BE3E3</string> - <string>A1E70E260A38C765007BE3E3</string> - <string>A1E70E290A38C765007BE3E3</string> - <string>A1E70E2A0A38C765007BE3E3</string> - <string>A1E70E2B0A38C765007BE3E3</string> - <string>A1E70E2D0A38C765007BE3E3</string> - <string>A1E70E2E0A38C765007BE3E3</string> - <string>A1E70E380A38C778007BE3E3</string> - <string>A1E70E410A38C78C007BE3E3</string> - <string>A1E70E450A38C791007BE3E3</string> - <string>A1E70E560A38C9FD007BE3E3</string> - <string>A1E70E580A38C9FD007BE3E3</string> - <string>A1E70E7D0A38CA55007BE3E3</string> - <string>A1E70EAB0A38CB24007BE3E3</string> - <string>A1E70EC30A38CC14007BE3E3</string> - <string>A1E70EE20A38CCD6007BE3E3</string> - <string>A1E70FCD0A38D560007BE3E3</string> - <string>A1E70FFF0A38D806007BE3E3</string> - <string>A1E710140A38D888007BE3E3</string> - <string>A1E710400A38DE0B007BE3E3</string> - <string>A1E70E6F0A38CA08007BE3E3</string> - <string>A1E710CD0A3A244D007BE3E3</string> - <string>A1E710E20A3A247D007BE3E3</string> - </array> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <true/> - <key>XCSharingToken</key> - <string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {1134, 480}}</string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>480pt</string> - </dict> - <dict> - <key>Proportion</key> - <string>374pt</string> - <key>Tabs</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>XCMainBuildResultsModuleGUID</string> - <key>PBXProjectModuleLabel</key> - <string>Build</string> - <key>XCBuildResultsTrigger_Collapse</key> - <integer>1021</integer> - <key>XCBuildResultsTrigger_Open</key> - <integer>1010</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{10, 27}, {1134, 347}}</string> - </dict> - <key>Module</key> - <string>PBXBuildResultsModule</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>LauncherConfigVersion</key> - <string>3</string> - <key>PBXProjectModuleGUID</key> - <string>1CA23EE80692099D00951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>Run</string> - <key>Runner</key> - <dict> - <key>HorizontalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {365, 167}}</string> - <string>{{0, 176}, {365, 267}}</string> - </array> - </dict> - <key>VerticalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {405, 443}}</string> - <string>{{414, 0}, {514, 443}}</string> - </array> - </dict> - </dict> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {0, 0}}</string> - </dict> - <key>Module</key> - <string>PBXRunSessionModule</string> - </dict> - </array> - </dict> - </array> - <key>Proportion</key> - <string>1134pt</string> - </dict> - </array> - <key>Name</key> - <string>Build</string> - <key>ServiceClasses</key> - <array> - <string>XCModuleDock</string> - <string>PBXSmartGroupTreeModule</string> - <string>XCModuleDock</string> - <string>PBXNavigatorGroup</string> - <string>XCDockableTabModule</string> - <string>PBXBuildResultsModule</string> - <string>PBXRunSessionModule</string> - <string>XCConsole</string> - </array> - <key>TableOfContents</key> - <array> - <string>A1E710B40A3A22FF007BE3E3</string> - <string>1CA23EE50692099D00951B8B</string> - <string>A1E710B50A3A22FF007BE3E3</string> - <string>A1E70DF50A38C765007BE3E3</string> - <string>A1E710B60A3A22FF007BE3E3</string> - <string>XCMainBuildResultsModuleGUID</string> - <string>1CA23EE80692099D00951B8B</string> - <string>A1E710B70A3A22FF007BE3E3</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.buildAndRun</string> - </dict> - <dict> - <key>ChosenToolbarItems</key> - <array> - <string>XCToolbarPerspectiveControl</string> - <string>NSToolbarSeparatorItem</string> - <string>build-and-debug</string> - <string>debug</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>debugger-fix-and-continue</string> - <string>debugger-restart-executable</string> - <string>debugger-pause</string> - <string>debugger-continue</string> - <string>debugger-step-over</string> - <string>debugger-step-into</string> - <string>debugger-step-out</string> - <string>debugger-step-instruction</string> - <string>NSToolbarFlexibleSpaceItem</string> - </array> - <key>ControllerClassBaseName</key> - <string>PBXDebugSessionModule</string> - <key>IconName</key> - <string>DebugTabIcon</string> - <key>Identifier</key> - <string>perspective.debug</string> - <key>IsVertical</key> - <integer>1</integer> - <key>Layout</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CCC7628064C1048000F2A68</string> - <key>PBXProjectModuleLabel</key> - <string>Debugger Console</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {810, 0}}</string> - </dict> - <key>Module</key> - <string>PBXDebugCLIModule</string> - <key>Proportion</key> - <string>0%</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>Debugger</key> - <dict> - <key>HorizontalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {395, 213}}</string> - <string>{{395, 0}, {415, 213}}</string> - </array> - </dict> - <key>VerticalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {810, 213}}</string> - <string>{{0, 213}, {810, 225}}</string> - </array> - </dict> - </dict> - <key>LauncherConfigVersion</key> - <string>8</string> - <key>PBXProjectModuleGUID</key> - <string>1CCC7629064C1048000F2A68</string> - <key>PBXProjectModuleLabel</key> - <string>Debug</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>DebugConsoleDrawerSize</key> - <string>{100, 120}</string> - <key>DebugConsoleVisible</key> - <string>None</string> - <key>DebugConsoleWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>DebugSTDIOWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>Frame</key> - <string>{{0, 7}, {810, 438}}</string> - </dict> - <key>Module</key> - <string>PBXDebugSessionModule</string> - <key>Proportion</key> - <string>443pt</string> - </dict> - </array> - <key>Name</key> - <string>Debug</string> - <key>ServiceClasses</key> - <array> - <string>XCModuleDock</string> - <string>XCModuleDock</string> - <string>PBXDebugCLIModule</string> - <string>PBXDebugSessionModule</string> - <string>XCConsole</string> - </array> - <key>TableOfContents</key> - <array> - <string>1CC8E6A5069209BD00BB180A</string> - <string>1CC8E6A6069209BD00BB180A</string> - <string>1CCC7628064C1048000F2A68</string> - <string>1CCC7629064C1048000F2A68</string> - <string>1CC8E6A7069209BD00BB180A</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.debug</string> - </dict> - </array> - <key>PerspectivesBarVisible</key> - <true/> - <key>ShelfIsVisible</key> - <false/> - <key>SourceDescription</key> - <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecification.xcperspec'</string> - <key>StatusbarIsVisible</key> - <true/> - <key>TimeStamp</key> - <real>171582783.00723499</real> - <key>ToolbarDisplayMode</key> - <integer>1</integer> - <key>ToolbarIsVisible</key> - <true/> - <key>ToolbarSizeMode</key> - <integer>1</integer> - <key>Type</key> - <string>Perspectives</string> - <key>UpdateMessage</key> - <string></string> - <key>WindowJustification</key> - <integer>5</integer> - <key>WindowOrderList</key> - <array> - <string>/Volumes/Ra-Tilt/Users/lxs/KfM/CCAPI/src/lib/ccapi/mac/CCAPI.xcodeproj</string> - </array> - <key>WindowString</key> - <string>170 278 1340 900 0 0 1920 1178 </string> - <key>WindowTools</key> - <array> - <dict> - <key>Identifier</key> - <string>windowTool.find</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CDD528C0622207200134675</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD0528D0623707200166675</string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <integer>1</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {781, 167}}</string> - <key>RubberWindowFrame</key> - <string>62 385 781 470 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>781pt</string> - </dict> - </array> - <key>Proportion</key> - <string>50%</string> - </dict> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD0528E0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>Project Find</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{8, 0}, {773, 254}}</string> - <key>RubberWindowFrame</key> - <string>62 385 781 470 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXProjectFindModule</string> - <key>Proportion</key> - <string>50%</string> - </dict> - </array> - <key>Proportion</key> - <string>428pt</string> - </dict> - </array> - <key>Name</key> - <string>Project Find</string> - <key>ServiceClasses</key> - <array> - <string>PBXProjectFindModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C530D57069F1CE1000CFCEE</string> - <string>1C530D58069F1CE1000CFCEE</string> - <string>1C530D59069F1CE1000CFCEE</string> - <string>1CDD528C0622207200134675</string> - <string>1C530D5A069F1CE1000CFCEE</string> - <string>1CE0B1FE06471DED0097A5F4</string> - <string>1CD0528E0623707200166675</string> - </array> - <key>WindowString</key> - <string>62 385 781 470 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1C530D57069F1CE1000CFCEE</string> - <key>WindowToolIsVisible</key> - <integer>0</integer> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.run</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>LauncherConfigVersion</key> - <string>3</string> - <key>PBXProjectModuleGUID</key> - <string>1CD0528B0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>Run - cocoapp112 - cocoapp112</string> - <key>Runner</key> - <dict> - <key>HorizontalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {365, 167}}</string> - <string>{{0, 176}, {365, 267}}</string> - </array> - </dict> - <key>VerticalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {405, 443}}</string> - <string>{{414, 0}, {514, 443}}</string> - </array> - </dict> - </dict> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {456, 192}}</string> - <key>RubberWindowFrame</key> - <string>741 130 456 234 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXRunSessionModule</string> - <key>Proportion</key> - <string>192pt</string> - </dict> - </array> - <key>Proportion</key> - <string>192pt</string> - </dict> - </array> - <key>Name</key> - <string>Run Log</string> - <key>ServiceClasses</key> - <array> - <string>PBXRunSessionModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C78EAAF065D492600B07095</string> - <string>1C78EAB0065D492600B07095</string> - <string>1CD0528B0623707200166675</string> - <string>1C78EAB1065D492600B07095</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.run</string> - <key>WindowString</key> - <string>741 130 456 234 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.scm</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAB2065D492600B07095</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAB3065D492600B07095</string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <integer>1</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {452, 0}}</string> - <key>RubberWindowFrame</key> - <string>743 379 452 308 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>0pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD052920623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>SCM</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>ConsoleFrame</key> - <string>{{0, 259}, {452, 0}}</string> - <key>Frame</key> - <string>{{0, 7}, {452, 259}}</string> - <key>RubberWindowFrame</key> - <string>743 379 452 308 0 0 1280 1002 </string> - <key>TableConfiguration</key> - <array> - <string>Status</string> - <real>30</real> - <string>FileName</string> - <real>199</real> - <string>Path</string> - <real>197.09500122070312</real> - </array> - <key>TableFrame</key> - <string>{{0, 0}, {452, 250}}</string> - </dict> - <key>Module</key> - <string>PBXCVSModule</string> - <key>Proportion</key> - <string>262pt</string> - </dict> - </array> - <key>Proportion</key> - <string>266pt</string> - </dict> - </array> - <key>Name</key> - <string>SCM</string> - <key>ServiceClasses</key> - <array> - <string>PBXCVSModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C78EAB4065D492600B07095</string> - <string>1C78EAB5065D492600B07095</string> - <string>1C78EAB2065D492600B07095</string> - <string>1CD052920623707200166675</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.scm</string> - <key>WindowString</key> - <string>743 379 452 308 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.breakpoints</string> - <key>IsVertical</key> - <integer>0</integer> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>1CE0B1FE06471DED0097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>no</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>168</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {168, 350}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <integer>0</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {185, 368}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>168</real> - </array> - <key>RubberWindowFrame</key> - <string>315 424 744 409 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>185pt</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CA1AED706398EBD00589147</string> - <key>PBXProjectModuleLabel</key> - <string>Detail</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{190, 0}, {554, 368}}</string> - <key>RubberWindowFrame</key> - <string>315 424 744 409 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>XCDetailModule</string> - <key>Proportion</key> - <string>554pt</string> - </dict> - </array> - <key>Proportion</key> - <string>368pt</string> - </dict> - </array> - <key>MajorVersion</key> - <integer>2</integer> - <key>MinorVersion</key> - <integer>0</integer> - <key>Name</key> - <string>Breakpoints</string> - <key>ServiceClasses</key> - <array> - <string>PBXSmartGroupTreeModule</string> - <string>XCDetailModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1CDDB66807F98D9800BB5817</string> - <string>1CDDB66907F98D9800BB5817</string> - <string>1CE0B1FE06471DED0097A5F4</string> - <string>1CA1AED706398EBD00589147</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.breakpoints</string> - <key>WindowString</key> - <string>315 424 744 409 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1CDDB66807F98D9800BB5817</string> - <key>WindowToolIsVisible</key> - <integer>1</integer> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.debugAnimator</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Debug Visualizer</string> - <key>ServiceClasses</key> - <array> - <string>PBXNavigatorGroup</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.debugAnimator</string> - <key>WindowString</key> - <string>100 100 700 500 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.bookmarks</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Module</key> - <string>PBXBookmarksModule</string> - <key>Proportion</key> - <string>166pt</string> - </dict> - </array> - <key>Proportion</key> - <string>166pt</string> - </dict> - </array> - <key>Name</key> - <string>Bookmarks</string> - <key>ServiceClasses</key> - <array> - <string>PBXBookmarksModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>0</integer> - <key>WindowString</key> - <string>538 42 401 187 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.classBrowser</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>OptionsSetName</key> - <string>Hierarchy, all classes</string> - <key>PBXProjectModuleGUID</key> - <string>1CA6456E063B45B4001379D8</string> - <key>PBXProjectModuleLabel</key> - <string>Class Browser - NSObject</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>ClassesFrame</key> - <string>{{0, 0}, {369, 96}}</string> - <key>ClassesTreeTableConfiguration</key> - <array> - <string>PBXClassNameColumnIdentifier</string> - <real>208</real> - <string>PBXClassBookColumnIdentifier</string> - <real>22</real> - </array> - <key>Frame</key> - <string>{{0, 0}, {616, 353}}</string> - <key>MembersFrame</key> - <string>{{0, 105}, {369, 395}}</string> - <key>MembersTreeTableConfiguration</key> - <array> - <string>PBXMemberTypeIconColumnIdentifier</string> - <real>22</real> - <string>PBXMemberNameColumnIdentifier</string> - <real>216</real> - <string>PBXMemberTypeColumnIdentifier</string> - <real>94</real> - <string>PBXMemberBookColumnIdentifier</string> - <real>22</real> - </array> - <key>PBXModuleWindowStatusBarHidden2</key> - <integer>1</integer> - <key>RubberWindowFrame</key> - <string>597 125 616 374 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXClassBrowserModule</string> - <key>Proportion</key> - <string>354pt</string> - </dict> - </array> - <key>Proportion</key> - <string>354pt</string> - </dict> - </array> - <key>Name</key> - <string>Class Browser</string> - <key>ServiceClasses</key> - <array> - <string>PBXClassBrowserModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>0</integer> - <key>TableOfContents</key> - <array> - <string>1C78EABA065D492600B07095</string> - <string>1C78EABB065D492600B07095</string> - <string>1CA6456E063B45B4001379D8</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.classbrowser</string> - <key>WindowString</key> - <string>597 125 616 374 0 0 1280 1002 </string> - </dict> - </array> -</dict> -</plist> diff --git a/src/lib/ccapi/mac/CCAPI.xcodeproj/project.pbxproj b/src/lib/ccapi/mac/CCAPI.xcodeproj/project.pbxproj index 38a73b4c9..912c48b57 100644 --- a/src/lib/ccapi/mac/CCAPI.xcodeproj/project.pbxproj +++ b/src/lib/ccapi/mac/CCAPI.xcodeproj/project.pbxproj @@ -95,7 +95,7 @@ A1E70D440A38B5BC007BE3E3 /* NTMakefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NTMakefile; sourceTree = "<group>"; }; A1E70D450A38B5BC007BE3E3 /* server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = server.c; sourceTree = "<group>"; }; A1E70D460A38B5BC007BE3E3 /* server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = server.c; sourceTree = "<group>"; }; - A1E70D5D0A38B796007BE3E3 /* CCacheServer.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = CCacheServer.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A1E70D5D0A38B796007BE3E3 /* CCacheServer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CCacheServer.app; sourceTree = BUILT_PRODUCTS_DIR; }; A1E70D910A38BB67007BE3E3 /* CCacheServer.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = CCacheServer.plist; sourceTree = "<group>"; }; A1E70D920A38BB67007BE3E3 /* CCacheServerInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = CCacheServerInfo.plist; sourceTree = "<group>"; }; A1E70D930A38BB67007BE3E3 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; }; diff --git a/src/lib/ccapi/server/ccs_lists.c b/src/lib/ccapi/server/ccs_lists.c index 779c17b7a..5a20c10ab 100644 --- a/src/lib/ccapi/server/ccs_lists.c +++ b/src/lib/ccapi/server/ccs_lists.c @@ -296,7 +296,7 @@ ccs_context_list_new(cc_context_list_head_t ** headpp) if (ret == NULL)
return ccErrNoMem;
ret->head = ret->tail = NULL;
- ret->type = context;
+ ret->type = cc_context_list;
*headpp = ret;
return ccNoError;
}
diff --git a/src/lib/ccapi/server/mac/main.c b/src/lib/ccapi/server/mac/main.c index a9da8da6c..004e36095 100644 --- a/src/lib/ccapi/server/mac/main.c +++ b/src/lib/ccapi/server/mac/main.c @@ -4,14 +4,14 @@ #include "CredentialsCache.h" #include "msg.h" #include "migServer.h" +#include "serv_ops.h" #include <Kerberos/kipc_server.h> int main (int argc, const char *argv[]) { cc_int32 code = 0; - int running = 1; - + openlog (argv[0], LOG_CONS | LOG_PID, LOG_AUTH); syslog (LOG_INFO, "Starting up."); diff --git a/src/lib/ccapi/server/rpc_auth.c b/src/lib/ccapi/server/rpc_auth.c index 66bc6aee9..a0af4254f 100644 --- a/src/lib/ccapi/server/rpc_auth.c +++ b/src/lib/ccapi/server/rpc_auth.c @@ -47,6 +47,7 @@ #include "CredentialsCache.h" #include "rpc_auth.h" +#include <string.h> cc_int32 ccs_rpc_is_authorized( cc_auth_info_t* msg_auth, cc_session_info_t* msg_session, cc_auth_info_t* stored_auth, |