]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Add support for "internal" keychain name (uses CUPS keychain instead of user/
authorMichael R Sweet <michaelrsweet@gmail.com>
Wed, 4 Jan 2017 22:22:01 +0000 (17:22 -0500)
committerMichael R Sweet <michaelrsweet@gmail.com>
Wed, 4 Jan 2017 22:22:01 +0000 (17:22 -0500)
login or system-wide keychains/stores) in cups-files.conf for testing.

scheduler/conf.c

index 0bb2b95d6cb8fc6893c965600f406c0a5025b713..f547749c6061766b0e805c5c91d08c9055de6fa0 100644 (file)
@@ -1099,10 +1099,12 @@ cupsdReadConfiguration(void)
     cupsdSetStringf(&CacheDir, "%s/%s", ServerRoot, CacheDir);
 
 #ifdef HAVE_SSL
-  if (ServerKeychain[0] != '/')
+  if (!_cups_strcasecmp(ServerKeychain, "internal"))
+    cupsdClearString(&ServerKeychain);
+  else if (ServerKeychain[0] != '/')
     cupsdSetStringf(&ServerKeychain, "%s/%s", ServerRoot, ServerKeychain);
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG, "Using keychain \"%s\" for server name \"%s\".", ServerKeychain, ServerName);
+  cupsdLogMessage(CUPSD_LOG_DEBUG, "Using keychain \"%s\" for server name \"%s\".", ServerKeychain ? ServerKeychain : "internal", ServerName);
   if (!CreateSelfSignedCerts)
     cupsdLogMessage(CUPSD_LOG_DEBUG, "Self-signed TLS certificate generation is disabled.");
   cupsSetServerCredentials(ServerKeychain, ServerName, CreateSelfSignedCerts);
@@ -2875,7 +2877,7 @@ parse_variable(
        else
          snprintf(temp, sizeof(temp), "%s/%s", ServerRoot, value);
 
-       if (access(temp, 0))
+       if (access(temp, 0) && _cups_strcasecmp(value, "internal") && _cups_strcasecmp(line, "ServerKeychain"))
        {
          cupsdLogMessage(CUPSD_LOG_ERROR,
                          "File or directory for \"%s %s\" on line %d of %s "