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)
committerKarolin Seeger <kseeger@samba.org>
Wed, 5 May 2010 07:52:44 +0000 (09:52 +0200)
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.
(cherry picked from commit a9e008ee36c8fd9ca79b3bdfdc78111939c3e539)

source3/param/loadparm.c

index f362c9b7cf0817d2272cc6a918330c0989a6039c..57ea2cd3a8e0f614d1957e2652c25f8c0ae7a8bc 100644 (file)
@@ -5596,20 +5596,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)