size_t urisize);
static int set_printer_options(http_t *http, char *printer,
int num_options, cups_option_t *options,
- char *file);
+ char *file, int enable);
static int validate_name(const char *name);
*pclass, /* Printer class name */
*opt, /* Option pointer */
*val; /* Pointer to allow/deny value */
+ int enable = 0; /* Enable/resume printer? */
int num_options; /* Number of options */
cups_option_t *options; /* Options */
char *file, /* New PPD file */
}
}
- if (enable_printer(http, printer))
- return (1);
+ enable = 1;
break;
case 'm' : /* Use the specified standard script/PPD file */
}
}
- if (set_printer_options(http, printer, num_options, options, file))
+ if (set_printer_options(http, printer, num_options, options, file, enable))
return (1);
}
+ else if (enable && enable_printer(http, printer))
+ return (1);
if (evefile[0])
unlink(evefile);
char *printer, /* I - Printer */
int num_options, /* I - Number of options */
cups_option_t *options, /* I - Options */
- char *file) /* I - PPD file/interface script */
+ char *file, /* I - PPD file */
+ int enable) /* I - Enable printer? */
{
ipp_t *request; /* IPP Request */
const char *ppdfile; /* PPD filename */
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser());
+ if (enable)
+ {
+ ippAddInteger(request, IPP_TAG_PRINTER, IPP_TAG_ENUM, "printer-state", IPP_PSTATE_IDLE);
+ ippAddBoolean(request, IPP_TAG_PRINTER, "printer-is-accepting-jobs", 1);
+ }
+
/*
* Add the options...
*/
#
# Test the lpadmin command.
#
-# Copyright © 2007-2013 by Apple Inc.
+# Copyright © 2007-2018 by Apple Inc.
# Copyright © 1997-2005 by Easy Software Products, all rights reserved.
#
# Licensed under Apache License v2.0. See the file "LICENSE" for more
echo "Add Shared Printer Test"
echo ""
-echo " lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m raw"
-$VALGRIND ../systemv/lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m raw 2>&1
+echo " lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m everywhere"
+$VALGRIND ../systemv/lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m everywhere 2>&1
if test $? != 0; then
echo " FAILED"
exit 1
case "$testtype" in
0)
echo "Running in test mode (0)"
- nprinters1=0
- nprinters2=0
+ nprinters=0
pjobs=0
pprinters=0
loglevel="debug2"
;;
2)
echo "Running the medium tests (2)"
- nprinters1=10
- nprinters2=20
+ nprinters=20
pjobs=20
pprinters=10
loglevel="debug"
;;
3)
echo "Running the extreme tests (3)"
- nprinters1=500
- nprinters2=1000
+ nprinters=1000
pjobs=100
pprinters=50
loglevel="debug"
;;
4)
echo "Running the torture tests (4)"
- nprinters1=10000
- nprinters2=20000
+ nprinters=20000
pjobs=200
pprinters=100
loglevel="debug"
;;
*)
echo "Running the timid tests (1)"
- nprinters1=0
- nprinters2=0
+ nprinters=0
pjobs=10
pprinters=0
loglevel="debug2"
fi
#
-# Setup lots of test queues - half with PPD files, half without...
+# Setup lots of test queues with PPD files...
#
echo "Creating printers.conf for test..."
i=1
-while test $i -le $nprinters1; do
+while test $i -le $nprinters; do
cat >>$BASE/printers.conf <<EOF
<Printer test-$i>
Accepting Yes
i=`expr $i + 1`
done
-while test $i -le $nprinters2; do
- cat >>$BASE/printers.conf <<EOF
-<Printer test-$i>
-Accepting Yes
-DeviceURI file:/dev/null
-Info Test raw printer $i
-JobSheets none none
-Location CUPS test suite
-State Idle
-StateMessage Printer $1 is idle.
-</Printer>
-EOF
-
- i=`expr $i + 1`
-done
-
if test -f $BASE/printers.conf; then
cp $BASE/printers.conf $BASE/printers.conf.orig
else
# Requests logged
count=`wc -l $BASE/log/access_log | awk '{print $1}'`
-expected=`expr 37 + 18 + 30 + $pjobs \* 8 + $pprinters \* $pjobs \* 4`
+expected=`expr 35 + 18 + 30 + $pjobs \* 8 + $pprinters \* $pjobs \* 4`
if test $count != $expected; then
echo "FAIL: $count requests logged, expected $expected."
echo " <p>FAIL: $count requests logged, expected $expected.</p>" >>$strfile