]> arthur.barton.de Git - netatalk.git/commitdiff
Use GSS_C_NO_NAME as server principal when Kerberos options -fqdn and -krb5service...
authorFrank Lahm <franklahm@googlemail.com>
Wed, 29 Feb 2012 10:11:56 +0000 (11:11 +0100)
committerFrank Lahm <franklahm@googlemail.com>
Wed, 29 Feb 2012 10:11:56 +0000 (11:11 +0100)
NEWS
etc/uams/uams_gss.c

diff --git a/NEWS b/NEWS
index 22b496f724ef691253761758636b2e9ac126e61e..f427f4d719c53f382cde838634c97d4eaac5737e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,8 @@ Changes in 2.2.3
 * UPD: based on Unicode 6.1.0
 * UPD: experimental systemd service files: always run both afpd and cnid_metad
 * UPD: afpd: Ensure our umask is not altered by eg pam_umask
+* UPD: afpd: Use GSS_C_NO_NAME as server principal when Kerberos options -fqdn
+       and -krb5service are not set, from Jamie Gilbertson
 * FIX: afpd: sendfile() on FreeBSD was broken, courtesy of Denis Ahrens
 * FIX: afpd: Dont use searchdb when doing partial name search
 
index 044dd278bac78dea2d88ac3e72e8555ccf440812..5f7b20a0f88d6d6239b2b8f054ed1edf78d9f2be 100644 (file)
@@ -146,7 +146,7 @@ static int get_afpd_principal(void *obj, gss_name_t *server_name)
     size_t principal_length;
     gss_buffer_desc s_princ_buffer;
 
-    /* get all the required information from afpd */
+    /* get information from afpd */
     if (uam_afpserver_option(obj, UAM_OPTION_FQDN, (void*) &fqdn, &fqdnlen) < 0)
         return 1;
     LOG(log_debug, logtype_uams, "get_afpd_principal: fqdn: %s", fqdn);
@@ -155,11 +155,13 @@ static int get_afpd_principal(void *obj, gss_name_t *server_name)
         return 1;
     LOG(log_debug, logtype_uams, "get_afpd_principal: service: %s", service);
 
-    /* we need all the info, log error and return if one's missing */
+    /* if we don't have all the info, log that and return GSS_C_NO_NAME */
     if (!service || !servicelen || !fqdn || !fqdnlen) {
-        LOG(log_error, logtype_uams,
-            "get_afpd_principal: could not retrieve required information from afpd.");
-        return 1;
+        LOG(log_note, logtype_uams,
+            "get_afpd_principal: could not retrieve information from afpd, using default service principal(s)");
+
+              *server_name = GSS_C_NO_NAME;
+        return 0;
     }
 
     /* allocate memory to hold the temporary principal string */