- Fixed bug #447200 again.

This commit is contained in:
Tim Waugh 2008-07-01 11:34:31 +00:00
parent ac496d0d97
commit fada3a1057
2 changed files with 34 additions and 67 deletions

View File

@ -1,4 +1,3 @@
diff -up cups-1.3.7/cups/cups.h.lspp cups-1.3.7/cups/cups.h
--- cups-1.3.7/cups/cups.h.lspp 2008-02-20 00:32:58.000000000 +0000
+++ cups-1.3.7/cups/cups.h 2008-05-30 16:59:10.000000000 +0100
@@ -15,6 +15,9 @@
@ -24,7 +23,6 @@ diff -up cups-1.3.7/cups/cups.h.lspp cups-1.3.7/cups/cups.h
/*
* Types and structures...
*/
diff -up cups-1.3.7/scheduler/job.c.lspp cups-1.3.7/scheduler/job.c
--- cups-1.3.7/scheduler/job.c.lspp 2008-05-30 16:59:10.000000000 +0100
+++ cups-1.3.7/scheduler/job.c 2008-05-30 17:01:23.000000000 +0100
@@ -60,6 +60,9 @@
@ -383,7 +381,6 @@ diff -up cups-1.3.7/scheduler/job.c.lspp cups-1.3.7/scheduler/job.c
if (Classification && !banner_page)
{
if ((attr = ippFindAttribute(job->attrs, "job-sheets",
diff -up cups-1.3.7/scheduler/printers.c.lspp cups-1.3.7/scheduler/printers.c
--- cups-1.3.7/scheduler/printers.c.lspp 2008-05-30 16:59:10.000000000 +0100
+++ cups-1.3.7/scheduler/printers.c 2008-05-30 16:59:10.000000000 +0100
@@ -51,6 +51,8 @@
@ -465,7 +462,6 @@ diff -up cups-1.3.7/scheduler/printers.c.lspp cups-1.3.7/scheduler/printers.c
}
p->raw = 0;
diff -up cups-1.3.7/scheduler/conf.c.lspp cups-1.3.7/scheduler/conf.c
--- cups-1.3.7/scheduler/conf.c.lspp 2008-05-30 16:59:10.000000000 +0100
+++ cups-1.3.7/scheduler/conf.c 2008-05-30 16:59:10.000000000 +0100
@@ -26,6 +26,7 @@
@ -577,7 +573,6 @@ diff -up cups-1.3.7/scheduler/conf.c.lspp cups-1.3.7/scheduler/conf.c
/*
* End of "$Id: conf.c 7382 2008-03-20 04:06:01Z mike $".
diff -up cups-1.3.7/scheduler/job.h.lspp cups-1.3.7/scheduler/job.h
--- cups-1.3.7/scheduler/job.h.lspp 2008-01-16 22:20:33.000000000 +0000
+++ cups-1.3.7/scheduler/job.h 2008-05-30 16:59:31.000000000 +0100
@@ -13,6 +13,13 @@
@ -605,7 +600,6 @@ diff -up cups-1.3.7/scheduler/job.h.lspp cups-1.3.7/scheduler/job.h
} cupsd_job_t;
diff -up cups-1.3.7/scheduler/main.c.lspp cups-1.3.7/scheduler/main.c
--- cups-1.3.7/scheduler/main.c.lspp 2008-05-30 16:59:10.000000000 +0100
+++ cups-1.3.7/scheduler/main.c 2008-05-30 16:59:10.000000000 +0100
@@ -35,6 +35,8 @@
@ -675,9 +669,8 @@ diff -up cups-1.3.7/scheduler/main.c.lspp cups-1.3.7/scheduler/main.c
return (!stop_scheduler);
}
diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
--- cups-1.3.7/scheduler/ipp.c.lspp 2008-05-30 16:59:10.000000000 +0100
+++ cups-1.3.7/scheduler/ipp.c 2008-05-30 17:01:08.000000000 +0100
--- cups-1.3.7/scheduler/ipp.c 2008-05-30 17:01:08.000000000 +0100
+++ cups-1.3.7/scheduler/ipp.c 2008-07-01 12:30:59.000000000 +0100
@@ -36,6 +36,7 @@
* cancel_all_jobs() - Cancel all print jobs.
* cancel_job() - Cancel a print job.
@ -696,7 +689,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
/*
* Include necessary headers...
*/
@@ -116,6 +120,14 @@ extern int mbr_check_membership_by_id(uu
@@ -116,6 +120,14 @@
# endif /* HAVE_MEMBERSHIPPRIV_H */
#endif /* __APPLE__ */
@ -711,7 +704,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
/*
* Local functions...
@@ -140,6 +152,9 @@ static void authenticate_job(cupsd_clien
@@ -140,6 +152,9 @@
static void cancel_all_jobs(cupsd_client_t *con, ipp_attribute_t *uri);
static void cancel_job(cupsd_client_t *con, ipp_attribute_t *uri);
static void cancel_subscription(cupsd_client_t *con, int id);
@ -721,22 +714,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
static int check_quotas(cupsd_client_t *con, cupsd_printer_t *p);
static ipp_attribute_t *copy_attribute(ipp_t *to, ipp_attribute_t *attr,
int quickcopy);
@@ -774,7 +789,13 @@ cupsdTimeoutJob(cupsd_job_t *job) /* I -
cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Adding end banner page \"%s\".",
job->id, attr->values[1].string.text);
- if ((kbytes = copy_banner(NULL, job, attr->values[1].string.text)) < 0)
+ if ((kbytes = copy_banner(
+#ifdef WITH_LSPP
+ job->scon,
+#else
+ NULL,
+#endif
+ job, attr->values[1].string.text)) < 0)
return (-1);
cupsdUpdateQuota(printer, job->username, 0, kbytes);
@@ -1267,6 +1288,21 @@ add_job(cupsd_client_t *con, /* I - Cl
@@ -1267,6 +1282,21 @@
int kbytes; /* Size of print file */
int i; /* Looping var */
int lowerpagerange; /* Page range bound */
@ -758,7 +736,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))",
@@ -1454,6 +1490,104 @@ add_job(cupsd_client_t *con, /* I - Cl
@@ -1454,6 +1484,104 @@
ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_NAME, "job-name", NULL,
title = "Untitled");
@ -863,7 +841,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
if ((job = cupsdAddJob(priority, printer->name)) == NULL)
{
send_ipp_status(con, IPP_INTERNAL_ERROR,
@@ -1462,6 +1596,32 @@ add_job(cupsd_client_t *con, /* I - Cl
@@ -1462,6 +1590,32 @@
return (NULL);
}
@ -896,7 +874,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
CUPS_PRINTER_REMOTE);
job->attrs = con->request;
@@ -1668,6 +1828,29 @@ add_job(cupsd_client_t *con, /* I - Cl
@@ -1668,6 +1822,29 @@
attr->values[0].string.text = _cupsStrAlloc(printer->job_sheets[0]);
attr->values[1].string.text = _cupsStrAlloc(printer->job_sheets[1]);
}
@ -926,7 +904,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
job->job_sheets = attr;
@@ -1698,6 +1881,9 @@ add_job(cupsd_client_t *con, /* I - Cl
@@ -1698,6 +1875,9 @@
"job-sheets=\"%s,none\", "
"job-originating-user-name=\"%s\"",
job->id, Classification, job->username);
@ -936,7 +914,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
}
else if (attr->num_values == 2 &&
strcmp(attr->values[0].string.text,
@@ -1716,6 +1902,9 @@ add_job(cupsd_client_t *con, /* I - Cl
@@ -1716,6 +1896,9 @@
"job-originating-user-name=\"%s\"",
job->id, attr->values[0].string.text,
attr->values[1].string.text, job->username);
@ -946,7 +924,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
}
else if (strcmp(attr->values[0].string.text, Classification) &&
strcmp(attr->values[0].string.text, "none") &&
@@ -1736,6 +1925,9 @@ add_job(cupsd_client_t *con, /* I - Cl
@@ -1736,6 +1919,9 @@
"job-originating-user-name=\"%s\"",
job->id, attr->values[0].string.text,
attr->values[1].string.text, job->username);
@ -956,7 +934,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
}
}
else if (strcmp(attr->values[0].string.text, Classification) &&
@@ -1776,9 +1968,52 @@ add_job(cupsd_client_t *con, /* I - Cl
@@ -1776,7 +1962,50 @@
"job-sheets=\"%s\", "
"job-originating-user-name=\"%s\"",
job->id, Classification, job->username);
@ -994,22 +972,20 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
+ (attr->num_values > 1) ? attr->values[1].string.text : "(null)");
+ audit_log_user_message(AuditLog, AUDIT_LABEL_OVERRIDE, audit_message,
+ ServerName, NULL, NULL, 0);
+ }
+ cupsdClearString(&audit_message);
}
}
+ cupsdClearString(&audit_message);
+ }
+ }
+
+ if (userheader)
+ free(userheader);
+ if (userfooter)
+ free(userfooter);
+#endif /* WITH_LSPP */
+ }
+
}
/*
* See if we need to add the starting sheet...
*/
@@ -3391,6 +3626,103 @@ cancel_subscription(
@@ -3391,6 +3620,103 @@
}
@ -1113,7 +1089,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
/*
* 'check_quotas()' - Check quotas for a printer and user.
*/
@@ -3912,6 +4244,15 @@ copy_banner(cupsd_client_t *con, /* I -
@@ -3912,6 +4238,15 @@
char attrname[255], /* Name of attribute */
*s; /* Pointer into name */
ipp_attribute_t *attr; /* Attribute */
@ -1129,13 +1105,13 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, "copy_banner(%p[%d], %p[%d], %s)",
@@ -3946,6 +4287,82 @@ copy_banner(cupsd_client_t *con, /* I -
@@ -3946,6 +4281,82 @@
fchmod(cupsFileNumber(out), 0640);
fchown(cupsFileNumber(out), RunUser, Group);
+#ifdef WITH_LSPP
+ if (con != NULL && con->scon != NULL &&
+ strncmp(con->scon, UNKNOWN_SL, strlen(UNKNOWN_SL)) != 0)
+ if (job->scon != NULL &&
+ strncmp(job->scon, UNKNOWN_SL, strlen(UNKNOWN_SL)) != 0)
+ {
+ if (getfilecon(filename, &spoolcon) == -1)
+ {
@ -1146,7 +1122,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
+ return (0);
+ }
+ tmpcon = context_new(spoolcon);
+ jobcon = context_new(con->scon);
+ jobcon = context_new(job->scon);
+ freecon(spoolcon);
+ if (!tmpcon || !jobcon)
+ {
@ -1212,16 +1188,16 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
/*
* Try the localized banner file under the subdirectory...
@@ -4040,6 +4457,24 @@ copy_banner(cupsd_client_t *con, /* I -
@@ -4040,6 +4451,24 @@
else
s = attrname;
+#ifdef WITH_LSPP
+ if (strcmp(s, "mls-label") == 0)
+ {
+ if (con->scon != NULL && strncmp(con->scon, UNKNOWN_SL, strlen(UNKNOWN_SL)) != 0)
+ if (job->scon != NULL && strncmp(job->scon, UNKNOWN_SL, strlen(UNKNOWN_SL)) != 0)
+ {
+ jobcon = context_new(con->scon);
+ jobcon = context_new(job->scon);
+ if (strcasecmp(name, MLS_CONFIG) == 0)
+ mls_label = context_range_get(jobcon);
+ else if (strcasecmp(name, TE_CONFIG) == 0)
@ -1237,7 +1213,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
if (!strcmp(s, "printer-name"))
{
cupsFilePuts(out, job->dest);
@@ -5765,6 +6200,22 @@ get_job_attrs(cupsd_client_t *con, /* I
@@ -5765,6 +6194,22 @@
return;
}
@ -1260,7 +1236,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
/*
* Copy attributes...
*/
@@ -5970,6 +6421,11 @@ get_jobs(cupsd_client_t *con, /* I - C
@@ -5970,6 +6415,11 @@
if (count > 0)
ippAddSeparator(con->response);
@ -1272,7 +1248,7 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
count ++;
cupsdLogMessage(CUPSD_LOG_DEBUG2, "get_jobs: count = %d", count);
@@ -10042,6 +10498,11 @@ validate_user(cupsd_job_t *job, /* I
@@ -10042,6 +10492,11 @@
strlcpy(username, get_username(con), userlen);
@ -1284,7 +1260,6 @@ diff -up cups-1.3.7/scheduler/ipp.c.lspp cups-1.3.7/scheduler/ipp.c
/*
* Check the username against the owner...
*/
diff -up cups-1.3.7/scheduler/conf.h.lspp cups-1.3.7/scheduler/conf.h
--- cups-1.3.7/scheduler/conf.h.lspp 2008-05-30 16:59:10.000000000 +0100
+++ cups-1.3.7/scheduler/conf.h 2008-05-30 16:59:10.000000000 +0100
@@ -193,6 +193,12 @@ VAR char *ServerKey VALUE(NULL);
@ -1310,7 +1285,6 @@ diff -up cups-1.3.7/scheduler/conf.h.lspp cups-1.3.7/scheduler/conf.h
/*
* Prototypes...
diff -up cups-1.3.7/scheduler/client.c.lspp cups-1.3.7/scheduler/client.c
--- cups-1.3.7/scheduler/client.c.lspp 2008-02-12 00:20:32.000000000 +0000
+++ cups-1.3.7/scheduler/client.c 2008-05-30 16:59:10.000000000 +0100
@@ -39,12 +39,14 @@
@ -1532,7 +1506,6 @@ diff -up cups-1.3.7/scheduler/client.c.lspp cups-1.3.7/scheduler/client.c
/*
* 'pipe_command()' - Pipe the output of a command to the remote client.
*/
diff -up cups-1.3.7/scheduler/client.h.lspp cups-1.3.7/scheduler/client.h
--- cups-1.3.7/scheduler/client.h.lspp 2007-10-22 19:52:13.000000000 +0100
+++ cups-1.3.7/scheduler/client.h 2008-05-30 16:59:10.000000000 +0100
@@ -17,6 +17,13 @@
@ -1570,7 +1543,6 @@ diff -up cups-1.3.7/scheduler/client.h.lspp cups-1.3.7/scheduler/client.h
/*
diff -up cups-1.3.7/config.h.in.lspp cups-1.3.7/config.h.in
--- cups-1.3.7/config.h.in.lspp 2008-01-07 18:26:57.000000000 +0000
+++ cups-1.3.7/config.h.in 2008-05-30 16:59:10.000000000 +0100
@@ -530,6 +530,13 @@
@ -1587,7 +1559,6 @@ diff -up cups-1.3.7/config.h.in.lspp cups-1.3.7/config.h.in
#endif /* !_CUPS_CONFIG_H_ */
/*
diff -up cups-1.3.7/Makedefs.in.lspp cups-1.3.7/Makedefs.in
--- cups-1.3.7/Makedefs.in.lspp 2008-01-22 22:37:21.000000000 +0000
+++ cups-1.3.7/Makedefs.in 2008-05-30 16:59:10.000000000 +0100
@@ -134,7 +134,7 @@ LIBCUPSORDER = @LIBCUPSORDER@
@ -1599,7 +1570,6 @@ diff -up cups-1.3.7/Makedefs.in.lspp cups-1.3.7/Makedefs.in
OPTIM = @OPTIM@
OPTIONS =
PAMLIBS = @PAMLIBS@
diff -up cups-1.3.7/configure.in.lspp cups-1.3.7/configure.in
--- cups-1.3.7/configure.in.lspp 2007-07-25 00:47:12.000000000 +0100
+++ cups-1.3.7/configure.in 2008-05-30 16:59:10.000000000 +0100
@@ -42,6 +42,8 @@ sinclude(config-scripts/cups-pap.m4)
@ -1611,7 +1581,6 @@ diff -up cups-1.3.7/configure.in.lspp cups-1.3.7/configure.in
INSTALL_LANGUAGES=""
UNINSTALL_LANGUAGES=""
LANGFILES=""
diff -up /dev/null cups-1.3.7/config-scripts/cups-lspp.m4
--- /dev/null 2008-05-30 08:00:32.690000973 +0100
+++ cups-1.3.7/config-scripts/cups-lspp.m4 2008-05-30 16:59:10.000000000 +0100
@@ -0,0 +1,36 @@
@ -1651,7 +1620,6 @@ diff -up /dev/null cups-1.3.7/config-scripts/cups-lspp.m4
+ ;;
+ esac
+fi
diff -up cups-1.3.7/filter/common.c.lspp cups-1.3.7/filter/common.c
--- cups-1.3.7/filter/common.c.lspp 2007-07-11 22:46:42.000000000 +0100
+++ cups-1.3.7/filter/common.c 2008-05-30 16:59:10.000000000 +0100
@@ -30,6 +30,12 @@
@ -1822,7 +1790,6 @@ diff -up cups-1.3.7/filter/common.c.lspp cups-1.3.7/filter/common.c
/*
diff -up cups-1.3.7/data/Makefile.lspp cups-1.3.7/data/Makefile
--- cups-1.3.7/data/Makefile.lspp 2007-10-10 23:00:43.000000000 +0100
+++ cups-1.3.7/data/Makefile 2008-05-30 16:59:10.000000000 +0100
@@ -25,7 +25,10 @@ BANNERS = \
@ -1837,7 +1804,6 @@ diff -up cups-1.3.7/data/Makefile.lspp cups-1.3.7/data/Makefile
CHARMAPS = \
euc-cn.txt \
diff -up /dev/null cups-1.3.7/data/te
--- /dev/null 2008-05-30 08:00:32.690000973 +0100
+++ cups-1.3.7/data/te 2008-05-30 16:59:10.000000000 +0100
@@ -0,0 +1,261 @@
@ -2102,7 +2068,6 @@ diff -up /dev/null cups-1.3.7/data/te
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
+%
+%%EOF
diff -up /dev/null cups-1.3.7/data/selinux
--- /dev/null 2008-05-30 08:00:32.690000973 +0100
+++ cups-1.3.7/data/selinux 2008-05-30 16:59:10.000000000 +0100
@@ -0,0 +1,261 @@
@ -2367,7 +2332,6 @@ diff -up /dev/null cups-1.3.7/data/selinux
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
+%
+%%EOF
diff -up /dev/null cups-1.3.7/data/mls
--- /dev/null 2008-05-30 08:00:32.690000973 +0100
+++ cups-1.3.7/data/mls 2008-05-30 16:59:10.000000000 +0100
@@ -0,0 +1,261 @@

View File

@ -7,7 +7,7 @@
Summary: Common Unix Printing System
Name: cups
Version: 1.3.7
Release: 11%{?svn:.svn%{svn}}%{?dist}
Release: 12%{?svn:.svn%{svn}}%{?dist}
License: GPLv2
Group: System Environment/Daemons
Source: ftp://ftp.easysw.com/pub/cups/test//cups-%{version}%{?svn:svn-r%{svn}}-source.tar.bz2
@ -448,6 +448,9 @@ rm -rf $RPM_BUILD_ROOT
%{cups_serverbin}/daemon/cups-lpd
%changelog
* Tue Jul 1 2008 Tim Waugh <twaugh@redhat.com> 1:1.3.7-12
- Fixed bug #447200 again.
* Tue Jul 1 2008 Tim Waugh <twaugh@redhat.com> 1:1.3.7-11
- Use portreserve.