summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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;