return AUTH_{CONTINUE,ERROR}, where appropriate

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5863 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1999-04-07 14:17:15 +00:00
parent dd8524937b
commit 48784ad0a1

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska H<>gskolan * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved. * All rights reserved.
* *
@@ -237,31 +237,31 @@ krb4_auth(void *app_data, char *host)
ret = mk_auth(d, &adat, "rcmd", host, checksum); ret = mk_auth(d, &adat, "rcmd", host, checksum);
if(ret){ if(ret){
printf("%s\n", krb_get_err_text(ret)); printf("%s\n", krb_get_err_text(ret));
return -1; return AUTH_CONTINUE;
} }
if(base64_encode(adat.dat, adat.length, &p) < 0) { if(base64_encode(adat.dat, adat.length, &p) < 0) {
printf("Out of memory base64-encoding.\n"); printf("Out of memory base64-encoding.\n");
return -1; return AUTH_CONTINUE;
} }
ret = command("ADAT %s", p); ret = command("ADAT %s", p);
free(p); free(p);
if(ret != COMPLETE){ if(ret != COMPLETE){
printf("Server didn't accept auth data.\n"); printf("Server didn't accept auth data.\n");
return -1; return AUTH_ERROR;
} }
p = strstr(reply_string, "ADAT="); p = strstr(reply_string, "ADAT=");
if(!p){ if(!p){
printf("Remote host didn't send adat reply.\n"); printf("Remote host didn't send adat reply.\n");
return -1; return AUTH_ERROR;
} }
p += 5; p += 5;
len = base64_decode(p, adat.dat); len = base64_decode(p, adat.dat);
if(len < 0){ if(len < 0){
printf("Failed to decode base64 from server.\n"); printf("Failed to decode base64 from server.\n");
return -1; return AUTH_ERROR;
} }
adat.length = len; adat.length = len;
ret = krb_rd_safe(adat.dat, adat.length, &d->key, ret = krb_rd_safe(adat.dat, adat.length, &d->key,
@@ -269,14 +269,14 @@ krb4_auth(void *app_data, char *host)
if(ret){ if(ret){
printf("Error reading reply from server: %s.\n", printf("Error reading reply from server: %s.\n",
krb_get_err_text(ret)); krb_get_err_text(ret));
return -1; return AUTH_ERROR;
} }
krb_get_int(msg_data.app_data, &cs, 4, 0); krb_get_int(msg_data.app_data, &cs, 4, 0);
if(cs - checksum != 1){ if(cs - checksum != 1){
printf("Bad checksum returned from server.\n"); printf("Bad checksum returned from server.\n");
return -1; return AUTH_ERROR;
} }
return 0; return AUTH_OK;
} }
struct sec_client_mech krb4_client_mech = { struct sec_client_mech krb4_client_mech = {