summaryrefslogtreecommitdiffstats
path: root/src/appl
diff options
context:
space:
mode:
authorSam Hartman <hartmans@mit.edu>1996-01-18 20:52:03 +0000
committerSam Hartman <hartmans@mit.edu>1996-01-18 20:52:03 +0000
commit2a5fe3cb904eb160a154392b9173d522ae6eb47f (patch)
tree4b02aaf41795e56bc6b13dc17ab5be7db4e020b5 /src/appl
parent8d9655089bd8bbce4c18058ac00851c4a31fbd41 (diff)
downloadkrb5-2a5fe3cb904eb160a154392b9173d522ae6eb47f.tar.gz
krb5-2a5fe3cb904eb160a154392b9173d522ae6eb47f.tar.xz
krb5-2a5fe3cb904eb160a154392b9173d522ae6eb47f.zip
Fix loop so that a ftp/host@REALM is not required,
but host/host@REALM will also work. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7334 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl')
-rw-r--r--src/appl/gssftp/ftpd/ChangeLog4
-rw-r--r--src/appl/gssftp/ftpd/ftpd.c11
2 files changed, 11 insertions, 4 deletions
diff --git a/src/appl/gssftp/ftpd/ChangeLog b/src/appl/gssftp/ftpd/ChangeLog
index 16813efc06..971c87146e 100644
--- a/src/appl/gssftp/ftpd/ChangeLog
+++ b/src/appl/gssftp/ftpd/ChangeLog
@@ -1,3 +1,7 @@
+Thu Jan 18 14:55:42 1996 Sam Hartman <hartmans@tertius.mit.edu>
+
+ * ftpd.c : Only return an unable to acquire credentials error if all possible services fail.
+
Sun Jan 14 02:58:42 1996 Mark Eichin <eichin@cygnus.com>
* ftpd.c (auth_data): call gss_release_cred on the server_creds we
diff --git a/src/appl/gssftp/ftpd/ftpd.c b/src/appl/gssftp/ftpd/ftpd.c
index 2a1bff3f4a..a5d014a4ba 100644
--- a/src/appl/gssftp/ftpd/ftpd.c
+++ b/src/appl/gssftp/ftpd/ftpd.c
@@ -1938,7 +1938,12 @@ char *data;
maj_stat = gss_acquire_cred(&min_stat, server_name, 0,
GSS_C_NULL_OID_SET, GSS_C_ACCEPT,
&server_creds, NULL, NULL);
- if (maj_stat != GSS_S_COMPLETE) {
+ (void) gss_release_name(&min_stat, &server_name);
+ if (maj_stat != GSS_S_COMPLETE)
+ continue;
+ }
+ if (maj_stat != GSS_S_COMPLETE)
+ {
reply_gss_error(501, maj_stat, min_stat,
"acquiring credentials");
syslog(LOG_ERR, "gssapi error acquiring credentials");
@@ -1947,9 +1952,7 @@ char *data;
if (server_creds == GSS_C_NO_CREDENTIAL) {
syslog(LOG_ERR, "acquire return GSS_C_NO_CREDENTIAL");
}
- (void) gss_release_name(&min_stat, &server_name);
- break;
- }
+
gcontext = GSS_C_NO_CONTEXT;