1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00
Ralph Boehme 8846887a55 s3:printing: Fix %J substition
print_run_command() uses lp_print_command() which internally performs basic
substition by calling talloc_sub_basic(). As a result. any of the variables in
the "basic set", including "%J" are already substituted.

To prevent the unwanted subtitution, we declare all affected configuration
options as const, which disabled the basic substition.

As a result print_run_command() can run manual substitution on all characters,
including %J, in the variadic argument list *before* calling lp_string() to run
basic substition which we had disabled before with the const.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13745

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>

Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Thu Nov  7 16:01:21 UTC 2019 on sn-devel-184
2019-11-07 16:01:21 +00:00

40 lines
1.7 KiB
XML

<samba:parameter name="lpresume command"
context="S"
type="string"
constant="1"
xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
<description>
<para>This parameter specifies the command to be
executed on the server host in order to restart or continue
printing or spooling a specific print job.</para>
<para>This command should be a program or script which takes
a printer name and job number to resume the print job. See
also the <smbconfoption name="lppause command"/> parameter.</para>
<para>If a <parameter moreinfo="none">%p</parameter> is given then the printer name
is put in its place. A <parameter moreinfo="none">%j</parameter> is replaced with
the job number (an integer).</para>
<para>Note that it is good practice to include the absolute path
in the <parameter moreinfo="none">lpresume command</parameter> as the PATH may not
be available to the server.</para>
<para>See also the <smbconfoption name="printing"/> parameter.</para>
<para>Default: Currently no default value is given
to this string, unless the value of the <parameter moreinfo="none">printing</parameter>
parameter is <constant>SYSV</constant>, in which case the default is:</para>
<para><command moreinfo="none">lp -i %p-%j -H resume</command></para>
<para>or if the value of the <parameter moreinfo="none">printing</parameter> parameter
is <constant>SOFTQ</constant>, then the default is:</para>
<para><command moreinfo="none">qstat -s -j%j -r</command></para>
</description>
<value type="default"><comment>determined by printing parameter</comment></value>
<value type="example">/usr/bin/lpalt %p-%j -p2</value>
</samba:parameter>