CUPS 1.2svn Weekly Snapshot, r4738

Created at 21:00 Sep 30, 2005 by mike, last modified at 21:00 Sep 30, 2005

A new weekly snapshot of CUPS 1.2svn (r4738) is now available on the download page:

    http://www.cups.org/software.php

This snapshot contains pre-release software and should not be used on production systems.

Commit Log:

------------------------------------------------------------------------
r4738 | mike | 2005-09-30 23:42:51 -0400 (Fri, 30 Sep 2005) | 2 lines

Tweak rulers and text.

------------------------------------------------------------------------
r4737 | mike | 2005-09-30 23:22:41 -0400 (Fri, 30 Sep 2005) | 4 lines

Update test page to include rules (inches and centimeters) along the sides
of the page, and eliminate extra data on the stack because of extra copy
operators...

------------------------------------------------------------------------
r4736 | mike | 2005-09-30 22:19:04 -0400 (Fri, 30 Sep 2005) | 2 lines

Update test page with new ESP logo and contact information.

------------------------------------------------------------------------
r4735 | mike | 2005-09-30 21:45:18 -0400 (Fri, 30 Sep 2005) | 13 lines

The classes web page now provides links to each of the member
printers (STR #307)

cgi-bin/ipp-var.c:
    - ippSetCGIVars(): Embed hyperlinks for member_uris variable.

cgi-bin/template.c:
    - cgi_puts(): Detect hyperlinks and pass them.


templates/classes.tmpl:
    - Use member_uris instead of member_names.

------------------------------------------------------------------------
r4734 | mike | 2005-09-30 21:03:34 -0400 (Fri, 30 Sep 2005) | 11 lines

CUPS now handles HTTP request/response lines up to 32k in length;
this is mainly for better cookie support (STR #1274)

cups/http.c:
    - httpGets(): Redo implementation to support lines longer
      than HTTP_BUFFER_SIZE.
    - httpUpdate(): Increase line buffer to 32k.

scheduler/client.c:
    - pipe_command(): Increase cookie buffer size to 32k.

------------------------------------------------------------------------
r4733 | mike | 2005-09-30 20:34:49 -0400 (Fri, 30 Sep 2005) | 6 lines

Added support for the Apache PassEnv and SetEnv directives to
cupsd.conf (STR #853)

scheduler/conf.c:
    - read_configuration(): Add code to parse PassEnv and SetEnv.

------------------------------------------------------------------------
r4732 | mike | 2005-09-30 19:23:25 -0400 (Fri, 30 Sep 2005) | 2 lines

Only set _FILE_OFFSET_BITS and _LARGE_FILES as needed.

------------------------------------------------------------------------
r4731 | mike | 2005-09-30 19:11:10 -0400 (Fri, 30 Sep 2005) | 2 lines

Fix compile warnings from testipp.

------------------------------------------------------------------------
r4730 | mike | 2005-09-30 17:45:34 -0400 (Fri, 30 Sep 2005) | 94 lines

Added large file (64-bit) support (STR #541) and job abort code
to lpd backend.

backend/lpd.c:
    - Add abort_job global to track when SIGTERM is received.
    - lpd_command(), lpd_write(): Check for abort_job.
    - lpd_queue(): Increase buffer size to 64k, and use off_t and
      CUPS_LLFMT/CUPS_LLCAST to handle large files.
    - sigterm_handler(): Set abort_job instead of exiting.

berkeley/lpq.c:
    - show_jobs(): Update job-k-octets code to handle large
      files.

config.h.in:
    - Add "long long" configure definitions.

config-scripts/cups-compiler.m4:
    - Fix comment header.

config-scripts/cups-largefile.m4:
    - Added.

configure.in:
    - Include cups-largefile.m4.

cups/http.c:
    - httpGetLength(): Call httpGetLength2() and return
      _data_remaining.
    - httpGetLength2(): Added.
    - httpRead(): Use stroll() to get chunk length, and mirror
      data_remaining to _data_remaining.
    - httpSetLength(): Added.
    - httpUpdate(): Use httpGetLength2().
    - http_send(): Use httpGetLength2().

cups/http.h:
    - Add new off_t data_remaining member to http_t.
    - Rename int data_remaining member in http_t to
      _data_remaining.
    - Add prototypes for httpGetLength2() and httpSetLength().

cups/ipp.c:
    - ippRead(): Update debug printf for large file sizes.
    - ipp_read_http(): Mirror data_remaining to _data_remaining.

cups/testhttp.c:
    - main(): Use off_t, CUPS_LLFMT/CUPS_LLCAST, and
      httpGetLength2().

cups/util.c:
    - cupsDoFileRequest(): Use off_t, CUPS_LLFMT/CUPS_LLCAST, and
      httpGetLength2(), increase buffer size to 64k.

cups.spec:
    - Add missing cancel man page, and move backend and filter
      backends to -devel package.

Makedefs.in:
    - Add @LARGEFILE@ to CFLAGS and CXXFLAGS.

pdftops/SecurityHandler.cxx:
    - SecurityHandler::make(): #ifdef xsh variable definition.

scheduler/client.c:
    - cupsdReadClient(): Intialize _data_remaining member, use
      off_t and CUPS_LLFMT/CUPS_LLCAST to support large files.
    - cupsdSendFile(): Use CUPS_LLFMT/CUPS_LLCAST to support
      large files.
    - check_if_modified(): Use strtoll() and
      CUPS_LLFMT/CUPS_LLCAST to support large files.
    - pipe_command(): Use CUPS_LLFMT/CUPS_LLCAST to support large
      files.

scheduler/client.h:
    - Change bytes member in cupsd_client_t to off_t.

scheduler/cups-lpd.c:
    - send_state(): Change job-k-octets handling to support large
      files.

scheduler/ipp.c:
    - cupsdProcessIPPRequest(): Update Content-Length code to
      support large files and mirror data_remaining to
      _data_remaining.

scheduler/log.c:
    - cupsdLogRequest(): Use CUPS_LLFMT/CUPS_LLCAST to log large
      file sizes.

systemv/lpstat.c:
    - show_jobs(): Change job-k-octets handling to support large
      files.

------------------------------------------------------------------------
r4729 | mike | 2005-09-30 13:46:19 -0400 (Fri, 30 Sep 2005) | 3 lines

Change cupsdJob*() functions to use cupsd_job_t * arguments, all except
cupsdFindJob()...

------------------------------------------------------------------------
r4728 | mike | 2005-09-30 10:52:11 -0400 (Fri, 30 Sep 2005) | 25 lines

Fix another bug in the cups_find() code, and add optimizations
and performance testing.

cups/array.c:
    - Add insert member to _cups_array_s structure to track last
      insertion point.
    - cupsArrayAdd(): Use/update insert member, and add debug
      stuff to show elements array.
    - cupsArrayClear(): Initialize current and insert.
    - cupsArrayDup(): Initialize current and insert.
    - cupsArrayFind(): Pass current read index to cups_find().
    - cupsArrayNew(): Intiailize current and insert.
    - cupsArrayRemove(): Pass current read index to cups_find()
      and update current and insert indices as needed.
    - cups_find(): Add "prev" argument to track the last
      read/insert position, optimize for match on either end of
      the elements array, and fix overflow on final match check.

cups/testarray.c:
    - Add get_seconds() and load_words() functions.
    - main(): Add cupsArrayClear() test and a performance test
      which loads unique words from all of the CUPS API source
      files and verifies the final load is properly sorted.


------------------------------------------------------------------------
r4727 | mike | 2005-09-29 22:03:12 -0400 (Thu, 29 Sep 2005) | 2 lines

Optimize cups_find() to start from the current element, if any.

------------------------------------------------------------------------
r4726 | mike | 2005-09-29 21:56:36 -0400 (Thu, 29 Sep 2005) | 10 lines

Fix implementation of cupsArray.

cups/array.c:
    - Add debug printf's.
    - cupsArrayAdd(): Use cups_find() index directly.
    - cups_find(): Fix termination of binary search.

cups/testarray.c:
    - Add debug printf's.

------------------------------------------------------------------------
r4725 | mike | 2005-09-29 17:09:46 -0400 (Thu, 29 Sep 2005) | 2 lines

Add test program for cupsArray* functions.

------------------------------------------------------------------------
r4724 | mike | 2005-09-29 16:00:39 -0400 (Thu, 29 Sep 2005) | 20 lines

Fix a performance problem with ippReadIO() and resizing of
attributes (STR #1284)

cups/ipp.c:
    - ippFindNextAttribute(): Update ipp->prev based on found
      attribute.
    - ippReadIO(): Use ipp->prev to track the previous attribute
      in the list behind ipp->current; also require
      IPP_MAX_VALUES to be a power of two and start by allocating
      only 1 value.

cups/ipp.h:
    - Change IPP_MAX_VALUES to 8, and document that we need a
      power of 2 value.
    - Add "prev" member to ipp_t structure.

scheduler/testspeed.c:
    - Add "-v" option to limit default verbosity so that the test
      results are not skewed by terminal output delays.

------------------------------------------------------------------------
r4723 | mike | 2005-09-29 13:38:32 -0400 (Thu, 29 Sep 2005) | 7 lines

Fixed a performance issue with the scheduler's implicit class
implementation (STR #1283)

scheduler/dirsvc.c:
    - cupsdProcessBrowseData(): Don't lookup destination if we
      already have it.

------------------------------------------------------------------------
r4722 | mike | 2005-09-29 13:23:33 -0400 (Thu, 29 Sep 2005) | 7 lines

Fix browsing crash...

scheduler/dirsvc.c:
    - cupsdSendBrowseList(): Find BrowseNext, not
      BrowseNext->name.
    - cupsdStartBrowsing(): Initialize BrowseNext to NULL.

------------------------------------------------------------------------
r4721 | mike | 2005-09-29 09:53:30 -0400 (Thu, 29 Sep 2005) | 6 lines

Fix crash in browsing code.

scheduler/dirsvc.c:
    - cupsdSendBrowseList(): Don't reference BrowseNext unless it
      is set...

------------------------------------------------------------------------
r4720 | mike | 2005-09-28 17:36:30 -0400 (Wed, 28 Sep 2005) | 2 lines

Add "Set Allowed Users" button to classes template.

------------------------------------------------------------------------
r4719 | mike | 2005-09-28 17:12:44 -0400 (Wed, 28 Sep 2005) | 10 lines

Cleanup.

cups/language.h:
    - Move new 1.2 functions so they are declared separately with a
      corresponding documentation string.

scheduler/*:
    - Cleanup function/structure renaming and code
formatting/documentation.


------------------------------------------------------------------------
r4718 | mike | 2005-09-28 12:35:47 -0400 (Wed, 28 Sep 2005) | 2 lines

Fix cupsaddsmb - was using cupsdrv6.dll instead of cupsps6.dll.

------------------------------------------------------------------------
r4717 | mike | 2005-09-28 11:10:59 -0400 (Wed, 28 Sep 2005) | 2 lines

Rename all types and functions to use cupsd prefix.

------------------------------------------------------------------------
r4716 | mike | 2005-09-28 09:54:55 -0400 (Wed, 28 Sep 2005) | 2 lines

Change _str suffix on structure types to _s.

------------------------------------------------------------------------
r4715 | mike | 2005-09-27 16:31:25 -0400 (Tue, 27 Sep 2005) | 35 lines

Replace jobs list with two sorted job arrays - Jobs and ActiveJobs.

scheduler/classes.c:
    - DeleteAllClasses(), SaveAllClasses(): Don't need NULL check
      for Printers array anymore.

scheduler/ipp.c:
    - cancel_job(): Use new cupsArray*() API for job list.
    - create_job(), print_job(): Replace NumJobs with cupsArrayCount().
    - get_jobs(): Use new cupsArray*() API for job list, add
      support for an "all" keyword for "which-jobs", and add a
      "first" attribute to support "paging".

scheduler/job.c:
    - Replace all of the linked-list stuff with cupsArray*() calls.

scheduler/job.h:
    - Remove "next" member from job_t structure.
    - Remove NumJobs variable and replace Jobs and ActiveJobs
      variables with cups_array_t *'s.

scheduler/main.c:
    - main(), process_children(), select_timeout(): Use new
      cupsArray*() API for job lists.

scheduler/printers.c:
    - DeleteAllPrinters(), FindDest(), SaveAllPrinters(): Don't
      need NULL check for Printers array anymore.

scheduler/printers.h:
    - Fix "printers" member 

scheduler/quotas.c:
    - UpdateQuota(): Use new cupsArray*() API for job lists.

------------------------------------------------------------------------
r4714 | mike | 2005-09-27 16:11:15 -0400 (Tue, 27 Sep 2005) | 3 lines

Update all cupsArray*() functions to handle NULL pointers in a logical
manner.

------------------------------------------------------------------------
r4713 | mike | 2005-09-27 15:02:56 -0400 (Tue, 27 Sep 2005) | 2 lines

Remove incorrectly merged code.

------------------------------------------------------------------------
r4712 | mike | 2005-09-27 15:02:16 -0400 (Tue, 27 Sep 2005) | 34 lines

Use cupsArray*() API to manage sorted list of printers and classes.

scheduler/classes.c:
    - DeletePrinterFromClasses(), DeleteAllClasses(),
      SaveAllClasses(), UpdateImplicitClasses(): Use cupsArray*()
      functions to traverse printer list.
    - FindClass(): Use FindDest() to get matching printer_t
      entry.

scheduler/cupsd.h:
    - Include <cups/array.h>.

scheduler/Dependencies:
    -

scheduler/dirsvc.c:
    -

scheduler/ipp.c:
    -

scheduler/main.c:
    -

scheduler/printers.c:
    - DeleteAllPrinters(), DeletePrinter(), SaveAllPrinters():
      Use cupsArray*() functions to traverse printer list.
    -

scheduler/printers.h:
    - Remove "next" member from printer_t.
    - Remove NumPrinters.
    - Change Printers to cups_array_t *.

------------------------------------------------------------------------
r4711 | mike | 2005-09-27 14:45:40 -0400 (Tue, 27 Sep 2005) | 5 lines

Fix binary search bug.

cups/array.c:
    - cups_find(): Terminate binary search when (right - left) <= 1.

------------------------------------------------------------------------
r4710 | mike | 2005-09-27 08:07:00 -0400 (Tue, 27 Sep 2005) | 2 lines

Fix cups_strcpy() call - should be _cups_strcpy()...

------------------------------------------------------------------------
r4709 | mike | 2005-09-26 23:49:07 -0400 (Mon, 26 Sep 2005) | 2 lines

Fix log file links.

------------------------------------------------------------------------
r4708 | mike | 2005-09-26 23:44:29 -0400 (Mon, 26 Sep 2005) | 2 lines

Change /admin/ to /admin (without the trailing slash)

------------------------------------------------------------------------
r4707 | mike | 2005-09-26 23:37:52 -0400 (Mon, 26 Sep 2005) | 14 lines

Fix httpWrite() bug which caused a variety of errors.

cups/http.c:
    - httpConnectEncrypt(): Update DEBUG_printf.
    - httpPrintf(): Check return value of httpFlushWrite().
    - httpUpdate(): Check return value of httpFlushWrite().
    - httpWrite(): Save bytes written in "bytes" instead of
      "length" and update DEBUG_printf's.
    - http_write_chunk(): Add DEBUG_printf's.

scheduler/client.c:
    - CloseClient(): Close pipes and files before socket.
    - WriteClient(): Add L_DEBUG2 log messages.

------------------------------------------------------------------------
r4706 | mike | 2005-09-26 20:51:04 -0400 (Mon, 26 Sep 2005) | 2 lines

Add /var/log/cups to spec file.

------------------------------------------------------------------------
r4705 | mike | 2005-09-26 20:30:17 -0400 (Mon, 26 Sep 2005) | 3 lines

Add missing cancel man page to spec file, and move backend and filter
backends to -devel package.

------------------------------------------------------------------------
r4704 | mike | 2005-09-26 16:59:15 -0400 (Mon, 26 Sep 2005) | 62 lines

Add support for cached authentication on a per-job basis.  The
information is stored in a file that is readable only by the root
user.  The username and password are Base-64 encoded, each on a
separate line, followed by random number (up to 1024) of newlines
to limit the amount of information that is exposed.

Because of the potential for exposing of authentication
information, this functionality is only enabled when running
cupsd as root.

This caching only works for the Basic and BasicDigest
authentication types.  Digest authentication cannot be cached
this way, and in the future Kerberos authentication may make all
of this obsolete.

Authentication information is saved whenever an authenticated
Print-Job, Create-Job, or CUPS-Authenticate-Job operation is
performed.

This information is deleted after a job is completed or canceled,
so reprints may require subsequent re-authentication.

backend/ipp.c:
    - main(): If no authentication information is in the device
      URI, try reading it from the auth cache file.

conf/cupsd.conf.in:
templates/edit-config.tmpl.in:
    - Add CUPS-Authenticate-Job policy.

cups/ipp.h:
    - Add CUPS_AUTHENTICATE_JOB operation.

cups/ipp-support.c:
    - Add CUPS-Authenticate-Job operation string.

scheduler/conf.c:
    - ReadConfiguration(): Add CUPS_AUTHENTICATE_JOB operation to
      the default policy.

scheduler/env.c:
    - cupsInitEnv(): Add CUPS_REQUESTROOT environment variable.

scheduler/ipp.c:
    - ProcessIPPRequest(): Add CUPS_AUTHENTICATE_JOB operation.
    - authenticate_job(): Added.
    - create_job(), print_job(): Call save_auth_info() when the
      request is authenticated and require authentication if the
      printer-type CUPS_PRINTER_AUTHENTICATED bit is set.
    - save_auth_info(): Added.

scheduler/job.c:
    - CancelJob(): Remove authentication cache file.
    - FinishJob(): Add job-stopped event when authentication is
      required.

scheduler/printers.c:
    - CreateCommonData(): Update operations-supported list.
    - SetPrinterAttrs(): Use both Location and Policy limits to
      mark whether authentication is required.


------------------------------------------------------------------------
r4703 | mike | 2005-09-26 15:33:58 -0400 (Mon, 26 Sep 2005) | 45 lines

Add standard backend exit codes.

Also remove out-of-date French man pages.

backend/ieee1394-linux.c:
backend/ipp.c:
backend/lpd.c:
backend/parallel.c:
backend/scsi.c:
backend/scsi-irix.c:
backend/scsi-linux.c:
backend/serial.c:
backend/socket.c:
backend/usb.c:
backend/usb-unix.c:
    - Use CUPS_BACKEND_* constants instead of 0 or 1 for exit codes.

cups/backend.h:
    - Added.

cups/cups.h:
    - Add CUPS_PRINTER_AUTHENTICATED bit to printer types.

man/backend.man:
    - Add exit codes and log messages to man page.

scheduler/conf.h:
    - Add L_ATTR constant.

scheduler/ipp.c:
    - print_job(), create_job(): Return IPP_ATTRIBUTES for a
      copies value that is out-of-range.

scheduler/job.c:
    - FinishJob(): Use exit code constants to control what
      happens to the job and/or printer.

scheduler/statbuf.c:
    - cupsdStatBufUpdate(): Add ATTR: prefix.

templates/trailer.tmpl:
    - Fix bad colspan value.



------------------------------------------------------------------------
r4702 | mike | 2005-09-26 11:10:15 -0400 (Mon, 26 Sep 2005) | 18 lines

More web UI cleanup.

cgi-bin/admin.c:
    - do_menu(): Free list of printer devices.

doc/cups.css:
    - Update background colors for better contrast/visibility.

doc/images/hdr-top-right.gif:
doc/images/hdr-top-left.gif:
doc/images/hdr-bottom-right.gif:
doc/images/hdr-bottom-left.gif:
    - Update for new page background.

templates/classes.tmpl:
templates/printers.tmpl:
    - Change "Default Destination" to "Server Default Destination".

------------------------------------------------------------------------
r4701 | mike | 2005-09-26 10:44:19 -0400 (Mon, 26 Sep 2005) | 5 lines

Log stderr from cups-driverd...

scheduler/ipp.c:
    - copy_model(): Use CGIPipes to support stderr logging. 

------------------------------------------------------------------------
r4700 | mike | 2005-09-26 10:34:25 -0400 (Mon, 26 Sep 2005) | 10 lines

Fix PPD copy bug, and add check for MIME database.

scheduler/conf.c:
    - ReadConfiguration(): Add check for NULL MIME database (due
      to misconfiguration or missing ServerRoot...)

scheduler/ipp.c:
    - copy_model(): Use select() with timeout and pipe to catch
      when the cups-driverd process is done.

------------------------------------------------------------------------
Download  ·  Home Page  ·  Listing

Comments

Submit Comment