diff options
36 files changed, 118 insertions, 567 deletions
diff --git a/CHANGES-1.6.txt b/CHANGES-1.6.txt index 369d96694..b7b72b8c1 100644 --- a/CHANGES-1.6.txt +++ b/CHANGES-1.6.txt @@ -4,8 +4,14 @@ CHANGES-1.6.txt CHANGES IN CUPS V1.6.2 - Documentation fixes - - OpenBSD build fix (STR #4195, STR #4196) - - The scheduler could crash when using Avahi (STR #4183, STR #4192) + - The SNMP backend now tries to work around broken printers that use a + newline to separate key/value pairs. + - The IPP backend did not send a cancel request to printers when a job + was canceled and the printer did not support Create-Job. + - Fixed EPM packaging files (STR #4199) + - OpenBSD build fix (STR #4195, STR #4196, STR #4197) + - The scheduler could crash when using Avahi (STR #4183, STR #4192, + STR #4200) - The IPP backend could get stuck in an endless loop on certain network errors (STR #4194) - 32-bit builds failed on Debian (STR #4133) diff --git a/CHANGES.txt b/CHANGES.txt index c60449303..637f4357a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,7 +1,11 @@ -CHANGES.txt - 1.7b1 - 2012-08-30 +CHANGES.txt - 1.7b1 - 2012-09-30 -------------------------------- CHANGES IN CUPS V1.7b1 - CUPS now supports higher-level PIN printing, external accounting systems, and "print here" printing environments (STR #4169) + - IRIX is no longer a supported operating system (STR #4092) + - The PPD compiler now supports JCL options properly (STR #4115) + - The web interface now checks whether the web browser has cookies + enabled and displays a suitable error message (STR #4141) @@ -316,7 +316,6 @@ dist: all case `uname` in \ *BSD*) $(MAKE) $(MFLAGS) bsd;; \ Darwin*) $(MAKE) $(MFLAGS) osx;; \ - IRIX*) $(MAKE) $(MFLAGS) tardist;; \ Linux*) test ! -x /usr/bin/rpm || $(MAKE) $(MFLAGS) rpm;; \ SunOS*) $(MAKE) $(MFLAGS) pkg;; \ esac diff --git a/backend/ipp.c b/backend/ipp.c index 8215b8ffd..7f8a17e1b 100644 --- a/backend/ipp.c +++ b/backend/ipp.c @@ -89,6 +89,7 @@ static int child_pid = 0; /* Child process ID */ #endif /* HAVE_GSSAPI && HAVE_XPC */ static const char * const jattrs[] = /* Job attributes we want */ { + "job-id", "job-impressions-completed", "job-media-sheets-completed", "job-name", diff --git a/backend/snmp.c b/backend/snmp.c index 57d2d07aa..cffc7aaf6 100644 --- a/backend/snmp.c +++ b/backend/snmp.c @@ -1025,6 +1025,11 @@ read_snmp_response(int fd) /* I - SNMP socket file descriptor */ * Description is the IEEE-1284 device ID... */ + char *ptr; /* Pointer into device ID */ + + for (ptr = (char *)packet.object_value.string.bytes; *ptr; ptr ++) + if (*ptr == '\n') + *ptr = ';'; /* A lot of bad printers put a newline */ if (!device->id) device->id = strdup((char *)packet.object_value.string.bytes); @@ -1066,8 +1071,11 @@ read_snmp_response(int fd) /* I - SNMP socket file descriptor */ */ char make_model[256]; /* Make and model */ + char *ptr; /* Pointer into device ID */ - + for (ptr = (char *)packet.object_value.string.bytes; *ptr; ptr ++) + if (*ptr == '\n') + *ptr = ';'; /* A lot of bad printers put a newline */ if (device->id) free(device->id); diff --git a/backend/usb-unix.c b/backend/usb-unix.c index b06825f78..67c7f654f 100644 --- a/backend/usb-unix.c +++ b/backend/usb-unix.c @@ -257,7 +257,6 @@ list_devices(void) close(fd); } -#elif defined(__sgi) #elif defined(__sun) && defined(ECPPIOC_GETDEVID) int i; /* Looping var */ int fd; /* File descriptor */ diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4 index 4286895cc..4452d7a0d 100644 --- a/config-scripts/cups-compiler.m4 +++ b/config-scripts/cups-compiler.m4 @@ -202,19 +202,6 @@ else OPTIM="+z $OPTIM" fi ;; - IRIX) - if test -z "$OPTIM"; then - if test "x$with_optim" = x; then - OPTIM="-O2" - else - OPTIM="$with_optim $OPTIM" - fi - fi - - if test "x$with_optim" = x; then - OPTIM="-fullwarn -woff 1183,1209,1349,1506,3201 $OPTIM" - fi - ;; OSF*) # Tru64 UNIX aka Digital UNIX aka OSF/1 if test -z "$OPTIM"; then diff --git a/config-scripts/cups-directories.m4 b/config-scripts/cups-directories.m4 index fe6e01e19..e6ab4e97b 100644 --- a/config-scripts/cups-directories.m4 +++ b/config-scripts/cups-directories.m4 @@ -102,9 +102,6 @@ fi dnl Fix "libdir" variable... if test "$libdir" = "\${exec_prefix}/lib"; then case "$uname" in - IRIX*) - libdir="$exec_prefix/lib32" - ;; Linux*) if test -d /usr/lib64 -a ! -d /usr/lib64/fakeroot; then libdir="$exec_prefix/lib64" @@ -169,13 +166,6 @@ if test x$rcdir = x; then RCSTOP="620" ;; - IRIX*) - # IRIX - INITDIR="/etc" - RCSTART="60" - RCSTOP="25" - ;; - Linux | GNU | GNU/k*BSD*) # Linux/HURD seems to choose an init.d directory at random... if test -d /sbin/init.d; then diff --git a/config-scripts/cups-manpages.m4 b/config-scripts/cups-manpages.m4 index 7420433c5..16246838c 100644 --- a/config-scripts/cups-manpages.m4 +++ b/config-scripts/cups-manpages.m4 @@ -28,12 +28,6 @@ if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/"; then AMANDIR="/usr/share/man" PMANDIR="/usr/share/man" ;; - IRIX) - # SGI IRIX - mandir="/usr/share/catman/u_man" - AMANDIR="/usr/share/catman/a_man" - PMANDIR="/usr/share/catman/p_man" - ;; *) # All others mandir="/usr/man" @@ -51,14 +45,6 @@ AC_SUBST(PMANDIR) dnl Setup manpage extensions... case "$uname" in - IRIX*) - # SGI IRIX - MAN1EXT=1 - MAN5EXT=5 - MAN7EXT=7 - MAN8EXT=1m - MAN8DIR=1 - ;; SunOS* | HP-UX*) # Solaris and HP-UX MAN1EXT=1 diff --git a/config-scripts/cups-opsys.m4 b/config-scripts/cups-opsys.m4 index 5b38975b5..ed4dbbc5e 100644 --- a/config-scripts/cups-opsys.m4 +++ b/config-scripts/cups-opsys.m4 @@ -3,7 +3,7 @@ dnl "$Id: cups-opsys.m4 6649 2007-07-11 21:46:42Z mike $" dnl dnl Operating system stuff for CUPS. dnl -dnl Copyright 2007-2011 by Apple Inc. +dnl Copyright 2007-2012 by Apple Inc. dnl Copyright 1997-2006 by Easy Software Products, all rights reserved. dnl dnl These coded instructions, statements, and computer programs are the @@ -22,9 +22,6 @@ case "$uname" in GNU* | GNU/*) uname="GNU" ;; - IRIX*) - uname="IRIX" - ;; Linux*) uname="Linux" ;; diff --git a/config-scripts/cups-sharedlibs.m4 b/config-scripts/cups-sharedlibs.m4 index 13dde4beb..ef2c71424 100644 --- a/config-scripts/cups-sharedlibs.m4 +++ b/config-scripts/cups-sharedlibs.m4 @@ -215,8 +215,8 @@ if test "$DSO" != ":"; then EXPORT_LDFLAGS="-Wl,-R$libdir" fi ;; - IRIX | Linux | GNU) - # IRIX, Linux, and HURD... + Linux | GNU) + # Linux, and HURD... if test $exec_prefix != /usr; then DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS" LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir" diff --git a/cups/http-addr.c b/cups/http-addr.c index 4b09d8eac..d80bb8d01 100644 --- a/cups/http-addr.c +++ b/cups/http-addr.c @@ -162,13 +162,6 @@ httpAddrLocalhost( } -#ifdef __sgi -# define ADDR_CAST (struct sockaddr *) -#else -# define ADDR_CAST (char *) -#endif /* __sgi */ - - /* * 'httpAddrLookup()' - Lookup the hostname associated with the address. * @@ -267,11 +260,11 @@ httpAddrLookup( # ifdef AF_INET6 if (addr->addr.sa_family == AF_INET6) - host = gethostbyaddr(ADDR_CAST &(addr->ipv6.sin6_addr), + host = gethostbyaddr((char *)&(addr->ipv6.sin6_addr), sizeof(struct in_addr), AF_INET6); else # endif /* AF_INET6 */ - host = gethostbyaddr(ADDR_CAST &(addr->ipv4.sin_addr), + host = gethostbyaddr((char *)&(addr->ipv4.sin_addr), sizeof(struct in_addr), AF_INET); if (host == NULL) diff --git a/cups/http-private.h b/cups/http-private.h index 3cfeff7f6..5e21c472d 100644 --- a/cups/http-private.h +++ b/cups/http-private.h @@ -73,14 +73,14 @@ # include <Security/Authorization.h> # endif /* HAVE_AUTHORIZATION_H */ -# if defined(__sgi) || (defined(__APPLE__) && !defined(_SOCKLEN_T)) +# if defined(__APPLE__) && !defined(_SOCKLEN_T) /* - * IRIX and MacOS X 10.2.x do not define socklen_t, and in fact use an int instead of + * MacOS X 10.2.x does not define socklen_t, and in fact uses an int instead of * unsigned type for length values... */ typedef int socklen_t; -# endif /* __sgi || (__APPLE__ && !_SOCKLEN_T) */ +# endif /* __APPLE__ && !_SOCKLEN_T */ # include <cups/http.h> # include "md5-private.h" diff --git a/cups/http.h b/cups/http.h index f6ef45b99..3aefd53b3 100644 --- a/cups/http.h +++ b/cups/http.h @@ -36,9 +36,6 @@ typedef off_t ssize_t; /* @private@ */ # include <winsock2.h> # include <ws2tcpip.h> # else -# ifdef __sgi -# define INET6 /* IRIX IPv6 support... */ -# endif /* __sgi */ # include <unistd.h> # include <sys/time.h> # include <sys/socket.h> diff --git a/doc/help/network.html b/doc/help/network.html index ebe1b5f94..ef9fbefbe 100644 --- a/doc/help/network.html +++ b/doc/help/network.html @@ -38,13 +38,7 @@ host <I>hostname</I> { <H3><A NAME="BOOTP">Configuring the IP Address Using BOOTP</A></H3> -<P>The BOOTP protocol is used when you need to provide additional information such as the location of a configuration file to the network interface. Using the standard <TT>bootpd(8)</TT> program supplied with UNIX you simply need to add a line to the <VAR>/etc/bootptab</VAR> file; for IRIX:</P> - -<PRE CLASS="command"> -myprinter 08:00:69:00:12:34 192.0.2.2 <VAR>myprinter.boot</VAR> -</PRE> - -<P>Newer versions of <TT>bootpd</TT> use a different format:</P> +<P>The BOOTP protocol is used when you need to provide additional information such as the location of a configuration file to the network interface. Using the standard <TT>bootpd(8)</TT> program supplied with UNIX you simply need to add a line to the <VAR>/etc/bootptab</VAR> file:</P> <PRE CLASS="command"> myprinter:ha=080069001234:ip=192.0.2.2:<VAR>t144=myprinter.boot</VAR> diff --git a/doc/help/ref-cupsd-conf.html.in b/doc/help/ref-cupsd-conf.html.in index 8454cf78d..93b0188a6 100644 --- a/doc/help/ref-cupsd-conf.html.in +++ b/doc/help/ref-cupsd-conf.html.in @@ -21,7 +21,7 @@ process using the startup script for your operating system:</P> <UL> - <LI>AIX, IRIX, Linux, Solaris: + <LI>AIX, Linux, Solaris: <PRE CLASS="command"> /etc/init.d/cups restart </PRE></LI> @@ -2139,22 +2139,6 @@ printcap file. The default is to generate the plist format on OS X, the Solaris format on Solaris, and the BSD format on other operating systems.</P> -<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.1.13</SPAN><A NAME="PrintcapGUI">PrintcapGUI</A></H2> - -<H3>Examples</H3> - -<PRE CLASS="command"> -PrintGUI /usr/bin/glpoptions -</PRE> - -<H3>Description</H3> - -<P>The <CODE>PrintcapGUI</CODE> directive sets the program to -associate with the IRIX printer GUI interface script which is -used by IRIX applications to display printer-specific options. -There is no default program.</P> - - <H2 CLASS="title"><SPAN CLASS="info">CUPS 1.1.21</SPAN><A NAME="ReloadTimeout">ReloadTimeout</A></H2> <H3>Examples</H3> diff --git a/doc/help/spec-cmp.html b/doc/help/spec-cmp.html index 2c66e3202..def4599f8 100644 --- a/doc/help/spec-cmp.html +++ b/doc/help/spec-cmp.html @@ -245,10 +245,6 @@ rpmbuild -ta cups-<I>version</I>-source.tar.gz <TD>Portable tarball with install script</TD> </TR> <TR> - <TD>inst</TD> - <TD>IRIX inst/tardist</TD> -</TR> -<TR> <TD>pkg</TD> <TD>Solaris pkgadd</TD> </TR> @@ -268,10 +264,6 @@ rpmbuild -ta cups-<I>version</I>-source.tar.gz <TD>swinstall</TD> <TD>HP-UX swinstall</TD> </TR> -<TR> - <TD>tardist</TD> - <TD>IRIX inst/tardist</TD> -</TR> </TABLE></DIV> <P>Finally, the <VAR>tools/testrpm</VAR> and <VAR>tools/testosx</VAR> scripts can be used to create binary packages from the current working copy for testing on Linux and OS X, respectively:</P> diff --git a/filter/rastertolabel.c b/filter/rastertolabel.c index 4c0860ccc..6420c60b8 100644 --- a/filter/rastertolabel.c +++ b/filter/rastertolabel.c @@ -777,17 +777,6 @@ OutputLine(ppd_file_t *ppd, /* I - PPD file */ putchar(0x16); fwrite(Buffer, header->cupsBytesPerLine, 1, stdout); fflush(stdout); - -#ifdef __sgi - /* - * This hack works around a bug in the IRIX serial port driver when - * run at high baud rates (e.g. 115200 baud)... This results in - * slightly slower label printing, but at least the labels come - * out properly. - */ - - sginap(1); -#endif /* __sgi */ } else Feed ++; diff --git a/packaging/cups.list.in b/packaging/cups.list.in index 6dedcaf5b..e915037e0 100644 --- a/packaging/cups.list.in +++ b/packaging/cups.list.in @@ -293,7 +293,6 @@ f 0555 root sys $SERVERBIN/cgi-bin/printers.cgi cgi-bin/printers.cgi d 0755 root sys $SERVERBIN/daemon - f 0555 root sys $SERVERBIN/daemon/cups-deviced scheduler/cups-deviced f 0555 root sys $SERVERBIN/daemon/cups-driverd scheduler/cups-driverd -f 0555 root sys $SERVERBIN/daemon/cups-polld scheduler/cups-polld d 0755 root sys $SERVERBIN/driver - d 0755 root sys $SERVERBIN/filter - f 0555 root sys $SERVERBIN/filter/commandtops filter/commandtops @@ -366,8 +365,6 @@ f 0555 root sys $LIBDIR/libcups.sl.2 cups/libcups.sl.2 nostrip() l 0755 root sys $LIBDIR/libcups.sl libcups.sl.2 f 0555 root sys $LIBDIR/libcupscgi.sl.1 cgi-bin/libcupscgi.sl.1 nostrip() l 0755 root sys $LIBDIR/libcupscgi.sl libcupscgi.sl.1 -f 0555 root sys $LIBDIR/libcupsdriver.sl.1 driver/libcupsdriver.sl.1 nostrip() -l 0755 root sys $LIBDIR/libcupsdriver.sl libcupsdriver.sl.1 f 0555 root sys $LIBDIR/libcupsimage.sl.2 filter/libcupsimage.sl.2 nostrip() l 0755 root sys $LIBDIR/libcupsimage.sl libcupsimage.sl.2 f 0555 root sys $LIBDIR/libcupsmime.sl.1 scheduler/libcupsmime.sl.1 nostrip() @@ -377,7 +374,6 @@ l 0755 root sys $LIBDIR/libcupsppdc.sl libcupsppdc.sl.1 %system aix f 0555 root sys $LIBDIR/libcups_s.a cups/libcups_s.a nostrip() f 0555 root sys $LIBDIR/libcupscgi_s.a cgi-bin/libcupscgi_s.a nostrip() -f 0555 root sys $LIBDIR/libcupsdriver_s.a driver/libcupsdriver_s.a nostrip() f 0555 root sys $LIBDIR/libcupsimage_s.a filter/libcupsimage_s.a nostrip() f 0555 root sys $LIBDIR/libcupsmime_s.a scheduler/libcupsmime_s.a nostrip() f 0555 root sys $LIBDIR/libcupsppdc_s.a ppdc/libcupsppdc_s.a nostrip() @@ -386,8 +382,6 @@ f 0555 root sys $LIBDIR/libcups.2.dylib cups/libcups.2.dylib nostrip() l 0755 root sys $LIBDIR/libcups.dylib libcups.2.dylib f 0555 root sys $LIBDIR/libcupscgi.1.dylib cgi-bin/libcupscgi.1.dylib nostrip() l 0755 root sys $LIBDIR/libcupscgi.dylib libcupscgi.1.dylib -f 0555 root sys $LIBDIR/libcupsdriver.1.dylib driver/libcupsdriver.1.dylib nostrip() -l 0755 root sys $LIBDIR/libcupsdriver.dylib libcupsdriver.1.dylib f 0555 root sys $LIBDIR/libcupsimage.2.dylib filter/libcupsimage.2.dylib nostrip() l 0755 root sys $LIBDIR/libcupsimage.dylib libcupsimage.2.dylib f 0555 root sys $LIBDIR/libcupsmime.1.dylib scheduler/libcupsmime.1.dylib nostrip() @@ -399,8 +393,6 @@ f 0555 root sys $LIBDIR/libcups.so.2 cups/libcups.so.2 nostrip() l 0755 root sys $LIBDIR/libcups.so libcups.so.2 f 0555 root sys $LIBDIR/libcupscgi.so.1 cgi-bin/libcupscgi.so.1 nostrip() l 0755 root sys $LIBDIR/libcupscgi.so libcupscgi.so.1 -f 0555 root sys $LIBDIR/libcupsdriver.so.1 driver/libcupsdriver.so.1 nostrip() -l 0755 root sys $LIBDIR/libcupsdriver.so libcupsdriver.so.1 f 0555 root sys $LIBDIR/libcupsimage.so.2 filter/libcupsimage.so.2 nostrip() l 0755 root sys $LIBDIR/libcupsimage.so libcupsimage.so.2 f 0555 root sys $LIBDIR/libcupsmime.so.1 scheduler/libcupsmime.so.1 nostrip() @@ -418,7 +410,9 @@ d 1770 root $CUPS_GROUP $REQUESTS/tmp - d 0775 root $CUPS_GROUP $CACHEDIR - d 0775 root $CUPS_GROUP $CACHEDIR/rss - #d 0755 root $CUPS_GROUP $CACHEDIR/ppd - +%system !darwin d 0755 root $CUPS_GROUP $STATEDIR - +%system all d 0511 root $CUPS_PRIMARY_SYSTEM_GROUP $STATEDIR/certs - # Data files @@ -530,7 +524,7 @@ f 0444 root sys $DATADIR/templates templates/*.tmpl #f 0444 root sys $DATADIR/templates/zh_TW templates/zh_TW/*.tmpl # Config files -d 0755 root sys $SERVERROOT - +d 0755 root $CUPS_GROUP $SERVERROOT - d 0755 root $CUPS_GROUP $SERVERROOT/interfaces - d 0755 root $CUPS_GROUP $SERVERROOT/ppd - d 0700 root $CUPS_GROUP $SERVERROOT/ssl - diff --git a/ppdc/ppdc-driver.cxx b/ppdc/ppdc-driver.cxx index c9a7a1c96..6459a33a6 100644 --- a/ppdc/ppdc-driver.cxx +++ b/ppdc/ppdc-driver.cxx @@ -1025,7 +1025,16 @@ ppdcDriver::write_ppd_file( if (!o->choices->count) continue; - if (!o->text->value) + if (o->section == PPDC_SECTION_JCL) + { + if (!o->text->value) + cupsFilePrintf(fp, "*JCLOpenUI *%s/%s: ", o->name->value, + catalog->find_message(o->name->value)); + else + cupsFilePrintf(fp, "*JCLOpenUI *%s/%s: ", o->name->value, + catalog->find_message(o->text->value)); + } + else if (!o->text->value) cupsFilePrintf(fp, "*OpenUI *%s/%s: ", o->name->value, catalog->find_message(o->name->value)); else diff --git a/scheduler/conf.c b/scheduler/conf.c index b750db389..9b48da503 100644 --- a/scheduler/conf.c +++ b/scheduler/conf.c @@ -151,7 +151,6 @@ static const cupsd_var_t variables[] = { "PreserveJobFiles", &JobFiles, CUPSD_VARTYPE_TIME }, { "PreserveJobHistory", &JobHistory, CUPSD_VARTYPE_TIME }, { "Printcap", &Printcap, CUPSD_VARTYPE_STRING }, - { "PrintcapGUI", &PrintcapGUI, CUPSD_VARTYPE_STRING }, { "ReloadTimeout", &ReloadTimeout, CUPSD_VARTYPE_TIME }, { "RemoteRoot", &RemoteRoot, CUPSD_VARTYPE_STRING }, { "RequestRoot", &RequestRoot, CUPSD_VARTYPE_STRING }, @@ -580,7 +579,6 @@ cupsdReadConfiguration(void) "%p %u %j %T %P %C %{job-billing} " "%{job-originating-host-name} %{job-name} %{media} %{sides}"); cupsdSetString(&Printcap, CUPS_DEFAULT_PRINTCAP); - cupsdSetString(&PrintcapGUI, "/usr/bin/glpoptions"); cupsdSetString(&FontPath, CUPS_FONTPATH); cupsdSetString(&RemoteRoot, "remroot"); cupsdSetStringf(&ServerHeader, "CUPS/%d.%d", CUPS_VERSION_MAJOR, diff --git a/scheduler/conf.h b/scheduler/conf.h index 741855ae3..434300774 100644 --- a/scheduler/conf.h +++ b/scheduler/conf.h @@ -147,8 +147,6 @@ VAR char *AccessLog VALUE(NULL), /* Temporary directory */ *Printcap VALUE(NULL), /* Printcap file */ - *PrintcapGUI VALUE(NULL), - /* GUI program to use for IRIX */ *FontPath VALUE(NULL), /* Font search path */ *RemoteRoot VALUE(NULL), diff --git a/scheduler/cups.sh.in b/scheduler/cups.sh.in index e67762043..08aa883d1 100644 --- a/scheduler/cups.sh.in +++ b/scheduler/cups.sh.in @@ -4,7 +4,7 @@ # # Startup/shutdown script for CUPS. # -# Copyright 2007-2011 by Apple Inc. +# Copyright 2007-2012 by Apple Inc. # Copyright 1997-2007 by Easy Software Products, all rights reserved. # # These coded instructions, statements, and computer programs are the @@ -35,18 +35,6 @@ #### OS-Dependent Configuration case "`uname`" in - IRIX*) - IS_ON=/sbin/chkconfig - - if $IS_ON verbose; then - ECHO=echo - else - ECHO=: - fi - ECHO_OK=: - ECHO_ERROR=: - ;; - *BSD*) IS_ON=: ECHO=echo @@ -147,7 +135,7 @@ case "`uname`" in HP-UX* | AIX* | SINIX*) pid=`ps -e | awk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}'` ;; - IRIX* | SunOS*) + SunOS*) pid=`ps -e | nawk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}'` ;; UnixWare*) diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c index 0e5e3e695..6dfdb1361 100644 --- a/scheduler/dirsvc.c +++ b/scheduler/dirsvc.c @@ -459,6 +459,7 @@ cupsdUpdateDNSSDName(void) else # endif /* __APPLE__ */ # ifdef HAVE_AVAHI + if (DNSSDClient) { const char *host_name = avahi_client_get_host_name(DNSSDClient); const char *host_fqdn = avahi_client_get_host_name_fqdn(DNSSDClient); @@ -472,7 +473,8 @@ cupsdUpdateDNSSDName(void) else cupsdSetStringf(&DNSSDHostName, "%s.local", ServerName); } -# else /* HAVE_DNSSD */ + else +# endif /* HAVE_AVAHI */ { cupsdSetString(&DNSSDComputerName, ServerName); @@ -481,7 +483,6 @@ cupsdUpdateDNSSDName(void) else cupsdSetStringf(&DNSSDHostName, "%s.local", ServerName); } -# endif /* HAVE_AVAHI */ /* * Then (re)register the web interface if enabled... diff --git a/scheduler/main.c b/scheduler/main.c index afb6e2e62..07b0c1534 100644 --- a/scheduler/main.c +++ b/scheduler/main.c @@ -65,10 +65,15 @@ #if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO) # include <malloc.h> #endif /* HAVE_MALLOC_H && HAVE_MALLINFO */ + #ifdef HAVE_NOTIFY_H # include <notify.h> #endif /* HAVE_NOTIFY_H */ +#ifdef HAVE_SYS_PARAM_H +# include <sys/param.h> +#endif /* HAVE_SYS_PARAM_H */ + /* * Local functions... @@ -129,10 +134,6 @@ main(int argc, /* I - Number of command-line args */ #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET) struct sigaction action; /* Actions for POSIX signals */ #endif /* HAVE_SIGACTION && !HAVE_SIGSET */ -#ifdef __sgi - cups_file_t *fp; /* Fake lpsched lock file */ - struct stat statbuf; /* Needed for checking lpsched FIFO */ -#endif /* __sgi */ int run_as_child = 0; /* Needed for background fork/exec */ #ifdef __APPLE__ @@ -365,15 +366,15 @@ main(int argc, /* I - Number of command-line args */ } } -#ifdef __OpenBSD__ +#if defined(__OpenBSD__) && OpenBSD < 201211 /* * Call _thread_sys_closefrom() so the child process doesn't reset the * parent's file descriptors to be blocking. This is a workaround for a - * limitation of userland libpthread on OpenBSD. + * limitation of userland libpthread on older versions of OpenBSD. */ _thread_sys_closefrom(0); -#endif /* __OpenBSD__ */ +#endif /* __OpenBSD__ && OpenBSD < 201211 */ /* * Since CoreFoundation and DBUS both create fork-unsafe data on execution of @@ -565,28 +566,6 @@ main(int argc, /* I - Number of command-line args */ signal(SIGTERM, sigterm_handler); #endif /* HAVE_SIGSET */ -#ifdef __sgi - /* - * Try to create a fake lpsched lock file if one is not already there. - * Some Adobe applications need it under IRIX in order to enable - * printing... - */ - - if ((fp = cupsFileOpen("/var/spool/lp/SCHEDLOCK", "w")) == NULL) - { - syslog(LOG_LPR, "Unable to create fake lpsched lock file " - "\"/var/spool/lp/SCHEDLOCK\"\' - %s!", - strerror(errno)); - } - else - { - fchmod(cupsFileNumber(fp), 0644); - fchown(cupsFileNumber(fp), User, Group); - - cupsFileClose(fp); - } -#endif /* __sgi */ - /* * Initialize authentication certificates... */ @@ -1131,18 +1110,6 @@ main(int argc, /* I - Number of command-line args */ krb5_free_context(KerberosContext); #endif /* HAVE_GSSAPI */ -#ifdef __sgi - /* - * Remove the fake IRIX lpsched lock file, but only if the existing - * file is not a FIFO which indicates that the real IRIX lpsched is - * running... - */ - - if (!stat("/var/spool/lp/FIFO", &statbuf)) - if (!S_ISFIFO(statbuf.st_mode)) - unlink("/var/spool/lp/SCHEDLOCK"); -#endif /* __sgi */ - cupsdStopSelect(); return (!stop_scheduler); diff --git a/scheduler/printers.c b/scheduler/printers.c index b5de7ccd8..b7b84c13e 100644 --- a/scheduler/printers.c +++ b/scheduler/printers.c @@ -49,10 +49,6 @@ * load_ppd() - Load a cached PPD file, updating the cache as * needed. * new_media_col() - Create a media-col collection value. - * write_irix_config() - Update the config files used by the IRIX - * desktop tools. - * write_irix_state() - Update the status files used by IRIX printing - * desktop tools. * write_xml_string() - Write a string with XML escaping. */ @@ -96,10 +92,6 @@ static void load_ppd(cupsd_printer_t *p); static void log_ipp_conformance(cupsd_printer_t *p, const char *reason); static ipp_t *new_media_col(_pwg_size_t *size, const char *source, const char *type); -#ifdef __sgi -static void write_irix_config(cupsd_printer_t *p); -static void write_irix_state(cupsd_printer_t *p); -#endif /* __sgi */ static void write_xml_string(cups_file_t *fp, const char *s); @@ -720,9 +712,6 @@ cupsdDeletePrinter( { int i, /* Looping var */ changed = 0; /* Class changed? */ -#ifdef __sgi - char filename[1024]; /* Interface script filename */ -#endif /* __sgi */ cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDeletePrinter(p=%p(%s), update=%d)", @@ -756,31 +745,6 @@ cupsdDeletePrinter( cupsArrayRemove(Printers, p); /* - * Remove the dummy interface/icon/option files under IRIX... - */ - -#ifdef __sgi - snprintf(filename, sizeof(filename), "/var/spool/lp/interface/%s", p->name); - unlink(filename); - - snprintf(filename, sizeof(filename), "/var/spool/lp/gui_interface/ELF/%s.gui", - p->name); - unlink(filename); - - snprintf(filename, sizeof(filename), "/var/spool/lp/activeicons/%s", p->name); - unlink(filename); - - snprintf(filename, sizeof(filename), "/var/spool/lp/pod/%s.config", p->name); - unlink(filename); - - snprintf(filename, sizeof(filename), "/var/spool/lp/pod/%s.status", p->name); - unlink(filename); - - snprintf(filename, sizeof(filename), "/var/spool/lp/member/%s", p->name); - unlink(filename); -#endif /* __sgi */ - - /* * If p is the default printer, assign a different one... */ @@ -1657,14 +1621,6 @@ cupsdSaveAllPrinters(void) (long)printer->marker_time); cupsFilePuts(fp, "</Printer>\n"); - -#ifdef __sgi - /* - * Make IRIX desktop & printer status happy - */ - - write_irix_state(printer); -#endif /* __sgi */ } cupsdCloseCreatedConfFile(fp, filename); @@ -2457,15 +2413,6 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)/* I - Printer to setup */ add_printer_defaults(p); -#ifdef __sgi - /* - * Write the IRIX printer config and status files... - */ - - write_irix_config(p); - write_irix_state(p); -#endif /* __sgi */ - /* * Let the browse protocols reflect the change */ @@ -2653,10 +2600,6 @@ cupsdSetPrinterState( */ p->state_time = time(NULL); - -#ifdef __sgi - write_irix_state(p); -#endif /* __sgi */ } /* @@ -3045,16 +2988,6 @@ cupsdWritePrintcap(void) cupsd_printer_t *p; /* Current printer */ -#ifdef __sgi - /* - * Update the IRIX printer state for the default printer; if - * no printers remain, then the default printer file will be - * removed... - */ - - write_irix_state(DefaultPrinter); -#endif /* __sgi */ - /* * See if we have a printcap file; if not, don't bother writing it. */ @@ -5079,261 +5012,6 @@ new_media_col(_pwg_size_t *size, /* I - media-size/margin values */ } -#ifdef __sgi -/* - * 'write_irix_config()' - Update the config files used by the IRIX - * desktop tools. - */ - -static void -write_irix_config(cupsd_printer_t *p) /* I - Printer to update */ -{ - char filename[1024]; /* Interface script filename */ - cups_file_t *fp; /* Interface script file */ - ipp_attribute_t *attr; /* Attribute data */ - - - /* - * Add dummy interface and GUI scripts to fool SGI's "challenged" printing - * tools. First the interface script that tells the tools what kind of - * printer we have... - */ - - snprintf(filename, sizeof(filename), "/var/spool/lp/interface/%s", p->name); - - if (p->type & CUPS_PRINTER_CLASS) - unlink(filename); - else if ((fp = cupsFileOpen(filename, "w")) != NULL) - { - cupsFilePuts(fp, "#!/bin/sh\n"); - - if ((attr = ippFindAttribute(p->attrs, "printer-make-and-model", - IPP_TAG_TEXT)) != NULL) - cupsFilePrintf(fp, "NAME=\"%s\"\n", attr->values[0].string.text); - else if (p->type & CUPS_PRINTER_CLASS) - cupsFilePuts(fp, "NAME=\"Printer Class\"\n"); - else - cupsFilePuts(fp, "NAME=\"Remote Destination\"\n"); - - if (p->type & CUPS_PRINTER_COLOR) - cupsFilePuts(fp, "TYPE=ColorPostScript\n"); - else - cupsFilePuts(fp, "TYPE=MonoPostScript\n"); - - cupsFilePrintf(fp, "HOSTNAME=%s\n", ServerName); - cupsFilePrintf(fp, "HOSTPRINTER=%s\n", p->name); - - cupsFileClose(fp); - - chmod(filename, 0755); - chown(filename, User, Group); - } - - /* - * Then the member file that tells which device file the queue is connected - * to... Networked printers use "/dev/null" in this file, so that's what - * we use (the actual device URI can confuse some apps...) - */ - - snprintf(filename, sizeof(filename), "/var/spool/lp/member/%s", p->name); - - if (p->type & CUPS_PRINTER_CLASS) - unlink(filename); - else if ((fp = cupsFileOpen(filename, "w")) != NULL) - { - cupsFilePuts(fp, "/dev/null\n"); - - cupsFileClose(fp); - - chmod(filename, 0644); - chown(filename, User, Group); - } - - /* - * The gui_interface file is a script or program that launches a GUI - * option panel for the printer, using options specified on the - * command-line in the third argument. The option panel must send - * any printing options to stdout on a single line when the user - * accepts them, or nothing if the user cancels the dialog. - * - * The default options panel program is /usr/bin/glpoptions, from - * the ESP Print Pro software. You can select another using the - * PrintcapGUI option. - */ - - snprintf(filename, sizeof(filename), "/var/spool/lp/gui_interface/ELF/%s.gui", p->name); - - if (p->type & CUPS_PRINTER_CLASS) - unlink(filename); - else if ((fp = cupsFileOpen(filename, "w")) != NULL) - { - cupsFilePuts(fp, "#!/bin/sh\n"); - cupsFilePrintf(fp, "%s -d %s -o \"$3\"\n", PrintcapGUI, p->name); - - cupsFileClose(fp); - - chmod(filename, 0755); - chown(filename, User, Group); - } - - /* - * The POD config file is needed by the printstatus command to show - * the printer location and device. - */ - - snprintf(filename, sizeof(filename), "/var/spool/lp/pod/%s.config", p->name); - - if (p->type & CUPS_PRINTER_CLASS) - unlink(filename); - else if ((fp = cupsFileOpen(filename, "w")) != NULL) - { - cupsFilePrintf(fp, "Printer Class | %s\n", - (p->type & CUPS_PRINTER_COLOR) ? "ColorPostScript" : "MonoPostScript"); - cupsFilePrintf(fp, "Printer Model | %s\n", p->make_model ? p->make_model : ""); - cupsFilePrintf(fp, "Location Code | %s\n", p->location ? p->location : ""); - cupsFilePrintf(fp, "Physical Location | %s\n", p->info ? p->info : ""); - cupsFilePrintf(fp, "Port Path | %s\n", p->device_uri); - cupsFilePrintf(fp, "Config Path | /var/spool/lp/pod/%s.config\n", p->name); - cupsFilePrintf(fp, "Active Status Path | /var/spool/lp/pod/%s.status\n", p->name); - cupsFilePuts(fp, "Status Update Wait | 10 seconds\n"); - - cupsFileClose(fp); - - chmod(filename, 0664); - chown(filename, User, Group); - } -} - - -/* - * 'write_irix_state()' - Update the status files used by IRIX printing - * desktop tools. - */ - -static void -write_irix_state(cupsd_printer_t *p) /* I - Printer to update */ -{ - char filename[1024]; /* Interface script filename */ - cups_file_t *fp; /* Interface script file */ - int tag; /* Status tag value */ - - - if (p) - { - /* - * The POD status file is needed for the printstatus window to - * provide the current status of the printer. - */ - - snprintf(filename, sizeof(filename), "/var/spool/lp/pod/%s.status", p->name); - - if (p->type & CUPS_PRINTER_CLASS) - unlink(filename); - else if ((fp = cupsFileOpen(filename, "w")) != NULL) - { - cupsFilePrintf(fp, "Operational Status | %s\n", - (p->state == IPP_PRINTER_IDLE) ? "Idle" : - (p->state == IPP_PRINTER_PROCESSING) ? "Busy" : - "Faulted"); - cupsFilePrintf(fp, "Information | 01 00 00 | %s\n", CUPS_SVERSION); - cupsFilePrintf(fp, "Information | 02 00 00 | Device URI: %s\n", - p->device_uri); - cupsFilePrintf(fp, "Information | 03 00 00 | %s jobs\n", - p->accepting ? "Accepting" : "Not accepting"); - cupsFilePrintf(fp, "Information | 04 00 00 | %s\n", p->state_message); - - cupsFileClose(fp); - - chmod(filename, 0664); - chown(filename, User, Group); - } - - /* - * The activeicons file is needed to provide desktop icons for printers: - * - * [ quoted from /usr/lib/print/tagit ] - * - * --- Type of printer tags (base values) - * - * Dumb=66048 # 0x10200 - * DumbColor=66080 # 0x10220 - * Raster=66112 # 0x10240 - * ColorRaster=66144 # 0x10260 - * Plotter=66176 # 0x10280 - * PostScript=66208 # 0x102A0 - * ColorPostScript=66240 # 0x102C0 - * MonoPostScript=66272 # 0x102E0 - * - * --- Printer state modifiers for local printers - * - * Idle=0 # 0x0 - * Busy=1 # 0x1 - * Faulted=2 # 0x2 - * Unknown=3 # 0x3 (Faulted due to unknown reason) - * - * --- Printer state modifiers for network printers - * - * NetIdle=8 # 0x8 - * NetBusy=9 # 0x9 - * NetFaulted=10 # 0xA - * NetUnknown=11 # 0xB (Faulted due to unknown reason) - */ - - snprintf(filename, sizeof(filename), "/var/spool/lp/activeicons/%s", p->name); - - if (p->type & CUPS_PRINTER_CLASS) - unlink(filename); - else if ((fp = cupsFileOpen(filename, "w")) != NULL) - { - if (p->type & CUPS_PRINTER_COLOR) - tag = 66240; - else - tag = 66272; - - if (p->type & CUPS_PRINTER_REMOTE) - tag |= 8; - - if (p->state == IPP_PRINTER_PROCESSING) - tag |= 1; - - else if (p->state == IPP_PRINTER_STOPPED) - tag |= 2; - - cupsFilePuts(fp, "#!/bin/sh\n"); - cupsFilePrintf(fp, "#Tag %d\n", tag); - - cupsFileClose(fp); - - chmod(filename, 0755); - chown(filename, User, Group); - } - } - - /* - * The default file is needed by the printers window to show - * the default printer. - */ - - snprintf(filename, sizeof(filename), "/var/spool/lp/default"); - - if (DefaultPrinter != NULL) - { - if ((fp = cupsFileOpen(filename, "w")) != NULL) - { - cupsFilePrintf(fp, "%s\n", DefaultPrinter->name); - - cupsFileClose(fp); - - chmod(filename, 0644); - chown(filename, User, Group); - } - } - else - unlink(filename); -} -#endif /* __sgi */ - - /* * 'write_xml_string()' - Write a string with XML escaping. */ diff --git a/scheduler/select.c b/scheduler/select.c index 4510d7c23..5af53416c 100644 --- a/scheduler/select.c +++ b/scheduler/select.c @@ -3,7 +3,7 @@ * * Select abstraction functions for the CUPS scheduler. * - * Copyright 2007-2010 by Apple Inc. + * Copyright 2007-2012 by Apple Inc. * Copyright 2006-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -49,15 +49,14 @@ /* * Design Notes for Poll/Select API in CUPSD * ----------------------------------------- - * + * * SUPPORTED APIS - * + * * OS select poll epoll kqueue /dev/poll * -------------- ------ ------ ------ ------ --------- * AIX YES YES NO NO NO * FreeBSD YES YES NO YES NO * HP-UX YES YES NO NO NO - * IRIX YES YES NO NO NO * Linux YES YES YES NO NO * MacOS X YES YES NO YES NO * NetBSD YES YES NO YES NO @@ -65,22 +64,22 @@ * Solaris YES YES NO NO YES * Tru64 YES YES NO NO NO * Windows YES NO NO NO NO - * - * + * + * * HIGH-LEVEL API - * + * * typedef void (*cupsd_selfunc_t)(void *data); - * + * * void cupsdStartSelect(void); * void cupsdStopSelect(void); * void cupsdAddSelect(int fd, cupsd_selfunc_t read_cb, * cupsd_selfunc_t write_cb, void *data); * void cupsdRemoveSelect(int fd); * int cupsdDoSelect(int timeout); - * - * + * + * * IMPLEMENTATION STRATEGY - * + * * 0. Common Stuff * a. CUPS array of file descriptor to callback functions * and data + temporary array of removed fd's. @@ -103,7 +102,7 @@ * working sets. * d. cupsdStopSelect() frees all of the memory used by the * CUPS array and fd_set's. - * + * * 2. poll() - O(n log n) * a. Regular array of pollfd, sorted the same as the CUPS * array. @@ -117,7 +116,7 @@ * e. cupsdRemoveSelect() flags the pollfd array as invalid. * f. cupsdStopSelect() frees all of the memory used by the * CUPS array and pollfd array. - * + * * 3. epoll() - O(n) * a. cupsdStartSelect() creates epoll file descriptor using * epoll_create() with the maximum fd count, and @@ -133,7 +132,7 @@ * the callback record. * d. cupsdStopSelect() closes the epoll file descriptor and * frees all of the memory used by the event buffer. - * + * * 4. kqueue() - O(n) * b. cupsdStartSelect() creates kqueue file descriptor * using kqueue() function and allocates a global event @@ -146,7 +145,7 @@ * find the callback record. * e. cupsdStopSelect() closes the kqueue() file descriptor * and frees all of the memory used by the event buffer. - * + * * 5. /dev/poll - O(n log n) - NOT YET IMPLEMENTED * a. cupsdStartSelect() opens /dev/poll and allocates an * array of pollfd structs; on failure to open /dev/poll, diff --git a/systemv/lpstat.c b/systemv/lpstat.c index fd36fe898..6c9d734d7 100644 --- a/systemv/lpstat.c +++ b/systemv/lpstat.c @@ -205,38 +205,6 @@ main(int argc, /* I - Number of command-line arguments */ } break; -#ifdef __sgi - case 'b' : /* Show both the local and remote status */ - op = 'b'; - - if (argv[i][2]) - { - /* - * The local and remote status are separated by a blank line; - * since all CUPS jobs are networked, we only output the - * second list for now... In the future, we might further - * emulate this by listing the remote server's queue, but - * for now this is enough to make the SGI printstatus program - * happy... - */ - - check_dest(argv[0], argv[i] + 2, &num_dests, &dests); - - puts(""); - status |= show_jobs(argv[i] + 2, NULL, 3, ranking, which); - } - else - { - _cupsLangPrintf(stderr, - _("%s: Error - expected destination after " - "\"-b\" option."), - argv[0]); - - return (1); - } - break; -#endif /* __sgi */ - case 'c' : /* Show classes and members */ op = 'c'; @@ -299,18 +267,7 @@ main(int argc, /* I - Number of command-line arguments */ break; case 'l' : /* Long status or long job status */ -#ifdef __sgi - op = 'l'; - - if (argv[i][2]) - { - check_dest(argv[0], argv[i] + 2, &num_dests, &dests); - - status |= show_jobs(argv[i] + 2, NULL, 3, ranking, which); - } - else -#endif /* __sgi */ - long_status = 2; + long_status = 2; break; case 'o' : /* Show jobs by destination */ diff --git a/templates/ca/header.tmpl.in b/templates/ca/header.tmpl.in index 988d6bf79..02cf58081 100644 --- a/templates/ca/header.tmpl.in +++ b/templates/ca/header.tmpl.in @@ -6,8 +6,16 @@ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css"> <LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png"> {refresh_page?<META HTTP-EQUIV="Refresh" CONTENT="{refresh_page}">:} + <SCRIPT TYPE="text/javascript"><!-- + /* Show an error if cookies are disabled */ + function check_cookies() { + if (!navigator.cookieEnabled) { + document.getElementById('body').innerHTML = 'This page uses cookies to prevent common cross-site attacks. Please enable cookies in your browser.'; + } + } + --></SCRIPT> </HEAD> -<BODY> +<BODY ONLOAD="check_cookies();"> <TABLE CLASS="page" SUMMARY="{title}"> <TR><TD CLASS="body"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY=""> @@ -27,3 +35,4 @@ VALUE="{SECTION=help?{?QUERY}:}" AUTOSAVE="org.cups.help" RESULTS="20"></FORM></ </TR> <TR><TD COLSPAN="9"> </TD></TR> </TABLE> +<DIV ID="body"> diff --git a/templates/ca/trailer.tmpl b/templates/ca/trailer.tmpl index f16123f70..655c068d7 100644 --- a/templates/ca/trailer.tmpl +++ b/templates/ca/trailer.tmpl @@ -1,4 +1,4 @@ -</TD></TR> +</DIV></TD></TR> <TR><TD> </TD></TR> <TR><TD CLASS="trailer">CUPS i el logotip de CUPS són marques registrades per <A HREF="http://www.apple.com">Apple Inc.</A> CUPS té copyright 2007-2012 Apple diff --git a/templates/es/header.tmpl.in b/templates/es/header.tmpl.in index b6c63b431..3e974c802 100644 --- a/templates/es/header.tmpl.in +++ b/templates/es/header.tmpl.in @@ -6,8 +6,16 @@ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css"> <LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png"> {refresh_page?<META HTTP-EQUIV="Refresh" CONTENT="{refresh_page}">:} + <SCRIPT TYPE="text/javascript"><!-- + /* Show an error if cookies are disabled */ + function check_cookies() { + if (!navigator.cookieEnabled) { + document.getElementById('body').innerHTML = 'This page uses cookies to prevent common cross-site attacks. Please enable cookies in your browser.'; + } + } + --></SCRIPT> </HEAD> -<BODY> +<BODY ONLOAD="check_cookies();"> <TABLE CLASS="page" SUMMARY="{title}"> <TR><TD CLASS="body"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY=""> @@ -27,3 +35,4 @@ VALUE="{SECTION=help?{?QUERY}:}" AUTOSAVE="org.cups.help" RESULTS="20"></FORM></ </TR> <TR><TD COLSPAN="9"> </TD></TR> </TABLE> +<DIV ID="body"> diff --git a/templates/es/trailer.tmpl b/templates/es/trailer.tmpl index a19924548..335afd36e 100644 --- a/templates/es/trailer.tmpl +++ b/templates/es/trailer.tmpl @@ -1,4 +1,4 @@ -</TD></TR> +</DIV></TD></TR> <TR><TD> </TD></TR> <TR><TD CLASS="trailer">CUPS y el logo de CUPS son marcas registradas de <A HREF="http://www.apple.com">Apple, Inc.</A> Los derechos de copia de CUPS diff --git a/templates/header.tmpl.in b/templates/header.tmpl.in index a383725c5..8aaf89c18 100644 --- a/templates/header.tmpl.in +++ b/templates/header.tmpl.in @@ -6,8 +6,16 @@ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css"> <LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png"> {refresh_page?<META HTTP-EQUIV="Refresh" CONTENT="{refresh_page}">:} + <SCRIPT TYPE="text/javascript"><!-- + /* Show an error if cookies are disabled */ + function check_cookies() { + if (!navigator.cookieEnabled) { + document.getElementById('body').innerHTML = 'This page uses cookies to prevent common cross-site attacks. Please enable cookies in your browser.'; + } + } + --></SCRIPT> </HEAD> -<BODY> +<BODY ONLOAD="check_cookies();"> <TABLE CLASS="page" SUMMARY="{title}"> <TR><TD CLASS="body"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY=""> @@ -27,3 +35,4 @@ VALUE="{SECTION=help?{?QUERY}:}" AUTOSAVE="org.cups.help" RESULTS="20"></FORM></ </TR> <TR><TD COLSPAN="9"> </TD></TR> </TABLE> +<DIV ID="body"> diff --git a/templates/ja/header.tmpl.in b/templates/ja/header.tmpl.in index 71a39f101..1bf55fdee 100644 --- a/templates/ja/header.tmpl.in +++ b/templates/ja/header.tmpl.in @@ -6,8 +6,16 @@ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css"> <LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png"> {refresh_page?<META HTTP-EQUIV="Refresh" CONTENT="{refresh_page}">:} + <SCRIPT TYPE="text/javascript"><!-- + /* Show an error if cookies are disabled */ + function check_cookies() { + if (!navigator.cookieEnabled) { + document.getElementById('body').innerHTML = 'This page uses cookies to prevent common cross-site attacks. Please enable cookies in your browser.'; + } + } + --></SCRIPT> </HEAD> -<BODY> +<BODY ONLOAD="check_cookies();"> <TABLE CLASS="page" SUMMARY="{title}"> <TR><TD CLASS="body"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY=""> @@ -27,3 +35,4 @@ VALUE="{SECTION=help?{?QUERY}:}" AUTOSAVE="org.cups.help" RESULTS="20"></FORM></ </TR> <TR><TD COLSPAN="9"> </TD></TR> </TABLE> +<DIV ID="body"> diff --git a/templates/ja/trailer.tmpl b/templates/ja/trailer.tmpl index 123a19722..14412f1ca 100644 --- a/templates/ja/trailer.tmpl +++ b/templates/ja/trailer.tmpl @@ -1,4 +1,4 @@ -</TD></TR> +</DIV></TD></TR> <TR><TD> </TD></TR> <TR><TD CLASS="trailer">CUPS and the CUPS logo are trademarks of <A HREF="http://www.apple.com">Apple Inc.</A> CUPS is copyright 2007-2012 Apple diff --git a/templates/trailer.tmpl b/templates/trailer.tmpl index 123a19722..14412f1ca 100644 --- a/templates/trailer.tmpl +++ b/templates/trailer.tmpl @@ -1,4 +1,4 @@ -</TD></TR> +</DIV></TD></TR> <TR><TD> </TD></TR> <TR><TD CLASS="trailer">CUPS and the CUPS logo are trademarks of <A HREF="http://www.apple.com">Apple Inc.</A> CUPS is copyright 2007-2012 Apple |