Merge branch 'master' of github.com:heimdal/heimdal

Conflicts:
	lib/gssapi/gssapi/gssapi.h
	lib/gssapi/gssapi_mech.h
	lib/gssapi/mech/gss_mech_switch.c
This commit is contained in:
Luke Howard
2011-03-20 19:08:10 +11:00
142 changed files with 80509 additions and 3010 deletions

View File

@@ -94,6 +94,8 @@ do_trans (int sock, gss_ctx_id_t context_hdl)
return 0;
}
extern char *password;
static int
proto (int sock, const char *hostname, const char *service)
{
@@ -102,6 +104,7 @@ proto (int sock, const char *hostname, const char *service)
int context_established = 0;
gss_ctx_id_t context_hdl = GSS_C_NO_CONTEXT;
gss_cred_id_t cred = GSS_C_NO_CREDENTIAL;
gss_buffer_desc real_input_token, real_output_token;
gss_buffer_t input_token = &real_input_token,
output_token = &real_output_token;
@@ -130,6 +133,26 @@ proto (int sock, const char *hostname, const char *service)
gss_err (1, min_stat,
"Error importing name `%s@%s':\n", service, hostname);
if (password) {
gss_buffer_desc pw;
pw.value = password;
pw.length = strlen(password);
maj_stat = gss_acquire_cred_with_password(&min_stat,
GSS_C_NO_NAME,
&pw,
GSS_C_INDEFINITE,
GSS_C_NO_OID_SET,
GSS_C_INITIATE,
&cred,
NULL,
NULL);
if (GSS_ERROR(maj_stat))
gss_err (1, min_stat,
"Error acquiring initiator credentials");
}
addrlen = sizeof(local);
if (getsockname (sock, (struct sockaddr *)&local, &addrlen) < 0
|| addrlen != sizeof(local))
@@ -172,7 +195,7 @@ proto (int sock, const char *hostname, const char *service)
while(!context_established) {
maj_stat =
gss_init_sec_context(&min_stat,
GSS_C_NO_CREDENTIAL,
cred,
&context_hdl,
server,
mech_oid,