[CalendarServer-changes] [4241] PyKerberos/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Tue May 12 18:01:58 PDT 2009
Revision: 4241
http://trac.macosforge.org/projects/calendarserver/changeset/4241
Author: cdaboo at apple.com
Date: 2009-05-12 18:01:58 -0700 (Tue, 12 May 2009)
Log Message:
-----------
Allow server service name to be empty and extract the target name from the context when it is.
Add a new api to get the target name.
Modified Paths:
--------------
PyKerberos/trunk/pysrc/kerberos.py
PyKerberos/trunk/src/kerberos.c
PyKerberos/trunk/src/kerberosgss.c
PyKerberos/trunk/src/kerberosgss.h
PyKerberos/trunk/support/PyKerberos.xcodeproj/cyrusdaboo.mode1v3
PyKerberos/trunk/support/PyKerberos.xcodeproj/cyrusdaboo.pbxuser
PyKerberos/trunk/support/PyKerberos.xcodeproj/project.pbxproj
PyKerberos/trunk/support/main.c
PyKerberos/trunk/test.py
Modified: PyKerberos/trunk/pysrc/kerberos.py
===================================================================
--- PyKerberos/trunk/pysrc/kerberos.py 2009-05-12 21:50:50 UTC (rev 4240)
+++ PyKerberos/trunk/pysrc/kerberos.py 2009-05-13 01:01:58 UTC (rev 4241)
@@ -1,5 +1,5 @@
##
-# Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2009 Apple Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -208,9 +208,18 @@
def authGSSServerUserName(context):
"""
Get the user name of the principal trying to authenticate to the server.
- This method must only be called after authGSSClientStep returns a complete or continue response code.
+ This method must only be called after authGSSServerStep returns a complete or continue response code.
@param context: the context object returned from authGSSServerInit.
@return: a string containing the user name.
"""
+def authGSSServerTargetName(context):
+ """
+ Get the target name if the server did not supply its own credentials.
+ This method must only be called after authGSSServerStep returns a complete or continue response code.
+
+ @param context: the context object returned from authGSSServerInit.
+ @return: a string containing the target name.
+ """
+
Modified: PyKerberos/trunk/src/kerberos.c
===================================================================
--- PyKerberos/trunk/src/kerberos.c 2009-05-12 21:50:50 UTC (rev 4240)
+++ PyKerberos/trunk/src/kerberos.c 2009-05-13 01:01:58 UTC (rev 4241)
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+ * Copyright (c) 2006-2009 Apple Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -344,22 +344,42 @@
{
gss_server_state *state;
PyObject *pystate;
-
+
if (!PyArg_ParseTuple(args, "O", &pystate))
return NULL;
-
+
if (!PyCObject_Check(pystate)) {
PyErr_SetString(PyExc_TypeError, "Expected a context object");
return NULL;
}
-
+
state = (gss_server_state *)PyCObject_AsVoidPtr(pystate);
if (state == NULL)
return NULL;
-
+
return Py_BuildValue("s", state->username);
}
+static PyObject *authGSSServerTargetName(PyObject *self, PyObject *args)
+{
+ gss_server_state *state;
+ PyObject *pystate;
+
+ if (!PyArg_ParseTuple(args, "O", &pystate))
+ return NULL;
+
+ if (!PyCObject_Check(pystate)) {
+ PyErr_SetString(PyExc_TypeError, "Expected a context object");
+ return NULL;
+ }
+
+ state = (gss_server_state *)PyCObject_AsVoidPtr(pystate);
+ if (state == NULL)
+ return NULL;
+
+ return Py_BuildValue("s", state->targetname);
+}
+
static PyMethodDef KerberosMethods[] = {
{"checkPassword", checkPassword, METH_VARARGS,
"Check the supplied user/password against Kerberos KDC."},
@@ -390,7 +410,9 @@
{"authGSSServerResponse", authGSSServerResponse, METH_VARARGS,
"Get the response from the last server-side GSSAPI step."},
{"authGSSServerUserName", authGSSServerUserName, METH_VARARGS,
- "Get the user name from the last server-side GSSAPI step."},
+ "Get the user name from the last server-side GSSAPI step."},
+ {"authGSSServerTargetName", authGSSServerTargetName, METH_VARARGS,
+ "Get the target name from the last server-side GSSAPI step."},
{NULL, NULL, 0, NULL} /* Sentinel */
};
Modified: PyKerberos/trunk/src/kerberosgss.c
===================================================================
--- PyKerberos/trunk/src/kerberosgss.c 2009-05-12 21:50:50 UTC (rev 4240)
+++ PyKerberos/trunk/src/kerberosgss.c 2009-05-13 01:01:58 UTC (rev 4241)
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+ * Copyright (c) 2006-2009 Apple Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,75 +34,75 @@
char match[1024];
int match_len = 0;
char* result = NULL;
-
+
int code;
krb5_context kcontext;
krb5_keytab kt = NULL;
krb5_kt_cursor cursor = NULL;
krb5_keytab_entry entry;
char* pname = NULL;
-
+
// Generate the principal prefix we want to match
snprintf(match, 1024, "%s/%s@", service, hostname);
match_len = strlen(match);
-
+
code = krb5_init_context(&kcontext);
if (code)
{
- PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
- "Cannot initialize Kerberos5 context", code));
- return NULL;
+ PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
+ "Cannot initialize Kerberos5 context", code));
+ return NULL;
}
-
+
if ((code = krb5_kt_default(kcontext, &kt)))
{
- PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
- "Cannot get default keytab", code));
- goto end;
+ PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
+ "Cannot get default keytab", code));
+ goto end;
}
-
+
if ((code = krb5_kt_start_seq_get(kcontext, kt, &cursor)))
{
- PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
- "Cannot get sequence cursor from keytab", code));
- goto end;
+ PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
+ "Cannot get sequence cursor from keytab", code));
+ goto end;
}
-
+
while ((code = krb5_kt_next_entry(kcontext, kt, &entry, &cursor)) == 0)
{
- if ((code = krb5_unparse_name(kcontext, entry.principal, &pname)))
- {
- PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
- "Cannot parse principal name from keytab", code));
- goto end;
- }
-
- if (strncmp(pname, match, match_len) == 0)
- {
- result = malloc(strlen(pname) + 1);
- strcpy(result, pname);
- krb5_free_unparsed_name(kcontext, pname);
- krb5_free_keytab_entry_contents(kcontext, &entry);
- break;
- }
-
- krb5_free_unparsed_name(kcontext, pname);
- krb5_free_keytab_entry_contents(kcontext, &entry);
+ if ((code = krb5_unparse_name(kcontext, entry.principal, &pname)))
+ {
+ PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
+ "Cannot parse principal name from keytab", code));
+ goto end;
+ }
+
+ if (strncmp(pname, match, match_len) == 0)
+ {
+ result = malloc(strlen(pname) + 1);
+ strcpy(result, pname);
+ krb5_free_unparsed_name(kcontext, pname);
+ krb5_free_keytab_entry_contents(kcontext, &entry);
+ break;
+ }
+
+ krb5_free_unparsed_name(kcontext, pname);
+ krb5_free_keytab_entry_contents(kcontext, &entry);
}
-
+
if (result == NULL)
{
- PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
- "Principal not found in keytab", -1));
+ PyErr_SetObject(KrbException_class, Py_BuildValue("((s:i))",
+ "Principal not found in keytab", -1));
}
-
+
end:
if (cursor)
- krb5_kt_end_seq_get(kcontext, kt, &cursor);
+ krb5_kt_end_seq_get(kcontext, kt, &cursor);
if (kt)
- krb5_kt_close(kcontext, kt);
+ krb5_kt_close(kcontext, kt);
krb5_free_context(kcontext);
-
+
return result;
}
@@ -112,26 +112,26 @@
OM_uint32 min_stat;
gss_buffer_desc name_token = GSS_C_EMPTY_BUFFER;
int ret = AUTH_GSS_COMPLETE;
-
+
state->server_name = GSS_C_NO_NAME;
state->context = GSS_C_NO_CONTEXT;
state->gss_flags = gss_flags;
state->username = NULL;
state->response = NULL;
-
+
// Import server name first
name_token.length = strlen(service);
name_token.value = (char *)service;
-
+
maj_stat = gss_import_name(&min_stat, &name_token, gss_krb5_nt_service_name, &state->server_name);
-
+
if (GSS_ERROR(maj_stat))
{
- set_gss_error(maj_stat, min_stat);
- ret = AUTH_GSS_ERROR;
- goto end;
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
}
-
+
end:
return ret;
}
@@ -141,22 +141,22 @@
OM_uint32 maj_stat;
OM_uint32 min_stat;
int ret = AUTH_GSS_COMPLETE;
-
+
if (state->context != GSS_C_NO_CONTEXT)
- maj_stat = gss_delete_sec_context(&min_stat, &state->context, GSS_C_NO_BUFFER);
+ maj_stat = gss_delete_sec_context(&min_stat, &state->context, GSS_C_NO_BUFFER);
if (state->server_name != GSS_C_NO_NAME)
- maj_stat = gss_release_name(&min_stat, &state->server_name);
+ maj_stat = gss_release_name(&min_stat, &state->server_name);
if (state->username != NULL)
{
- free(state->username);
- state->username = NULL;
+ free(state->username);
+ state->username = NULL;
}
if (state->response != NULL)
{
- free(state->response);
- state->response = NULL;
+ free(state->response);
+ state->response = NULL;
}
-
+
return ret;
}
@@ -167,91 +167,91 @@
gss_buffer_desc input_token = GSS_C_EMPTY_BUFFER;
gss_buffer_desc output_token = GSS_C_EMPTY_BUFFER;
int ret = AUTH_GSS_CONTINUE;
-
+
// Always clear out the old response
if (state->response != NULL)
{
- free(state->response);
- state->response = NULL;
+ free(state->response);
+ state->response = NULL;
}
-
+
// If there is a challenge (data from the server) we need to give it to GSS
if (challenge && *challenge)
{
- int len;
- input_token.value = base64_decode(challenge, &len);
- input_token.length = len;
+ int len;
+ input_token.value = base64_decode(challenge, &len);
+ input_token.length = len;
}
-
+
// Do GSSAPI step
maj_stat = gss_init_sec_context(&min_stat,
- GSS_C_NO_CREDENTIAL,
- &state->context,
- state->server_name,
- GSS_C_NO_OID,
- (OM_uint32)state->gss_flags,
- 0,
- GSS_C_NO_CHANNEL_BINDINGS,
- &input_token,
- NULL,
- &output_token,
- NULL,
- NULL);
-
+ GSS_C_NO_CREDENTIAL,
+ &state->context,
+ state->server_name,
+ GSS_C_NO_OID,
+ (OM_uint32)state->gss_flags,
+ 0,
+ GSS_C_NO_CHANNEL_BINDINGS,
+ &input_token,
+ NULL,
+ &output_token,
+ NULL,
+ NULL);
+
if ((maj_stat != GSS_S_COMPLETE) && (maj_stat != GSS_S_CONTINUE_NEEDED))
{
- set_gss_error(maj_stat, min_stat);
- ret = AUTH_GSS_ERROR;
- goto end;
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
}
-
+
ret = (maj_stat == GSS_S_COMPLETE) ? AUTH_GSS_COMPLETE : AUTH_GSS_CONTINUE;
// Grab the client response to send back to the server
if (output_token.length)
{
- state->response = base64_encode((const unsigned char *)output_token.value, output_token.length);;
- maj_stat = gss_release_buffer(&min_stat, &output_token);
+ state->response = base64_encode((const unsigned char *)output_token.value, output_token.length);;
+ maj_stat = gss_release_buffer(&min_stat, &output_token);
}
-
+
// Try to get the user name if we have completed all GSS operations
if (ret == AUTH_GSS_COMPLETE)
{
- gss_name_t gssuser = GSS_C_NO_NAME;
- maj_stat = gss_inquire_context(&min_stat, state->context, &gssuser, NULL, NULL, NULL, NULL, NULL, NULL);
- if (GSS_ERROR(maj_stat))
- {
- set_gss_error(maj_stat, min_stat);
- ret = AUTH_GSS_ERROR;
- goto end;
- }
-
- gss_buffer_desc name_token;
- name_token.length = 0;
- maj_stat = gss_display_name(&min_stat, gssuser, &name_token, NULL);
- if (GSS_ERROR(maj_stat))
- {
- if (name_token.value)
- gss_release_buffer(&min_stat, &name_token);
- gss_release_name(&min_stat, &gssuser);
-
- set_gss_error(maj_stat, min_stat);
- ret = AUTH_GSS_ERROR;
- goto end;
- }
- else
- {
- state->username = (char *)malloc(name_token.length + 1);
- strncpy(state->username, (char*) name_token.value, name_token.length);
- state->username[name_token.length] = 0;
- gss_release_buffer(&min_stat, &name_token);
- gss_release_name(&min_stat, &gssuser);
- }
+ gss_name_t gssuser = GSS_C_NO_NAME;
+ maj_stat = gss_inquire_context(&min_stat, state->context, &gssuser, NULL, NULL, NULL, NULL, NULL, NULL);
+ if (GSS_ERROR(maj_stat))
+ {
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
+ }
+
+ gss_buffer_desc name_token;
+ name_token.length = 0;
+ maj_stat = gss_display_name(&min_stat, gssuser, &name_token, NULL);
+ if (GSS_ERROR(maj_stat))
+ {
+ if (name_token.value)
+ gss_release_buffer(&min_stat, &name_token);
+ gss_release_name(&min_stat, &gssuser);
+
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
+ }
+ else
+ {
+ state->username = (char *)malloc(name_token.length + 1);
+ strncpy(state->username, (char*) name_token.value, name_token.length);
+ state->username[name_token.length] = 0;
+ gss_release_buffer(&min_stat, &name_token);
+ gss_release_name(&min_stat, &gssuser);
+ }
}
end:
if (output_token.value)
- gss_release_buffer(&min_stat, &output_token);
+ gss_release_buffer(&min_stat, &output_token);
if (input_token.value)
- free(input_token.value);
+ free(input_token.value);
return ret;
}
@@ -262,14 +262,14 @@
gss_buffer_desc input_token = GSS_C_EMPTY_BUFFER;
gss_buffer_desc output_token = GSS_C_EMPTY_BUFFER;
int ret = AUTH_GSS_CONTINUE;
-
+
// Always clear out the old response
if (state->response != NULL)
{
free(state->response);
state->response = NULL;
}
-
+
// If there is a challenge (data from the server) we need to give it to GSS
if (challenge && *challenge)
{
@@ -277,15 +277,15 @@
input_token.value = base64_decode(challenge, &len);
input_token.length = len;
}
-
+
// Do GSSAPI step
maj_stat = gss_unwrap(&min_stat,
- state->context,
- &input_token,
- &output_token,
- NULL,
- NULL);
-
+ state->context,
+ &input_token,
+ &output_token,
+ NULL,
+ NULL);
+
if (maj_stat != GSS_S_COMPLETE)
{
set_gss_error(maj_stat, min_stat);
@@ -294,7 +294,7 @@
}
else
ret = AUTH_GSS_COMPLETE;
-
+
// Grab the client response
if (output_token.length)
{
@@ -318,21 +318,21 @@
int ret = AUTH_GSS_CONTINUE;
char buf[4096], server_conf_flags;
unsigned long buf_size;
-
+
// Always clear out the old response
if (state->response != NULL)
{
free(state->response);
state->response = NULL;
}
-
+
if (challenge && *challenge)
{
int len;
input_token.value = base64_decode(challenge, &len);
input_token.length = len;
}
-
+
if (user) {
// get bufsize
server_conf_flags = ((char*) input_token.value)[0];
@@ -341,12 +341,12 @@
free(input_token.value);
#ifdef PRINTFS
printf("User: %s, %c%c%c\n", user,
- server_conf_flags & GSS_AUTH_P_NONE ? 'N' : '-',
- server_conf_flags & GSS_AUTH_P_INTEGRITY ? 'I' : '-',
- server_conf_flags & GSS_AUTH_P_PRIVACY ? 'P' : '-');
+ server_conf_flags & GSS_AUTH_P_NONE ? 'N' : '-',
+ server_conf_flags & GSS_AUTH_P_INTEGRITY ? 'I' : '-',
+ server_conf_flags & GSS_AUTH_P_PRIVACY ? 'P' : '-');
printf("Maximum GSS token size is %ld\n", buf_size);
#endif
-
+
// agree to terms (hack!)
buf_size = htonl(buf_size); // not relevant without integrity/privacy
memcpy(buf, &buf_size, 4);
@@ -356,7 +356,7 @@
input_token.value = buf;
input_token.length = 4 + strlen(user) + 1;
}
-
+
// Do GSSAPI wrap
maj_stat = gss_wrap(&min_stat,
state->context,
@@ -365,7 +365,7 @@
&input_token,
NULL,
&output_token);
-
+
if (maj_stat != GSS_S_COMPLETE)
{
set_gss_error(maj_stat, min_stat);
@@ -392,39 +392,45 @@
OM_uint32 min_stat;
gss_buffer_desc name_token = GSS_C_EMPTY_BUFFER;
int ret = AUTH_GSS_COMPLETE;
-
+
state->context = GSS_C_NO_CONTEXT;
state->server_name = GSS_C_NO_NAME;
state->client_name = GSS_C_NO_NAME;
state->server_creds = GSS_C_NO_CREDENTIAL;
state->client_creds = GSS_C_NO_CREDENTIAL;
state->username = NULL;
+ state->targetname = NULL;
state->response = NULL;
-
- // Import server name first
- name_token.length = strlen(service);
- name_token.value = (char *)service;
-
- maj_stat = gss_import_name(&min_stat, &name_token, GSS_C_NT_HOSTBASED_SERVICE, &state->server_name);
-
- if (GSS_ERROR(maj_stat))
+
+ // Server name may be empty which means we aren't going to create our own creds
+ size_t service_len = strlen(service);
+ if (service_len != 0)
{
- set_gss_error(maj_stat, min_stat);
- ret = AUTH_GSS_ERROR;
- goto end;
+ // Import server name first
+ name_token.length = strlen(service);
+ name_token.value = (char *)service;
+
+ maj_stat = gss_import_name(&min_stat, &name_token, GSS_C_NT_HOSTBASED_SERVICE, &state->server_name);
+
+ if (GSS_ERROR(maj_stat))
+ {
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
+ }
+
+ // Get credentials
+ maj_stat = gss_acquire_cred(&min_stat, state->server_name, GSS_C_INDEFINITE,
+ GSS_C_NO_OID_SET, GSS_C_ACCEPT, &state->server_creds, NULL, NULL);
+
+ if (GSS_ERROR(maj_stat))
+ {
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
+ }
}
-
- // Get credentials
- maj_stat = gss_acquire_cred(&min_stat, state->server_name, GSS_C_INDEFINITE,
- GSS_C_NO_OID_SET, GSS_C_ACCEPT, &state->server_creds, NULL, NULL);
-
- if (GSS_ERROR(maj_stat))
- {
- set_gss_error(maj_stat, min_stat);
- ret = AUTH_GSS_ERROR;
- goto end;
- }
-
+
end:
return ret;
}
@@ -434,28 +440,33 @@
OM_uint32 maj_stat;
OM_uint32 min_stat;
int ret = AUTH_GSS_COMPLETE;
-
+
if (state->context != GSS_C_NO_CONTEXT)
- maj_stat = gss_delete_sec_context(&min_stat, &state->context, GSS_C_NO_BUFFER);
+ maj_stat = gss_delete_sec_context(&min_stat, &state->context, GSS_C_NO_BUFFER);
if (state->server_name != GSS_C_NO_NAME)
- maj_stat = gss_release_name(&min_stat, &state->server_name);
+ maj_stat = gss_release_name(&min_stat, &state->server_name);
if (state->client_name != GSS_C_NO_NAME)
- maj_stat = gss_release_name(&min_stat, &state->client_name);
+ maj_stat = gss_release_name(&min_stat, &state->client_name);
if (state->server_creds != GSS_C_NO_CREDENTIAL)
- maj_stat = gss_release_cred(&min_stat, &state->server_creds);
+ maj_stat = gss_release_cred(&min_stat, &state->server_creds);
if (state->client_creds != GSS_C_NO_CREDENTIAL)
- maj_stat = gss_release_cred(&min_stat, &state->client_creds);
+ maj_stat = gss_release_cred(&min_stat, &state->client_creds);
if (state->username != NULL)
{
- free(state->username);
- state->username = NULL;
+ free(state->username);
+ state->username = NULL;
}
+ if (state->targetname != NULL)
+ {
+ free(state->targetname);
+ state->targetname = NULL;
+ }
if (state->response != NULL)
{
- free(state->response);
- state->response = NULL;
+ free(state->response);
+ state->response = NULL;
}
-
+
return ret;
}
@@ -466,72 +477,96 @@
gss_buffer_desc input_token = GSS_C_EMPTY_BUFFER;
gss_buffer_desc output_token = GSS_C_EMPTY_BUFFER;
int ret = AUTH_GSS_CONTINUE;
-
+
// Always clear out the old response
if (state->response != NULL)
{
- free(state->response);
- state->response = NULL;
+ free(state->response);
+ state->response = NULL;
}
-
+
// If there is a challenge (data from the server) we need to give it to GSS
if (challenge && *challenge)
{
- int len;
- input_token.value = base64_decode(challenge, &len);
- input_token.length = len;
+ int len;
+ input_token.value = base64_decode(challenge, &len);
+ input_token.length = len;
}
else
{
- PyErr_SetString(KrbException_class, "No challenge parameter in request from client");
- ret = AUTH_GSS_ERROR;
- goto end;
+ PyErr_SetString(KrbException_class, "No challenge parameter in request from client");
+ ret = AUTH_GSS_ERROR;
+ goto end;
}
-
+
maj_stat = gss_accept_sec_context(&min_stat,
- &state->context,
- state->server_creds,
- &input_token,
- GSS_C_NO_CHANNEL_BINDINGS,
- &state->client_name,
- NULL,
- &output_token,
- NULL,
- NULL,
- &state->client_creds);
-
+ &state->context,
+ state->server_creds,
+ &input_token,
+ GSS_C_NO_CHANNEL_BINDINGS,
+ &state->client_name,
+ NULL,
+ &output_token,
+ NULL,
+ NULL,
+ &state->client_creds);
+
if (GSS_ERROR(maj_stat))
{
- set_gss_error(maj_stat, min_stat);
- ret = AUTH_GSS_ERROR;
- goto end;
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
}
-
+
// Grab the server response to send back to the client
if (output_token.length)
{
- state->response = base64_encode((const unsigned char *)output_token.value, output_token.length);;
- maj_stat = gss_release_buffer(&min_stat, &output_token);
+ state->response = base64_encode((const unsigned char *)output_token.value, output_token.length);;
+ maj_stat = gss_release_buffer(&min_stat, &output_token);
}
-
+
+ // Get the user name
maj_stat = gss_display_name(&min_stat, state->client_name, &output_token, NULL);
if (GSS_ERROR(maj_stat))
{
- set_gss_error(maj_stat, min_stat);
- ret = AUTH_GSS_ERROR;
- goto end;
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
}
state->username = (char *)malloc(output_token.length + 1);
strncpy(state->username, (char*) output_token.value, output_token.length);
state->username[output_token.length] = 0;
+
+ // Get the target name if no server creds were supplied
+ if (state->server_creds == GSS_C_NO_CREDENTIAL)
+ {
+ gss_name_t target_name = GSS_C_NO_NAME;
+ maj_stat = gss_inquire_context(&min_stat, state->context, NULL, &target_name, NULL, NULL, NULL, NULL, NULL);
+ if (GSS_ERROR(maj_stat))
+ {
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
+ }
+ maj_stat = gss_display_name(&min_stat, target_name, &output_token, NULL);
+ if (GSS_ERROR(maj_stat))
+ {
+ set_gss_error(maj_stat, min_stat);
+ ret = AUTH_GSS_ERROR;
+ goto end;
+ }
+ state->targetname = (char *)malloc(output_token.length + 1);
+ strncpy(state->targetname, (char*) output_token.value, output_token.length);
+ state->targetname[output_token.length] = 0;
+ }
ret = AUTH_GSS_COMPLETE;
-
+
end:
if (output_token.length)
- gss_release_buffer(&min_stat, &output_token);
+ gss_release_buffer(&min_stat, &output_token);
if (input_token.value)
- free(input_token.value);
+ free(input_token.value);
return ret;
}
@@ -543,32 +578,32 @@
gss_buffer_desc status_string;
char buf_maj[512];
char buf_min[512];
-
+
do
{
- maj_stat = gss_display_status (&min_stat,
- err_maj,
- GSS_C_GSS_CODE,
- GSS_C_NO_OID,
- &msg_ctx,
- &status_string);
- if (GSS_ERROR(maj_stat))
- break;
- strncpy(buf_maj, (char*) status_string.value, sizeof(buf_maj));
- gss_release_buffer(&min_stat, &status_string);
-
- maj_stat = gss_display_status (&min_stat,
- err_min,
- GSS_C_MECH_CODE,
- GSS_C_NULL_OID,
- &msg_ctx,
- &status_string);
- if (!GSS_ERROR(maj_stat))
- {
- strncpy(buf_min, (char*) status_string.value, sizeof(buf_min));
- gss_release_buffer(&min_stat, &status_string);
- }
+ maj_stat = gss_display_status (&min_stat,
+ err_maj,
+ GSS_C_GSS_CODE,
+ GSS_C_NO_OID,
+ &msg_ctx,
+ &status_string);
+ if (GSS_ERROR(maj_stat))
+ break;
+ strncpy(buf_maj, (char*) status_string.value, sizeof(buf_maj));
+ gss_release_buffer(&min_stat, &status_string);
+
+ maj_stat = gss_display_status (&min_stat,
+ err_min,
+ GSS_C_MECH_CODE,
+ GSS_C_NULL_OID,
+ &msg_ctx,
+ &status_string);
+ if (!GSS_ERROR(maj_stat))
+ {
+ strncpy(buf_min, (char*) status_string.value, sizeof(buf_min));
+ gss_release_buffer(&min_stat, &status_string);
+ }
} while (!GSS_ERROR(maj_stat) && msg_ctx != 0);
-
+
PyErr_SetObject(GssException_class, Py_BuildValue("((s:i)(s:i))", buf_maj, err_maj, buf_min, err_min));
}
Modified: PyKerberos/trunk/src/kerberosgss.h
===================================================================
--- PyKerberos/trunk/src/kerberosgss.h 2009-05-12 21:50:50 UTC (rev 4240)
+++ PyKerberos/trunk/src/kerberosgss.h 2009-05-13 01:01:58 UTC (rev 4241)
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+ * Copyright (c) 2006-2009 Apple Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -43,6 +43,7 @@
gss_cred_id_t server_creds;
gss_cred_id_t client_creds;
char* username;
+ char* targetname;
char* response;
} gss_server_state;
Modified: PyKerberos/trunk/support/PyKerberos.xcodeproj/cyrusdaboo.mode1v3
===================================================================
--- PyKerberos/trunk/support/PyKerberos.xcodeproj/cyrusdaboo.mode1v3 2009-05-12 21:50:50 UTC (rev 4240)
+++ PyKerberos/trunk/support/PyKerberos.xcodeproj/cyrusdaboo.mode1v3 2009-05-13 01:01:58 UTC (rev 4241)
@@ -72,6 +72,16 @@
<key>MaxInstances</key>
<string>n</string>
<key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</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>
@@ -157,6 +167,8 @@
<string>Snapshots Tool</string>
</dict>
</array>
+ <key>BundlePath</key>
+ <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
<key>Description</key>
<string>DefaultDescriptionKey</string>
<key>DockingSystemVisible</key>
@@ -166,7 +178,7 @@
<key>FavBarConfig</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>AFDE37F40BB41E00008C037E</string>
+ <string>AF88E9340FBA3EB400C5AA9C</string>
<key>XCBarModuleItemNames</key>
<dict/>
<key>XCBarModuleItems</key>
@@ -177,9 +189,9 @@
<key>Identifier</key>
<string>com.apple.perspectives.project.mode1v3</string>
<key>MajorVersion</key>
- <integer>32</integer>
+ <integer>33</integer>
<key>MinorVersion</key>
- <integer>1</integer>
+ <integer>0</integer>
<key>Name</key>
<string>Default</string>
<key>Notifications</key>
@@ -196,15 +208,17 @@
<dict>
<key>ChosenToolbarItems</key>
<array>
- <string>active-target-popup</string>
- <string>active-buildstyle-popup</string>
+ <string>active-combo-popup</string>
<string>action</string>
<string>NSToolbarFlexibleSpaceItem</string>
<string>buildOrClean</string>
- <string>build-and-goOrGo</string>
+ <string>build-and-go</string>
+ <string>go</string>
+ <string>servicesModulebuild</string>
+ <string>debugger-enable-breakpoints</string>
<string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>toggle-editor</string>
<string>get-info</string>
- <string>toggle-editor</string>
<string>NSToolbarFlexibleSpaceItem</string>
<string>com.apple.pbx.toolbar.searchfield</string>
</array>
@@ -225,7 +239,6 @@
<array>
<string>1C37FBAC04509CD000000102</string>
<string>1C37FAAC04509CD000000102</string>
- <string>1C08E77C0454961000C914BD</string>
<string>1C37FABC05509CD000000102</string>
<string>1C37FABC05539CD112110102</string>
<string>E2644B35053B69B200211256</string>
@@ -243,7 +256,7 @@
<dict>
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
<array>
- <real>186</real>
+ <real>275</real>
</array>
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
<array>
@@ -262,12 +275,13 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
+ <integer>7</integer>
<integer>1</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
- <string>{{0, 0}, {186, 901}}</string>
+ <string>{{0, 0}, {275, 1060}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@@ -279,30 +293,32 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {203, 919}}</string>
+ <string>{{0, 0}, {292, 1078}}</string>
<key>GroupTreeTableConfiguration</key>
<array>
<string>MainColumn</string>
- <real>186</real>
+ <real>275</real>
</array>
<key>RubberWindowFrame</key>
- <string>14 208 1260 960 0 0 1920 1178 </string>
+ <string>0 59 1920 1119 0 0 1920 1178 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
<key>Proportion</key>
- <string>203pt</string>
+ <string>292pt</string>
</dict>
<dict>
<key>Dock</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
- <string>main.c</string>
+ <string>kerberosgss.c</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -310,25 +326,23 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
- <string>main.c</string>
+ <string>kerberosgss.c</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>AF4480DF0BB42E3C00408822</string>
+ <string>AF88E97B0FBA449500C5AA9C</string>
<key>history</key>
<array>
- <string>AFDE38870BB42287008C037E</string>
- <string>AF4480AD0BB42BFD00408822</string>
- <string>AF4480CF0BB42D1700408822</string>
+ <string>AF88E95D0FBA41D300C5AA9C</string>
+ <string>AF88E95F0FBA41D300C5AA9C</string>
+ <string>AF88E9600FBA41D300C5AA9C</string>
+ <string>AF88E9610FBA41D300C5AA9C</string>
+ <string>AF88E9660FBA435000C5AA9C</string>
+ <string>AF88E9670FBA435000C5AA9C</string>
+ <string>AF88E9680FBA435000C5AA9C</string>
+ <string>AF88E9690FBA435000C5AA9C</string>
+ <string>AF88E97A0FBA449500C5AA9C</string>
</array>
- <key>prevStack</key>
- <array>
- <string>AFDE38700BB420B1008C037E</string>
- <string>AFDE388A0BB42287008C037E</string>
- <string>AFDE388E0BB42287008C037E</string>
- <string>AF4480AF0BB42BFD00408822</string>
- <string>AF4480B00BB42BFD00408822</string>
- </array>
</dict>
<key>SplitCount</key>
<string>1</string>
@@ -339,18 +353,16 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {1052, 556}}</string>
+ <string>{{0, 0}, {1623, 648}}</string>
<key>RubberWindowFrame</key>
- <string>14 208 1260 960 0 0 1920 1178 </string>
+ <string>0 59 1920 1119 0 0 1920 1178 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>556pt</string>
+ <string>648pt</string>
</dict>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@@ -361,18 +373,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 561}, {1052, 358}}</string>
+ <string>{{0, 653}, {1623, 425}}</string>
<key>RubberWindowFrame</key>
- <string>14 208 1260 960 0 0 1920 1178 </string>
+ <string>0 59 1920 1119 0 0 1920 1178 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
- <string>358pt</string>
+ <string>425pt</string>
</dict>
</array>
<key>Proportion</key>
- <string>1052pt</string>
+ <string>1623pt</string>
</dict>
</array>
<key>Name</key>
@@ -387,12 +399,14 @@
</array>
<key>TableOfContents</key>
<array>
- <string>AF4480B20BB42BFD00408822</string>
+ <string>AF88E9320FBA3EB400C5AA9C</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>AF4480B30BB42BFD00408822</string>
+ <string>AF88E9330FBA3EB400C5AA9C</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.defaultV3</string>
</dict>
@@ -504,11 +518,13 @@
<key>ShelfIsVisible</key>
<false/>
<key>SourceDescription</key>
- <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
<real>0.0</real>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
<key>ToolbarDisplayMode</key>
<integer>1</integer>
<key>ToolbarIsVisible</key>
@@ -523,24 +539,15 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>AF4480DB0BB42D9C00408822</string>
- <string>AF4480C70BB42CA000408822</string>
- <string>AF4480CA0BB42CA000408822</string>
- <string>AF4480B40BB42BFD00408822</string>
- <string>AF4480B70BB42BFD00408822</string>
- <string>AF4480B80BB42BFD00408822</string>
- <string>AF4480BA0BB42BFD00408822</string>
- <string>AF4480BB0BB42BFD00408822</string>
- <string>AF4480BC0BB42BFD00408822</string>
+ <string>AF88E9640FBA41D300C5AA9C</string>
+ <string>AF88E9650FBA41D300C5AA9C</string>
<string>1C78EAAD065D492600B07095</string>
- <string>AFDE38090BB41EA7008C037E</string>
+ <string>AF88E9420FBA3FD300C5AA9C</string>
<string>1CD10A99069EF8BA00B06720</string>
- <string>AF4480BD0BB42BFD00408822</string>
- <string>AF4480BE0BB42BFD00408822</string>
- <string>/Users/cyrusdaboo/Documents/Development/Apple/eclipse/PyKerberos/support/PyKerberos.xcodeproj</string>
+ <string>/Volumes/Data/Users/cyrusdaboo/Documents/Development/Apple/eclipse/PyKerberos/support/PyKerberos.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>14 208 1260 960 0 0 1920 1178 </string>
+ <string>0 59 1920 1119 0 0 1920 1178 </string>
<key>WindowToolsV3</key>
<array>
<dict>
@@ -556,36 +563,36 @@
<key>Dock</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
- <string>main.c</string>
+ <string>kerberosbasic.c</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {993, 324}}</string>
+ <string>{{0, 0}, {1344, 622}}</string>
<key>RubberWindowFrame</key>
- <string>506 511 993 606 0 0 1920 1178 </string>
+ <string>21 251 1344 904 0 0 1920 1178 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>324pt</string>
+ <string>622pt</string>
</dict>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>XCMainBuildResultsModuleGUID</string>
<key>PBXProjectModuleLabel</key>
- <string>Build</string>
+ <string>Build Results</string>
<key>XCBuildResultsTrigger_Collapse</key>
<integer>1021</integer>
<key>XCBuildResultsTrigger_Open</key>
@@ -594,9 +601,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 329}, {993, 236}}</string>
+ <string>{{0, 627}, {1344, 236}}</string>
<key>RubberWindowFrame</key>
- <string>506 511 993 606 0 0 1920 1178 </string>
+ <string>21 251 1344 904 0 0 1920 1178 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -605,7 +612,7 @@
</dict>
</array>
<key>Proportion</key>
- <string>565pt</string>
+ <string>863pt</string>
</dict>
</array>
<key>Name</key>
@@ -618,17 +625,17 @@
<true/>
<key>TableOfContents</key>
<array>
- <string>AFDE38090BB41EA7008C037E</string>
- <string>AF44809A0BB428F200408822</string>
+ <string>AF88E9420FBA3FD300C5AA9C</string>
+ <string>AF88E9430FBA3FD300C5AA9C</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.buildV3</string>
<key>WindowString</key>
- <string>506 511 993 606 0 0 1920 1178 </string>
+ <string>21 251 1344 904 0 0 1920 1178 </string>
<key>WindowToolGUID</key>
- <string>AFDE38090BB41EA7008C037E</string>
+ <string>AF88E9420FBA3FD300C5AA9C</string>
<key>WindowToolIsVisible</key>
<false/>
</dict>
@@ -661,8 +668,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {477, 385}}</string>
- <string>{{477, 0}, {568, 385}}</string>
+ <string>{{0, 0}, {733, 484}}</string>
+ <string>{{733, 0}, {877, 484}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
@@ -677,8 +684,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {1045, 385}}</string>
- <string>{{0, 385}, {1045, 371}}</string>
+ <string>{{0, 0}, {1610, 484}}</string>
+ <string>{{0, 484}, {1610, 512}}</string>
</array>
</dict>
</dict>
@@ -698,34 +705,34 @@
<key>DebugSTDIOWindowFrame</key>
<string>{{200, 200}, {500, 300}}</string>
<key>Frame</key>
- <string>{{0, 0}, {1045, 756}}</string>
+ <string>{{0, 0}, {1610, 996}}</string>
<key>PBXDebugSessionStackFrameViewKey</key>
<dict>
<key>DebugVariablesTableConfiguration</key>
<array>
<string>Name</string>
- <real>187</real>
+ <real>120</real>
<string>Value</string>
<real>85</real>
<string>Summary</string>
- <real>271</real>
+ <real>647</real>
</array>
<key>Frame</key>
- <string>{{477, 0}, {568, 385}}</string>
+ <string>{{733, 0}, {877, 484}}</string>
<key>RubberWindowFrame</key>
- <string>469 256 1045 797 0 0 1920 1178 </string>
+ <string>21 118 1610 1037 0 0 1920 1178 </string>
</dict>
<key>RubberWindowFrame</key>
- <string>469 256 1045 797 0 0 1920 1178 </string>
+ <string>21 118 1610 1037 0 0 1920 1178 </string>
</dict>
<key>Module</key>
<string>PBXDebugSessionModule</string>
<key>Proportion</key>
- <string>756pt</string>
+ <string>996pt</string>
</dict>
</array>
<key>Proportion</key>
- <string>756pt</string>
+ <string>996pt</string>
</dict>
</array>
<key>Name</key>
@@ -739,18 +746,18 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
- <string>AF44809B0BB428F200408822</string>
+ <string>AF88E9350FBA3EB400C5AA9C</string>
<string>1C162984064C10D400B95A72</string>
- <string>AF44809C0BB428F200408822</string>
- <string>AF44809D0BB428F200408822</string>
- <string>AF44809E0BB428F200408822</string>
- <string>AF44809F0BB428F200408822</string>
- <string>AF4480A00BB428F200408822</string>
+ <string>AF88E9360FBA3EB400C5AA9C</string>
+ <string>AF88E9370FBA3EB400C5AA9C</string>
+ <string>AF88E9380FBA3EB400C5AA9C</string>
+ <string>AF88E9390FBA3EB400C5AA9C</string>
+ <string>AF88E93A0FBA3EB400C5AA9C</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
<key>WindowString</key>
- <string>469 256 1045 797 0 0 1920 1178 </string>
+ <string>21 118 1610 1037 0 0 1920 1178 </string>
<key>WindowToolGUID</key>
<string>1CD10A99069EF8BA00B06720</string>
<key>WindowToolIsVisible</key>
@@ -882,14 +889,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {650, 358}}</string>
+ <string>{{0, 0}, {650, 209}}</string>
<key>RubberWindowFrame</key>
- <string>35 895 650 250 0 0 1920 1178 </string>
+ <string>21 905 650 250 0 0 1920 1178 </string>
</dict>
<key>Module</key>
<string>PBXDebugCLIModule</string>
<key>Proportion</key>
- <string>358pt</string>
+ <string>209pt</string>
</dict>
</array>
<key>Proportion</key>
@@ -907,13 +914,13 @@
<key>TableOfContents</key>
<array>
<string>1C78EAAD065D492600B07095</string>
- <string>AF4480A10BB428F200408822</string>
+ <string>AF88E9570FBA419E00C5AA9C</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.consoleV3</string>
<key>WindowString</key>
- <string>35 895 650 250 0 0 1920 1178 </string>
+ <string>21 905 650 250 0 0 1920 1178 </string>
<key>WindowToolGUID</key>
<string>1C78EAAD065D492600B07095</string>
<key>WindowToolIsVisible</key>
@@ -1018,7 +1025,7 @@
<string>FileName</string>
<real>199</real>
<string>Path</string>
- <real>197.09500122070312</real>
+ <real>197.0950012207031</real>
</array>
<key>TableFrame</key>
<string>{{0, 0}, {452, 250}}</string>
@@ -1244,6 +1251,38 @@
</dict>
<dict>
<key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>50 850 472 307 0 0 1440 877</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
<string>windowTool.classBrowser</string>
<key>Layout</key>
<array>
Modified: PyKerberos/trunk/support/PyKerberos.xcodeproj/cyrusdaboo.pbxuser
===================================================================
--- PyKerberos/trunk/support/PyKerberos.xcodeproj/cyrusdaboo.pbxuser 2009-05-12 21:50:50 UTC (rev 4240)
+++ PyKerberos/trunk/support/PyKerberos.xcodeproj/cyrusdaboo.pbxuser 2009-05-13 01:01:58 UTC (rev 4241)
@@ -1,9 +1,9 @@
// !$*UTF8*$!
{
08FB7793FE84155DC02AAC07 /* Project object */ = {
- activeArchitecture = i386;
activeBuildConfigurationName = Debug;
activeExecutable = AFDE37EE0BB41DF9008C037E /* PyKerberos */;
+ activeSDKPreference = macosx10.6;
activeTarget = 8DD76F620486A84900D96B5E /* PyKerberos */;
addToTargets = (
8DD76F620486A84900D96B5E /* PyKerberos */,
@@ -11,7 +11,7 @@
breakpoints = (
AF4480A50BB4292300408822 /* kerberosbasic.c:35 */,
AF4480C10BB42C1E00408822 /* kerberosbasic.c:92 */,
- AF4480CD0BB42CFF00408822 /* main.c:18 */,
+ AF4480CD0BB42CFF00408822 /* main.c:23 */,
AF4480D80BB42D6100408822 /* kerberosgss.c:253 */,
);
codeSenseManager = AFDE37F60BB41E00008C037E /* Code sense */;
@@ -24,7 +24,7 @@
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
- 813,
+ 1384,
20,
48,
43,
@@ -41,8 +41,8 @@
PBXFileDataSource_Target_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 196357790;
- PBXWorkspaceStateSaveDate = 196357790;
+ PBXPerProjectTemplateStateSaveDate = 263863739;
+ PBXWorkspaceStateSaveDate = 263863739;
};
perUserProjectItems = {
AF4480AD0BB42BFD00408822 = AF4480AD0BB42BFD00408822 /* PBXTextBookmark */;
@@ -50,6 +50,37 @@
AF4480B00BB42BFD00408822 = AF4480B00BB42BFD00408822 /* PBXTextBookmark */;
AF4480CF0BB42D1700408822 = AF4480CF0BB42D1700408822 /* PBXTextBookmark */;
AF4480DF0BB42E3C00408822 = AF4480DF0BB42E3C00408822 /* PBXTextBookmark */;
+ AF88E92D0FBA3EB400C5AA9C /* PBXTextBookmark */ = AF88E92D0FBA3EB400C5AA9C /* PBXTextBookmark */;
+ AF88E92E0FBA3EB400C5AA9C /* PBXTextBookmark */ = AF88E92E0FBA3EB400C5AA9C /* PBXTextBookmark */;
+ AF88E9300FBA3EB400C5AA9C /* PBXTextBookmark */ = AF88E9300FBA3EB400C5AA9C /* PBXTextBookmark */;
+ AF88E9400FBA3FD300C5AA9C /* XCBuildMessageTextBookmark */ = AF88E9400FBA3FD300C5AA9C /* XCBuildMessageTextBookmark */;
+ AF88E9410FBA3FD300C5AA9C /* PBXTextBookmark */ = AF88E9410FBA3FD300C5AA9C /* PBXTextBookmark */;
+ AF88E94C0FBA407500C5AA9C /* PBXTextBookmark */ = AF88E94C0FBA407500C5AA9C /* PBXTextBookmark */;
+ AF88E9560FBA419E00C5AA9C /* PBXTextBookmark */ = AF88E9560FBA419E00C5AA9C /* PBXTextBookmark */;
+ AF88E95C0FBA41D300C5AA9C /* PBXTextBookmark */ = AF88E95C0FBA41D300C5AA9C /* PBXTextBookmark */;
+ AF88E95D0FBA41D300C5AA9C /* PBXTextBookmark */ = AF88E95D0FBA41D300C5AA9C /* PBXTextBookmark */;
+ AF88E95E0FBA41D300C5AA9C /* PBXTextBookmark */ = AF88E95E0FBA41D300C5AA9C /* PBXTextBookmark */;
+ AF88E95F0FBA41D300C5AA9C /* PBXTextBookmark */ = AF88E95F0FBA41D300C5AA9C /* PBXTextBookmark */;
+ AF88E9600FBA41D300C5AA9C /* PBXTextBookmark */ = AF88E9600FBA41D300C5AA9C /* PBXTextBookmark */;
+ AF88E9610FBA41D300C5AA9C /* PBXTextBookmark */ = AF88E9610FBA41D300C5AA9C /* PBXTextBookmark */;
+ AF88E9620FBA41D300C5AA9C /* PBXTextBookmark */ = AF88E9620FBA41D300C5AA9C /* PBXTextBookmark */;
+ AF88E9630FBA41D300C5AA9C /* PBXTextBookmark */ = AF88E9630FBA41D300C5AA9C /* PBXTextBookmark */;
+ AF88E9660FBA435000C5AA9C /* PBXTextBookmark */ = AF88E9660FBA435000C5AA9C /* PBXTextBookmark */;
+ AF88E9670FBA435000C5AA9C /* PBXTextBookmark */ = AF88E9670FBA435000C5AA9C /* PBXTextBookmark */;
+ AF88E9680FBA435000C5AA9C /* PBXTextBookmark */ = AF88E9680FBA435000C5AA9C /* PBXTextBookmark */;
+ AF88E9690FBA435000C5AA9C /* PBXTextBookmark */ = AF88E9690FBA435000C5AA9C /* PBXTextBookmark */;
+ AF88E96A0FBA435000C5AA9C /* PBXTextBookmark */ = AF88E96A0FBA435000C5AA9C /* PBXTextBookmark */;
+ AF88E96B0FBA435000C5AA9C /* PBXTextBookmark */ = AF88E96B0FBA435000C5AA9C /* PBXTextBookmark */;
+ AF88E96C0FBA438E00C5AA9C /* PBXTextBookmark */ = AF88E96C0FBA438E00C5AA9C /* PBXTextBookmark */;
+ AF88E96D0FBA43A100C5AA9C /* PBXTextBookmark */ = AF88E96D0FBA43A100C5AA9C /* PBXTextBookmark */;
+ AF88E96E0FBA43B300C5AA9C /* PBXTextBookmark */ = AF88E96E0FBA43B300C5AA9C /* PBXTextBookmark */;
+ AF88E96F0FBA43D100C5AA9C /* PBXTextBookmark */ = AF88E96F0FBA43D100C5AA9C /* PBXTextBookmark */;
+ AF88E9700FBA441100C5AA9C /* PBXTextBookmark */ = AF88E9700FBA441100C5AA9C /* PBXTextBookmark */;
+ AF88E9710FBA441B00C5AA9C /* PBXTextBookmark */ = AF88E9710FBA441B00C5AA9C /* PBXTextBookmark */;
+ AF88E9720FBA442300C5AA9C /* PBXTextBookmark */ = AF88E9720FBA442300C5AA9C /* PBXTextBookmark */;
+ AF88E9730FBA443200C5AA9C /* PBXTextBookmark */ = AF88E9730FBA443200C5AA9C /* PBXTextBookmark */;
+ AF88E97A0FBA449500C5AA9C /* PBXTextBookmark */ = AF88E97A0FBA449500C5AA9C /* PBXTextBookmark */;
+ AF88E97B0FBA449500C5AA9C /* PBXTextBookmark */ = AF88E97B0FBA449500C5AA9C /* PBXTextBookmark */;
AFDE38700BB420B1008C037E = AFDE38700BB420B1008C037E /* PBXTextBookmark */;
AFDE38870BB42287008C037E = AFDE38870BB42287008C037E /* PBXTextBookmark */;
AFDE388A0BB42287008C037E = AFDE388A0BB42287008C037E /* PBXTextBookmark */;
@@ -61,8 +92,9 @@
};
08FB7796FE84155DC02AAC07 /* main.c */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {984, 322}}";
- sepNavSelRange = "{420, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {1562, 616}}";
+ sepNavSelRange = "{1055, 0}";
+ sepNavVisRange = "{0, 1131}";
sepNavVisRect = "{{0, 0}, {984, 308}}";
sepNavWindowFrame = "{{485, -20}, {1395, 1160}}";
};
@@ -86,8 +118,9 @@
hitCount = 0;
ignoreCount = 0;
lineNumber = 35;
- location = kerberosbasic.ob;
- modificationTime = 196358061.544823;
+ location = PyKerberos;
+ modificationTime = 263864776.548559;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
AF4480AD0BB42BFD00408822 /* PBXTextBookmark */ = {
@@ -95,7 +128,7 @@
fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
name = "kerberosgss.c: 47";
rLen = 0;
- rLoc = 1285;
+ rLoc = 1293;
rType = 0;
vrLen = 930;
vrLoc = 867;
@@ -115,7 +148,7 @@
fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
name = "kerberosgss.c: 47";
rLen = 0;
- rLoc = 1285;
+ rLoc = 1293;
rType = 0;
vrLen = 930;
vrLoc = 867;
@@ -133,11 +166,12 @@
hitCount = 0;
ignoreCount = 0;
lineNumber = 92;
- location = kerberosbasic.ob;
- modificationTime = 196358061.544839;
+ location = PyKerberos;
+ modificationTime = 263864776.583793;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
- AF4480CD0BB42CFF00408822 /* main.c:18 */ = {
+ AF4480CD0BB42CFF00408822 /* main.c:23 */ = {
isa = PBXFileBreakpoint;
actions = (
);
@@ -146,12 +180,13 @@
countType = 0;
delayBeforeContinue = 0;
fileReference = 08FB7796FE84155DC02AAC07 /* main.c */;
- functionName = "main (int argc, char * const argv[])";
+ functionName = "main()";
hitCount = 1;
ignoreCount = 0;
- lineNumber = 18;
- location = main.ob;
- modificationTime = 196358037.390216;
+ lineNumber = 23;
+ location = PyKerberos;
+ modificationTime = 263864776.766891;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
AF4480CF0BB42D1700408822 /* PBXTextBookmark */ = {
@@ -175,8 +210,9 @@
hitCount = 0;
ignoreCount = 0;
lineNumber = 253;
- location = kerberosgss.ob;
- modificationTime = 196358037.343018;
+ location = PyKerberos;
+ modificationTime = 263864776.633991;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
AF4480DF0BB42E3C00408822 /* PBXTextBookmark */ = {
@@ -189,9 +225,343 @@
vrLen = 584;
vrLoc = 0;
};
+ AF88E92D0FBA3EB400C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 498";
+ rLen = 0;
+ rLoc = 15211;
+ rType = 0;
+ vrLen = 1613;
+ vrLoc = 12775;
+ };
+ AF88E92E0FBA3EB400C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF88E92F0FBA3EB400C5AA9C /* gssapi.h */;
+ rLen = 1;
+ rLoc = 203;
+ rType = 1;
+ };
+ AF88E92F0FBA3EB400C5AA9C /* gssapi.h */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ name = gssapi.h;
+ path = /Developer/SDKs/MacOSX10.5.sdk/usr/include/gssapi/gssapi.h;
+ sourceTree = "<absolute>";
+ };
+ AF88E9300FBA3EB400C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF88E9310FBA3EB400C5AA9C /* gssapi.h */;
+ name = "gssapi.h: 204";
+ rLen = 48;
+ rLoc = 5223;
+ rType = 0;
+ vrLen = 1593;
+ vrLoc = 4463;
+ };
+ AF88E9310FBA3EB400C5AA9C /* gssapi.h */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ name = gssapi.h;
+ path = /Developer/SDKs/MacOSX10.5.sdk/usr/include/gssapi/gssapi.h;
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1651, 10504}}";
+ sepNavSelRange = "{18918, 19}";
+ sepNavVisRange = "{18293, 1476}";
+ };
+ };
+ AF88E9400FBA3FD300C5AA9C /* XCBuildMessageTextBookmark */ = {
+ isa = XCBuildMessageTextBookmark;
+ comments = "Python.h: No such file or directory";
+ fRef = AFDE37FA0BB41E1D008C037E /* kerberosbasic.c */;
+ rLen = 1;
+ rLoc = 16;
+ rType = 1;
+ };
+ AF88E9410FBA3FD300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FA0BB41E1D008C037E /* kerberosbasic.c */;
+ name = "kerberosbasic.c: 17";
+ rLen = 0;
+ rLoc = 627;
+ rType = 0;
+ vrLen = 450;
+ vrLoc = 300;
+ };
+ AF88E94C0FBA407500C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FA0BB41E1D008C037E /* kerberosbasic.c */;
+ name = "kerberosbasic.c: 17";
+ rLen = 0;
+ rLoc = 627;
+ rType = 0;
+ vrLen = 1616;
+ vrLoc = 0;
+ };
+ AF88E94E0FBA416E00C5AA9C /* kerberospw.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1562, 1781}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 1509}";
+ };
+ };
+ AF88E94F0FBA416E00C5AA9C /* kerberospw.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1562, 616}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 867}";
+ };
+ };
+ AF88E9560FBA419E00C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FA0BB41E1D008C037E /* kerberosbasic.c */;
+ name = "kerberosbasic.c: 17";
+ rLen = 0;
+ rLoc = 627;
+ rType = 0;
+ vrLen = 1487;
+ vrLoc = 0;
+ };
+ AF88E95C0FBA41D300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 496";
+ rLen = 22;
+ rLoc = 15065;
+ rType = 0;
+ vrLen = 1715;
+ vrLoc = 14638;
+ };
+ AF88E95D0FBA41D300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF88E9310FBA3EB400C5AA9C /* gssapi.h */;
+ name = "gssapi.h: 585";
+ rLen = 19;
+ rLoc = 18918;
+ rType = 0;
+ vrLen = 1476;
+ vrLoc = 18293;
+ };
+ AF88E95E0FBA41D300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE383A0BB41FFA008C037E /* kerberos.c */;
+ name = "kerberos.c: 39";
+ rLen = 25;
+ rLoc = 1160;
+ rType = 0;
+ vrLen = 1124;
+ vrLoc = 992;
+ };
+ AF88E95F0FBA41D300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FA0BB41E1D008C037E /* kerberosbasic.c */;
+ name = "kerberosbasic.c: 27";
+ rLen = 63;
+ rLoc = 806;
+ rType = 0;
+ vrLen = 1617;
+ vrLoc = 63;
+ };
+ AF88E9600FBA41D300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF88E94F0FBA416E00C5AA9C /* kerberospw.h */;
+ name = "kerberospw.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 867;
+ vrLoc = 0;
+ };
+ AF88E9610FBA41D300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF88E94E0FBA416E00C5AA9C /* kerberospw.c */;
+ name = "kerberospw.c: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 1509;
+ vrLoc = 0;
+ };
+ AF88E9620FBA41D300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* main.c */;
+ rLen = 0;
+ rLoc = 22;
+ rType = 1;
+ };
+ AF88E9630FBA41D300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* main.c */;
+ name = "main.c: 33";
+ rLen = 0;
+ rLoc = 1055;
+ rType = 0;
+ vrLen = 1131;
+ vrLoc = 0;
+ };
+ AF88E9660FBA435000C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* main.c */;
+ name = "main.c: 33";
+ rLen = 0;
+ rLoc = 1055;
+ rType = 0;
+ vrLen = 1131;
+ vrLoc = 0;
+ };
+ AF88E9670FBA435000C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE383A0BB41FFA008C037E /* kerberos.c */;
+ name = "kerberos.c: 415";
+ rLen = 0;
+ rLoc = 11472;
+ rType = 0;
+ vrLen = 1178;
+ vrLoc = 7396;
+ };
+ AF88E9680FBA435000C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FB0BB41E1D008C037E /* kerberosbasic.h */;
+ name = "kerberosbasic.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 898;
+ vrLoc = 0;
+ };
+ AF88E9690FBA435000C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FD0BB41E1D008C037E /* kerberosgss.h */;
+ name = "kerberosgss.h: 46";
+ rLen = 0;
+ rLoc = 1419;
+ rType = 0;
+ vrLen = 1615;
+ vrLoc = 587;
+ };
+ AF88E96A0FBA435000C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 496";
+ rLen = 22;
+ rLoc = 15065;
+ rType = 0;
+ vrLen = 1710;
+ vrLoc = 14638;
+ };
+ AF88E96B0FBA435000C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 539";
+ rLen = 0;
+ rLoc = 17377;
+ rType = 0;
+ vrLen = 1293;
+ vrLoc = 15634;
+ };
+ AF88E96C0FBA438E00C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 543";
+ rLen = 19;
+ rLoc = 16673;
+ rType = 0;
+ vrLen = 1714;
+ vrLoc = 15772;
+ };
+ AF88E96D0FBA43A100C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 543";
+ rLen = 0;
+ rLoc = 16692;
+ rType = 0;
+ vrLen = 1563;
+ vrLoc = 15772;
+ };
+ AF88E96E0FBA43B300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 543";
+ rLen = 0;
+ rLoc = 16718;
+ rType = 0;
+ vrLen = 1588;
+ vrLoc = 15777;
+ };
+ AF88E96F0FBA43D100C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 543";
+ rLen = 0;
+ rLoc = 16726;
+ rType = 0;
+ vrLen = 1594;
+ vrLoc = 15777;
+ };
+ AF88E9700FBA441100C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 544";
+ rLen = 0;
+ rLoc = 16738;
+ rType = 0;
+ vrLen = 1483;
+ vrLoc = 16048;
+ };
+ AF88E9710FBA441B00C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 544";
+ rLen = 0;
+ rLoc = 16768;
+ rType = 0;
+ vrLen = 1484;
+ vrLoc = 16048;
+ };
+ AF88E9720FBA442300C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 544";
+ rLen = 0;
+ rLoc = 16768;
+ rType = 0;
+ vrLen = 1491;
+ vrLoc = 16048;
+ };
+ AF88E9730FBA443200C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 544";
+ rLen = 0;
+ rLoc = 16768;
+ rType = 0;
+ vrLen = 1503;
+ vrLoc = 16048;
+ };
+ AF88E97A0FBA449500C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 529";
+ rLen = 16;
+ rLoc = 16093;
+ rType = 0;
+ vrLen = 1576;
+ vrLoc = 15766;
+ };
+ AF88E97B0FBA449500C5AA9C /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
+ name = "kerberosgss.c: 551";
+ rLen = 0;
+ rLoc = 16985;
+ rType = 0;
+ vrLen = 1596;
+ vrLoc = 16048;
+ };
AFDE37EE0BB41DF9008C037E /* PyKerberos */ = {
isa = PBXExecutable;
- activeArgIndex = 2147483647;
activeArgIndices = (
);
argumentStrings = (
@@ -201,6 +571,9 @@
configStateDict = {
};
customDataFormattersEnabled = 1;
+ dataTipCustomDataFormattersEnabled = 1;
+ dataTipShowTypeColumn = 1;
+ dataTipSortType = 0;
debuggerPlugin = GDBDebugging;
disassemblyDisplayState = 0;
dylibVariantSuffix = "";
@@ -213,6 +586,7 @@
name = PyKerberos;
savedGlobals = {
};
+ showTypeColumn = 0;
sourceDirectories = (
);
variableFormatDictionary = {
@@ -222,7 +596,11 @@
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
+ repositoryNamesForRoots = {
+ };
scmConfiguration = {
+ repositoryNamesForRoots = {
+ };
};
};
AFDE37F60BB41E00008C037E /* Code sense */ = {
@@ -238,38 +616,43 @@
};
AFDE37FA0BB41E1D008C037E /* kerberosbasic.c */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {984, 2142}}";
- sepNavSelRange = "{1171, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {1283, 1846}}";
+ sepNavSelRange = "{627, 0}";
+ sepNavVisRange = "{0, 1616}";
sepNavVisRect = "{{0, 325}, {984, 316}}";
};
};
AFDE37FB0BB41E1D008C037E /* kerberosbasic.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1336, 1031}}";
- sepNavSelRange = "{824, 115}";
+ sepNavIntBoundsRect = "{{0, 0}, {1562, 616}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 898}";
sepNavVisRect = "{{0, 0}, {1336, 1031}}";
sepNavWindowFrame = "{{15, 13}, {1395, 1160}}";
};
};
AFDE37FC0BB41E1D008C037E /* kerberosgss.c */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {984, 4550}}";
- sepNavSelRange = "{7491, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {1562, 7969}}";
+ sepNavSelRange = "{16985, 0}";
+ sepNavVisRange = "{16048, 1596}";
sepNavVisRect = "{{0, 2485}, {984, 308}}";
};
};
AFDE37FD0BB41E1D008C037E /* kerberosgss.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1336, 1031}}";
- sepNavSelRange = "{1553, 140}";
+ sepNavIntBoundsRect = "{{0, 0}, {1562, 793}}";
+ sepNavSelRange = "{1419, 0}";
+ sepNavVisRange = "{587, 1615}";
sepNavVisRect = "{{0, 0}, {1336, 1031}}";
sepNavWindowFrame = "{{15, 13}, {1395, 1160}}";
};
};
AFDE383A0BB41FFA008C037E /* kerberos.c */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {932, 2282}}";
- sepNavSelRange = "{690, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {1562, 5733}}";
+ sepNavSelRange = "{11472, 0}";
+ sepNavVisRange = "{7396, 1178}";
sepNavVisRect = "{{0, 0}, {932, 292}}";
};
};
@@ -315,7 +698,7 @@
fRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */;
name = "kerberosgss.c: 47";
rLen = 0;
- rLoc = 1290;
+ rLoc = 1298;
rType = 0;
vrLen = 1144;
vrLoc = 1097;
Modified: PyKerberos/trunk/support/PyKerberos.xcodeproj/project.pbxproj
===================================================================
--- PyKerberos/trunk/support/PyKerberos.xcodeproj/project.pbxproj 2009-05-12 21:50:50 UTC (rev 4240)
+++ PyKerberos/trunk/support/PyKerberos.xcodeproj/project.pbxproj 2009-05-13 01:01:58 UTC (rev 4241)
@@ -3,12 +3,13 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 42;
+ objectVersion = 44;
objects = {
/* Begin PBXBuildFile section */
8DD76F650486A84900D96B5E /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* main.c */; settings = {ATTRIBUTES = (); }; };
8DD76F6A0486A84900D96B5E /* PyKerberos.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6859E8B029090EE04C91782 /* PyKerberos.1 */; };
+ AF88E9500FBA416E00C5AA9C /* kerberospw.c in Sources */ = {isa = PBXBuildFile; fileRef = AF88E94E0FBA416E00C5AA9C /* kerberospw.c */; };
AFDE37FE0BB41E1D008C037E /* base64.c in Sources */ = {isa = PBXBuildFile; fileRef = AFDE37F80BB41E1D008C037E /* base64.c */; };
AFDE37FF0BB41E1D008C037E /* kerberosbasic.c in Sources */ = {isa = PBXBuildFile; fileRef = AFDE37FA0BB41E1D008C037E /* kerberosbasic.c */; };
AFDE38000BB41E1D008C037E /* kerberosgss.c in Sources */ = {isa = PBXBuildFile; fileRef = AFDE37FC0BB41E1D008C037E /* kerberosgss.c */; };
@@ -33,6 +34,8 @@
/* Begin PBXFileReference section */
08FB7796FE84155DC02AAC07 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
8DD76F6C0486A84900D96B5E /* PyKerberos */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = PyKerberos; sourceTree = BUILT_PRODUCTS_DIR; };
+ AF88E94E0FBA416E00C5AA9C /* kerberospw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kerberospw.c; path = ../src/kerberospw.c; sourceTree = SOURCE_ROOT; };
+ AF88E94F0FBA416E00C5AA9C /* kerberospw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kerberospw.h; path = ../src/kerberospw.h; sourceTree = SOURCE_ROOT; };
AFDE37F80BB41E1D008C037E /* base64.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = base64.c; path = ../src/base64.c; sourceTree = SOURCE_ROOT; };
AFDE37F90BB41E1D008C037E /* base64.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = base64.h; path = ../src/base64.h; sourceTree = SOURCE_ROOT; };
AFDE37FA0BB41E1D008C037E /* kerberosbasic.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = kerberosbasic.c; path = ../src/kerberosbasic.c; sourceTree = SOURCE_ROOT; };
@@ -79,6 +82,8 @@
AFDE37FB0BB41E1D008C037E /* kerberosbasic.h */,
AFDE37FC0BB41E1D008C037E /* kerberosgss.c */,
AFDE37FD0BB41E1D008C037E /* kerberosgss.h */,
+ AF88E94E0FBA416E00C5AA9C /* kerberospw.c */,
+ AF88E94F0FBA416E00C5AA9C /* kerberospw.h */,
08FB7796FE84155DC02AAC07 /* main.c */,
);
name = Source;
@@ -141,7 +146,6 @@
mainGroup = 08FB7794FE84155DC02AAC07 /* PyKerberos */;
projectDirPath = "";
projectRoot = "";
- shouldCheckCompatibility = 1;
targets = (
8DD76F620486A84900D96B5E /* PyKerberos */,
);
@@ -158,6 +162,7 @@
AFDE37FF0BB41E1D008C037E /* kerberosbasic.c in Sources */,
AFDE38000BB41E1D008C037E /* kerberosgss.c in Sources */,
AFDE383B0BB41FFA008C037E /* kerberos.c in Sources */,
+ AF88E9500FBA416E00C5AA9C /* kerberospw.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -176,6 +181,7 @@
"_GLIBCXX_DEBUG=1",
"_GLIBCXX_DEBUG_PEDANTIC=1",
);
+ HEADER_SEARCH_PATHS = "/System/Library/Frameworks/Python.framework/Headers/**";
INSTALL_PATH = /usr/local/bin;
PRODUCT_NAME = PyKerberos;
ZERO_LINK = YES;
@@ -191,6 +197,7 @@
);
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_MODEL_TUNING = G5;
+ HEADER_SEARCH_PATHS = "/System/Library/Frameworks/Python.framework/Headers/**";
INSTALL_PATH = /usr/local/bin;
PRODUCT_NAME = PyKerberos;
};
@@ -202,7 +209,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
- SDKROOT = /Developer/SDKs/MacOSX10.5.sdk;
+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
};
name = Debug;
};
@@ -213,7 +220,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = "";
PREBINDING = NO;
- SDKROOT = /Developer/SDKs/MacOSX10.5.sdk;
+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
USER_HEADER_SEARCH_PATHS = ..src;
};
name = Release;
Modified: PyKerberos/trunk/support/main.c
===================================================================
--- PyKerberos/trunk/support/main.c 2009-05-12 21:50:50 UTC (rev 4240)
+++ PyKerberos/trunk/support/main.c 2009-05-13 01:01:58 UTC (rev 4241)
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+ * Copyright (c) 2006-2009 Apple Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,13 +24,13 @@
char* service = 0L;
gss_server_state state;
- service = server_principal_details("http", "caldav.corp.apple.com");
+ service = server_principal_details("http", "caldav.local");
//printf("Got service principal: %s\n", result);
//code = authenticate_user_krb5pwd("x", "x", "http/caldav.corp.apple.com at CALDAV.CORP.APPLE.COM", "CALDAV.CORP.APPLE.COM");
- code = authenticate_gss_server_init("http at CALDAV.CORP.APPLE.COM", &state);
+ code = authenticate_gss_server_init("", &state);
code = authenticate_gss_server_clean(&state);
return 0;
Modified: PyKerberos/trunk/test.py
===================================================================
--- PyKerberos/trunk/test.py 2009-05-12 21:50:50 UTC (rev 4240)
+++ PyKerberos/trunk/test.py 2009-05-13 01:01:58 UTC (rev 4241)
@@ -1,5 +1,5 @@
##
-# Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2009 Apple Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -27,7 +27,7 @@
# Extract arguments
user = ""
pswd = ""
- service = "http at EXAMPLE.COM"
+ service = "HTTP at EXAMPLE.COM"
host = "host.example.com"
realm ="HOST.EXAMPLE.COM"
port = 8008
@@ -115,7 +115,7 @@
if rc != 1:
return
- rs, vs = kerberos.authGSSServerInit(service);
+ rs, vs = kerberos.authGSSServerInit("");
print "Status for authGSSServerInit = %s" % statusText(rs);
if rs != 1:
return
@@ -136,6 +136,7 @@
return
print "Server user name: %s" % kerberos.authGSSServerUserName(vs);
+ print "Server target name: %s" % kerberos.authGSSServerTargetName(vs);
print "Client user name: %s" % kerberos.authGSSClientUserName(vc);
rc = kerberos.authGSSClientClean(vc);
@@ -204,7 +205,7 @@
try:
kerberos.authGSSClientStep(vc, "");
except kerberos.GSSError, e:
- print "Could not do GSSAPI setp with continue: %s/%s" % (e[0][0], e[1][0])
+ print "Could not do GSSAPI step with continue: %s/%s" % (e[0][0], e[1][0])
return
hdrs = {}
@@ -248,6 +249,7 @@
print "Could not clean-up GSSAPI: %s/%s" % (e[0][0], e[1][0])
return
+ print "Authenticated successfully"
return
if __name__=='__main__':
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090512/d369a48d/attachment-0001.html>
More information about the calendarserver-changes
mailing list