mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
param: move init_printer_values to lib/param
Change-Id: I45df7d589c742d6e5572b0950daed563533cca3c Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
This commit is contained in:
parent
397a3ece0b
commit
f605832d8e
@ -2179,6 +2179,127 @@ static void lpcfg_add_auto_services(struct loadparm_context *lp_ctx,
|
||||
return;
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
Initialise the sDefault parameter structure for the printer values.
|
||||
***************************************************************************/
|
||||
|
||||
void init_printer_values(struct loadparm_context *lp_ctx, TALLOC_CTX *ctx,
|
||||
struct loadparm_service *pService)
|
||||
{
|
||||
/* choose defaults depending on the type of printing */
|
||||
switch (pService->printing) {
|
||||
case PRINT_BSD:
|
||||
case PRINT_AIX:
|
||||
case PRINT_LPRNT:
|
||||
case PRINT_LPROS2:
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "lpq -P'%p'");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "lprm -P'%p' %j");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "lpr -r -P'%p' %s");
|
||||
break;
|
||||
|
||||
case PRINT_LPRNG:
|
||||
case PRINT_PLP:
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "lpq -P'%p'");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "lprm -P'%p' %j");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "lpr -r -P'%p' %s");
|
||||
lpcfg_string_set(ctx, &pService->queuepause_command, "lpc stop '%p'");
|
||||
lpcfg_string_set(ctx, &pService->queueresume_command, "lpc start '%p'");
|
||||
lpcfg_string_set(ctx, &pService->lppause_command, "lpc hold '%p' %j");
|
||||
lpcfg_string_set(ctx, &pService->lpresume_command, "lpc release '%p' %j");
|
||||
break;
|
||||
|
||||
case PRINT_CUPS:
|
||||
case PRINT_IPRINT:
|
||||
/* set the lpq command to contain the destination printer
|
||||
name only. This is used by cups_queue_get() */
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "%p");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "");
|
||||
lpcfg_string_set(ctx, &pService->lppause_command, "");
|
||||
lpcfg_string_set(ctx, &pService->lpresume_command, "");
|
||||
lpcfg_string_set(ctx, &pService->queuepause_command, "");
|
||||
lpcfg_string_set(ctx, &pService->queueresume_command, "");
|
||||
break;
|
||||
|
||||
case PRINT_SYSV:
|
||||
case PRINT_HPUX:
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "lpstat -o%p");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "cancel %p-%j");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "lp -c -d%p %s; rm %s");
|
||||
lpcfg_string_set(ctx, &pService->queuepause_command, "disable %p");
|
||||
lpcfg_string_set(ctx, &pService->queueresume_command, "enable %p");
|
||||
#ifndef HPUX
|
||||
lpcfg_string_set(ctx, &pService->lppause_command, "lp -i %p-%j -H hold");
|
||||
lpcfg_string_set(ctx, &pService->lpresume_command, "lp -i %p-%j -H resume");
|
||||
#endif /* HPUX */
|
||||
break;
|
||||
|
||||
case PRINT_QNX:
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "lpq -P%p");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "lprm -P%p %j");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "lp -r -P%p %s");
|
||||
break;
|
||||
|
||||
#if defined(DEVELOPER) || defined(ENABLE_SELFTEST)
|
||||
|
||||
case PRINT_TEST:
|
||||
case PRINT_VLP: {
|
||||
const char *tdbfile;
|
||||
TALLOC_CTX *tmp_ctx = talloc_new(ctx);
|
||||
const char *tmp;
|
||||
|
||||
tmp = lpcfg_parm_string(lp_ctx, NULL, "vlp", "tdbfile");
|
||||
if (tmp == NULL) {
|
||||
tmp = "/tmp/vlp.tdb";
|
||||
}
|
||||
|
||||
tdbfile = talloc_asprintf(tmp_ctx, "tdbfile=%s", tmp);
|
||||
if (tdbfile == NULL) {
|
||||
tdbfile="tdbfile=/tmp/vlp.tdb";
|
||||
}
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s print %%p %%s",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->print_command,
|
||||
tmp ? tmp : "vlp print %p %s");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s lpq %%p",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->lpq_command,
|
||||
tmp ? tmp : "vlp lpq %p");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s lprm %%p %%j",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->lprm_command,
|
||||
tmp ? tmp : "vlp lprm %p %j");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s lppause %%p %%j",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->lppause_command,
|
||||
tmp ? tmp : "vlp lppause %p %j");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s lpresume %%p %%j",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->lpresume_command,
|
||||
tmp ? tmp : "vlp lpresume %p %j");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s queuepause %%p",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->queuepause_command,
|
||||
tmp ? tmp : "vlp queuepause %p");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s queueresume %%p",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->queueresume_command,
|
||||
tmp ? tmp : "vlp queueresume %p");
|
||||
TALLOC_FREE(tmp_ctx);
|
||||
|
||||
break;
|
||||
}
|
||||
#endif /* DEVELOPER */
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unload unused services.
|
||||
|
@ -306,127 +306,6 @@ bool lp_string_set(char **dest, const char *src) {
|
||||
return string_set(Globals.ctx, dest, src);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
Initialise the sDefault parameter structure for the printer values.
|
||||
***************************************************************************/
|
||||
|
||||
void init_printer_values(struct loadparm_context *lp_ctx, TALLOC_CTX *ctx,
|
||||
struct loadparm_service *pService)
|
||||
{
|
||||
/* choose defaults depending on the type of printing */
|
||||
switch (pService->printing) {
|
||||
case PRINT_BSD:
|
||||
case PRINT_AIX:
|
||||
case PRINT_LPRNT:
|
||||
case PRINT_LPROS2:
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "lpq -P'%p'");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "lprm -P'%p' %j");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "lpr -r -P'%p' %s");
|
||||
break;
|
||||
|
||||
case PRINT_LPRNG:
|
||||
case PRINT_PLP:
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "lpq -P'%p'");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "lprm -P'%p' %j");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "lpr -r -P'%p' %s");
|
||||
lpcfg_string_set(ctx, &pService->queuepause_command, "lpc stop '%p'");
|
||||
lpcfg_string_set(ctx, &pService->queueresume_command, "lpc start '%p'");
|
||||
lpcfg_string_set(ctx, &pService->lppause_command, "lpc hold '%p' %j");
|
||||
lpcfg_string_set(ctx, &pService->lpresume_command, "lpc release '%p' %j");
|
||||
break;
|
||||
|
||||
case PRINT_CUPS:
|
||||
case PRINT_IPRINT:
|
||||
/* set the lpq command to contain the destination printer
|
||||
name only. This is used by cups_queue_get() */
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "%p");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "");
|
||||
lpcfg_string_set(ctx, &pService->lppause_command, "");
|
||||
lpcfg_string_set(ctx, &pService->lpresume_command, "");
|
||||
lpcfg_string_set(ctx, &pService->queuepause_command, "");
|
||||
lpcfg_string_set(ctx, &pService->queueresume_command, "");
|
||||
break;
|
||||
|
||||
case PRINT_SYSV:
|
||||
case PRINT_HPUX:
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "lpstat -o%p");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "cancel %p-%j");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "lp -c -d%p %s; rm %s");
|
||||
lpcfg_string_set(ctx, &pService->queuepause_command, "disable %p");
|
||||
lpcfg_string_set(ctx, &pService->queueresume_command, "enable %p");
|
||||
#ifndef HPUX
|
||||
lpcfg_string_set(ctx, &pService->lppause_command, "lp -i %p-%j -H hold");
|
||||
lpcfg_string_set(ctx, &pService->lpresume_command, "lp -i %p-%j -H resume");
|
||||
#endif /* HPUX */
|
||||
break;
|
||||
|
||||
case PRINT_QNX:
|
||||
lpcfg_string_set(ctx, &pService->lpq_command, "lpq -P%p");
|
||||
lpcfg_string_set(ctx, &pService->lprm_command, "lprm -P%p %j");
|
||||
lpcfg_string_set(ctx, &pService->print_command, "lp -r -P%p %s");
|
||||
break;
|
||||
|
||||
#if defined(DEVELOPER) || defined(ENABLE_SELFTEST)
|
||||
|
||||
case PRINT_TEST:
|
||||
case PRINT_VLP: {
|
||||
const char *tdbfile;
|
||||
TALLOC_CTX *tmp_ctx = talloc_new(ctx);
|
||||
const char *tmp;
|
||||
|
||||
tmp = lpcfg_parm_string(lp_ctx, NULL, "vlp", "tdbfile");
|
||||
if (tmp == NULL) {
|
||||
tmp = "/tmp/vlp.tdb";
|
||||
}
|
||||
|
||||
tdbfile = talloc_asprintf(tmp_ctx, "tdbfile=%s", tmp);
|
||||
if (tdbfile == NULL) {
|
||||
tdbfile="tdbfile=/tmp/vlp.tdb";
|
||||
}
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s print %%p %%s",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->print_command,
|
||||
tmp ? tmp : "vlp print %p %s");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s lpq %%p",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->lpq_command,
|
||||
tmp ? tmp : "vlp lpq %p");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s lprm %%p %%j",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->lprm_command,
|
||||
tmp ? tmp : "vlp lprm %p %j");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s lppause %%p %%j",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->lppause_command,
|
||||
tmp ? tmp : "vlp lppause %p %j");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s lpresume %%p %%j",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->lpresume_command,
|
||||
tmp ? tmp : "vlp lpresume %p %j");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s queuepause %%p",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->queuepause_command,
|
||||
tmp ? tmp : "vlp queuepause %p");
|
||||
|
||||
tmp = talloc_asprintf(tmp_ctx, "vlp %s queueresume %%p",
|
||||
tdbfile);
|
||||
lpcfg_string_set(ctx, &pService->queueresume_command,
|
||||
tmp ? tmp : "vlp queueresume %p");
|
||||
TALLOC_FREE(tmp_ctx);
|
||||
|
||||
break;
|
||||
}
|
||||
#endif /* DEVELOPER */
|
||||
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Function to return the default value for the maximum number of open
|
||||
* file descriptors permitted. This function tries to consult the
|
||||
|
Loading…
Reference in New Issue
Block a user