diff options
author | Volker Lendecke <vlendec@samba.org> | 2004-06-02 14:58:18 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:51:52 -0500 |
commit | e707189db3dbaa2874f383cf623b1c75f23c393c (patch) | |
tree | 3d71c1b9a29df6895fc0459715d805ebdfc6f3ab | |
parent | 47af5445f39202b91e29bce0fff8933e56063789 (diff) | |
download | samba-e707189db3dbaa2874f383cf623b1c75f23c393c.tar.gz samba-e707189db3dbaa2874f383cf623b1c75f23c393c.tar.bz2 samba-e707189db3dbaa2874f383cf623b1c75f23c393c.zip |
r979: Implement the 'cups server' option. This makes it possible to have virtual
smbd's connect to different cups daemons.
Volker
(This used to be commit 148dc71ea5c1ec619ba6f4873fa7c69a608e58cc)
-rw-r--r-- | source3/param/loadparm.c | 4 | ||||
-rw-r--r-- | source3/printing/print_cups.c | 47 |
2 files changed, 33 insertions, 18 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index f158a35336..4ac2f8950f 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -231,6 +231,7 @@ typedef struct char *szLdapFilter; char *szLdapAdminDn; char *szAclCompat; + char *szCupsServer; int ldap_passwd_sync; int ldap_replication_sleep; BOOL ldap_delete_dn; @@ -953,6 +954,7 @@ static struct parm_struct parm_table[] = { {"print ok", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL, FLAG_HIDE}, {"printing", P_ENUM, P_LOCAL, &sDefault.iPrinting, handle_printing, enum_printing, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, {"cups options", P_STRING, P_LOCAL, &sDefault.szCupsOptions, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, + {"cups server", P_STRING, P_GLOBAL, &Globals.szCupsServer, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, {"print command", P_STRING, P_LOCAL, &sDefault.szPrintcommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, {"disable spoolss", P_BOOL, P_GLOBAL, &Globals.bDisableSpoolss, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, {"lpq command", P_STRING, P_LOCAL, &sDefault.szLpqcommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, @@ -1506,6 +1508,7 @@ static void init_globals(void) string_set(&Globals.szTemplatePrimaryGroup, "nobody"); string_set(&Globals.szWinbindSeparator, "\\"); string_set(&Globals.szAclCompat, ""); + string_set(&Globals.szCupsServer, ""); Globals.winbind_cache_time = 300; /* 5 minutes */ Globals.bWinbindEnableLocalAccounts = True; @@ -1802,6 +1805,7 @@ FN_LOCAL_LIST(lp_invalid_users, szInvalidUsers) FN_LOCAL_LIST(lp_valid_users, szValidUsers) FN_LOCAL_LIST(lp_admin_users, szAdminUsers) FN_LOCAL_STRING(lp_cups_options, szCupsOptions) +FN_GLOBAL_STRING(lp_cups_server, &Globals.szCupsServer) FN_LOCAL_STRING(lp_printcommand, szPrintcommand) FN_LOCAL_STRING(lp_lpqcommand, szLpqcommand) FN_LOCAL_STRING(lp_lprmcommand, szLprmcommand) diff --git a/source3/printing/print_cups.c b/source3/printing/print_cups.c index 9a48296543..3097811fac 100644 --- a/source3/printing/print_cups.c +++ b/source3/printing/print_cups.c @@ -65,6 +65,17 @@ cups_passwd_cb(const char *prompt) /* I - Prompt */ return (NULL); } +static const char *cups_server(void) +{ + if ((lp_cups_server() != NULL) && (strlen(lp_cups_server()) > 0)) { + DEBUG(10, ("cups server explicitly set to %s\n", + lp_cups_server())); + return lp_cups_server(); + } + + DEBUG(10, ("cups server left to default %s\n", cupsServer())); + return cupsServer(); +} /* * 'cups_printer_fn()' - Call a function for every printer known to the @@ -102,10 +113,10 @@ void cups_printer_fn(void (*fn)(char *, char *)) * Try to connect to the server... */ - if ((http = httpConnect(cupsServer(), ippPort())) == NULL) + if ((http = httpConnect(cups_server(), ippPort())) == NULL) { DEBUG(0,("Unable to connect to CUPS server %s - %s\n", - cupsServer(), strerror(errno))); + cups_server(), strerror(errno))); return; } @@ -331,10 +342,10 @@ int cups_printername_ok(const char *name) * Try to connect to the server... */ - if ((http = httpConnect(cupsServer(), ippPort())) == NULL) + if ((http = httpConnect(cups_server(), ippPort())) == NULL) { DEBUG(3,("Unable to connect to CUPS server %s - %s\n", - cupsServer(), strerror(errno))); + cups_server(), strerror(errno))); return (0); } @@ -425,10 +436,10 @@ cups_job_delete(int snum, struct printjob *pjob) * Try to connect to the server... */ - if ((http = httpConnect(cupsServer(), ippPort())) == NULL) + if ((http = httpConnect(cups_server(), ippPort())) == NULL) { DEBUG(0,("Unable to connect to CUPS server %s - %s\n", - cupsServer(), strerror(errno))); + cups_server(), strerror(errno))); return (1); } @@ -515,10 +526,10 @@ cups_job_pause(int snum, struct printjob *pjob) * Try to connect to the server... */ - if ((http = httpConnect(cupsServer(), ippPort())) == NULL) + if ((http = httpConnect(cups_server(), ippPort())) == NULL) { DEBUG(0,("Unable to connect to CUPS server %s - %s\n", - cupsServer(), strerror(errno))); + cups_server(), strerror(errno))); return (1); } @@ -605,10 +616,10 @@ cups_job_resume(int snum, struct printjob *pjob) * Try to connect to the server... */ - if ((http = httpConnect(cupsServer(), ippPort())) == NULL) + if ((http = httpConnect(cups_server(), ippPort())) == NULL) { DEBUG(0,("Unable to connect to CUPS server %s - %s\n", - cupsServer(), strerror(errno))); + cups_server(), strerror(errno))); return (1); } @@ -698,10 +709,10 @@ cups_job_submit(int snum, struct printjob *pjob) * Try to connect to the server... */ - if ((http = httpConnect(cupsServer(), ippPort())) == NULL) + if ((http = httpConnect(cups_server(), ippPort())) == NULL) { DEBUG(0,("Unable to connect to CUPS server %s - %s\n", - cupsServer(), strerror(errno))); + cups_server(), strerror(errno))); return (1); } @@ -848,10 +859,10 @@ cups_queue_get(int snum, print_queue_struct **q, print_status_struct *status) * Try to connect to the server... */ - if ((http = httpConnect(cupsServer(), ippPort())) == NULL) + if ((http = httpConnect(cups_server(), ippPort())) == NULL) { DEBUG(0,("Unable to connect to CUPS server %s - %s\n", - cupsServer(), strerror(errno))); + cups_server(), strerror(errno))); return (0); } @@ -1153,10 +1164,10 @@ cups_queue_pause(int snum) * Try to connect to the server... */ - if ((http = httpConnect(cupsServer(), ippPort())) == NULL) + if ((http = httpConnect(cups_server(), ippPort())) == NULL) { DEBUG(0,("Unable to connect to CUPS server %s - %s\n", - cupsServer(), strerror(errno))); + cups_server(), strerror(errno))); return (1); } @@ -1245,10 +1256,10 @@ cups_queue_resume(int snum) * Try to connect to the server... */ - if ((http = httpConnect(cupsServer(), ippPort())) == NULL) + if ((http = httpConnect(cups_server(), ippPort())) == NULL) { DEBUG(0,("Unable to connect to CUPS server %s - %s\n", - cupsServer(), strerror(errno))); + cups_server(), strerror(errno))); return (1); } |