1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

s3/cups: add encryption support

This commit is contained in:
Björn Jacke 2009-03-27 13:05:00 +01:00 committed by Volker Lendecke
parent 4b8e4ea728
commit 4b184eaea1
4 changed files with 41 additions and 0 deletions

View File

@ -788,6 +788,7 @@ if test x$enable_cups != xno; then
x"$ac_cv_header_cups_language_h" = xyes; then
AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
samba_cv_HAVE_CUPS=yes
AC_CHECK_LIB_EXT(cups, PRINT_LIBS, httpConnectEncrypt)
else
AC_MSG_WARN([cups-config around but cups-devel not installed])
CFLAGS=$ac_save_CFLAGS

View File

@ -4125,6 +4125,7 @@ const char **lp_admin_users(int );
const char **lp_svcctl_list(void);
char *lp_cups_options(int );
char *lp_cups_server(void);
int lp_cups_encrypt(void);
char *lp_iprint_server(void);
int lp_cups_connection_timeout(void);
const char *lp_ctdbd_socket(void);

View File

@ -54,6 +54,10 @@
#include "includes.h"
#include "printing.h"
#ifdef HAVE_HTTPCONNECTENCRYPT
#include <cups/http.h>
#endif
bool bLoaded = False;
extern enum protocol_types Protocol;
@ -257,6 +261,7 @@ struct global {
int ldap_debug_threshold;
int iAclCompat;
char *szCupsServer;
int CupsEncrypt;
char *szIPrintServer;
char *ctdbdSocket;
char **szClusterAddresses;
@ -774,6 +779,8 @@ static const struct enum_list enum_case[] = {
{-1, NULL}
};
static const struct enum_list enum_bool_auto[] = {
{False, "No"},
{False, "False"},
@ -2628,6 +2635,16 @@ static struct parm_struct parm_table[] = {
.flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
},
{
.label = "cups encrypt",
.type = P_ENUM,
.p_class = P_GLOBAL,
.ptr = &Globals.CupsEncrypt,
.special = NULL,
.enum_list = enum_bool_auto,
.flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
},
{
.label = "cups connection timeout",
.type = P_INTEGER,
.p_class = P_GLOBAL,
@ -5471,6 +5488,23 @@ FN_LOCAL_LIST(lp_admin_users, szAdminUsers)
FN_GLOBAL_LIST(lp_svcctl_list, &Globals.szServicesList)
FN_LOCAL_STRING(lp_cups_options, szCupsOptions)
FN_GLOBAL_STRING(lp_cups_server, &Globals.szCupsServer)
int lp_cups_encrypt(void)
{
#ifdef HAVE_HTTPCONNECTENCRYPT
switch (Globals.CupsEncrypt) {
case Auto:
Globals.CupsEncrypt = HTTP_ENCRYPT_REQUIRED;
break;
case True:
Globals.CupsEncrypt = HTTP_ENCRYPT_ALWAYS;
break;
case False:
Globals.CupsEncrypt = HTTP_ENCRYPT_NEVER;
break;
}
#endif
return Globals.CupsEncrypt;
}
FN_GLOBAL_STRING(lp_iprint_server, &Globals.szIPrintServer)
FN_GLOBAL_INTEGER(lp_cups_connection_timeout, &Globals.cups_connection_timeout)
FN_GLOBAL_CONST_STRING(lp_ctdbd_socket, &Globals.ctdbdSocket)

View File

@ -93,7 +93,12 @@ static http_t *cups_connect(TALLOC_CTX *frame)
alarm(timeout);
}
#ifdef HAVE_HTTPCONNECTENCRYPT
http = httpConnectEncrypt(server, port, lp_cups_encrypt());
#else
http = httpConnect(server, port);
#endif
CatchSignal(SIGALRM, SIGNAL_CAST SIG_IGN);
alarm(0);