Fix bug #7263 - Unable to print using Samba 3.5.1 and cups-1.1.23-40.46 on SLES10.
authorLuca Olivetti <luca@wetron.es>
Tue, 4 May 2010 22:07:57 +0000 (15:07 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 4 May 2010 22:07:57 +0000 (15:07 -0700)
Fix cups encryption setting

I had the same problem and it's due to the fact that samba doesn't respect the
"cups encryption" setting since lp_cups_encrypt changes the value: if you set
"cups encryption=no", the first call will change it to HTTP_ENCRYPT_NEVER,
since that is 1 (i.e. true), the next call will change it to
HTTP_ENCRYPT_ALWAYS and after that it'll remain set as HTTP_ENCRYPT_ALWAYS.
This patch fixes this problem.

Don't mix up the HTTP_ENCRYPT_XXX constants up with the
enumeration constants (True, False, Auto) used in the
loadparm code.

source3/param/loadparm.c

index 350f3c077caceeb7d9f8d27fc5454f55f8f0e9ce..113b8677a141dc3ff217b4dd6106344d35b40445 100644 (file)
@@ -5678,20 +5678,21 @@ FN_LOCAL_STRING(lp_cups_options, szCupsOptions)
 FN_GLOBAL_STRING(lp_cups_server, &Globals.szCupsServer)
 int lp_cups_encrypt(void)
 {
+       int result = 0;
 #ifdef HAVE_HTTPCONNECTENCRYPT
        switch (Globals.CupsEncrypt) {
                case Auto:
-                       Globals.CupsEncrypt = HTTP_ENCRYPT_REQUIRED;
+                       result = HTTP_ENCRYPT_REQUIRED;
                        break;
                case True:
-                       Globals.CupsEncrypt = HTTP_ENCRYPT_ALWAYS;
+                       result = HTTP_ENCRYPT_ALWAYS;
                        break;
                case False:
-                       Globals.CupsEncrypt = HTTP_ENCRYPT_NEVER;
+                       result = HTTP_ENCRYPT_NEVER;
                        break;
        }
 #endif
-       return Globals.CupsEncrypt;
+       return result;
 }
 FN_GLOBAL_STRING(lp_iprint_server, &Globals.szIPrintServer)
 FN_GLOBAL_INTEGER(lp_cups_connection_timeout, &Globals.cups_connection_timeout)