Full sweep of all Clang warnings, plus some bug fixes for incorrect memcpy usage.
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Thu, 6 Feb 2014 18:33:34 +0000 (18:33 +0000)
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Thu, 6 Feb 2014 18:33:34 +0000 (18:33 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11558 a1ca3aef-8c08-0410-bb20-df032aa958be

144 files changed:
backend/backend-private.h
backend/dnssd.c
backend/ieee1284.c
backend/ipp.c
backend/lpd.c
backend/network.c
backend/runloop.c
backend/snmp-supplies.c
backend/snmp.c
backend/socket.c
backend/testbackend.c
backend/usb-darwin.c
berkeley/lpc.c
berkeley/lpq.c
berkeley/lpr.c
cgi-bin/Makefile
cgi-bin/admin.c
cgi-bin/classes.c
cgi-bin/help-index.c
cgi-bin/ipp-var.c
cgi-bin/jobs.c
cgi-bin/printers.c
cgi-bin/search.c
cgi-bin/template.c
cgi-bin/testcgi.c
cgi-bin/var.c
cgi-bin/websearch.c [deleted file]
config-scripts/cups-compiler.m4
cups/adminutil.c
cups/array.c
cups/auth.c
cups/backchannel.c
cups/conflicts.c
cups/debug.c
cups/dest-job.c
cups/dest-localization.c
cups/dest-options.c
cups/dest.c
cups/emit.c
cups/encode.c
cups/file.c
cups/getputfile.c
cups/http-addr.c
cups/http-addrlist.c
cups/http-support.c
cups/http.c
cups/http.h
cups/ipp-private.h
cups/ipp-support.c
cups/ipp.c
cups/ipp.h
cups/langprintf.c
cups/language.c
cups/localize.c
cups/mark.c
cups/md5.c
cups/options.c
cups/ppd-cache.c
cups/ppd-private.h
cups/ppd.c
cups/pwg-media.c
cups/request.c
cups/sidechannel.c
cups/snmp-private.h
cups/snmp.c
cups/string.c
cups/testarray.c
cups/testcups.c
cups/testfile.c
cups/testhttp.c
cups/testi18n.c
cups/testipp.c
cups/testppd.c
cups/testsnmp.c
cups/thread-private.h
cups/tls-darwin.c
cups/transcode.c
cups/usersys.c
cups/util.c
filter/commandtops.c
filter/common.c
filter/error.c
filter/gziptoany.c
filter/interpret.c
filter/pstops.c
filter/raster.c
filter/rasterbench.c
filter/rastertoepson.c
filter/rastertohp.c
filter/rastertolabel.c
filter/rastertopwg.c
filter/testraster.c
locale/Makefile
locale/po2strings.c
locale/strings2po.c
locale/translate.c [deleted file]
monitor/bcp.c
monitor/tbcp.c
ppdc/ppdc-array.cxx
ppdc/ppdc-catalog.cxx
ppdc/ppdc-driver.cxx
ppdc/ppdc-source.cxx
ppdc/ppdc.cxx
ppdc/ppdmerge.cxx
scheduler/auth.c
scheduler/auth.h
scheduler/cert.c
scheduler/classes.c
scheduler/client.c
scheduler/colorman.c
scheduler/conf.c
scheduler/conf.h
scheduler/cups-deviced.c
scheduler/cups-driverd.cxx
scheduler/cups-lpd.c
scheduler/cupsfilter.c
scheduler/dirsvc.c
scheduler/ipp.c
scheduler/job.c
scheduler/log.c
scheduler/main.c
scheduler/mime.c
scheduler/printers.c
scheduler/process.c
scheduler/select.c
scheduler/statbuf.c
scheduler/subscriptions.c
scheduler/testlpd.c
scheduler/testmime.c
scheduler/testspeed.c
scheduler/testsub.c
scheduler/type.c
scheduler/util.c
scheduler/util.h
systemv/cupstestppd.c
systemv/lp.c
systemv/lpadmin.c
systemv/lpoptions.c
systemv/lpstat.c
test/ippfind.c
test/ippserver.c
test/ipptool.c
vcnet/regex/regcomp.c
xcode/CUPS.xcodeproj/project.pbxproj

index 3729bb0..1d211e3 100644 (file)
@@ -1,18 +1,18 @@
 /*
  * "$Id$"
  *
- *   Backend support definitions for CUPS.
+ * Backend support definitions for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   "LICENSE" which should have been included with this file.  If this
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file.  If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 #ifndef _CUPS_BACKEND_PRIVATE_H_
@@ -313,7 +313,7 @@ extern int          backendGetDeviceID(int fd, char *device_id,
                                           int uri_size);
 extern int             backendGetMakeModel(const char *device_id,
                                            char *make_model,
-                                           int make_model_size);
+                                           size_t make_model_size);
 extern int             backendNetworkSideCB(int print_fd, int device_fd,
                                             int snmp_fd, http_addr_t *addr,
                                             int use_bc);
index 1ac000f..fad831f 100644 (file)
@@ -1,33 +1,17 @@
 /*
  * "$Id$"
  *
- *   DNS-SD discovery backend for CUPS.
+ * DNS-SD discovery backend for CUPS.
  *
- *   Copyright 2008-2012 by Apple Inc.
+ * Copyright 2008-2014 by Apple Inc.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   "LICENSE" which should have been included with this file.  If this
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file.  If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   main()                 - Browse for printers.
- *   browse_callback()      - Browse devices.
- *   browse_local_callback() - Browse local devices.
- *   client_callback()       - Avahi client callback function.
- *   compare_devices()      - Compare two devices.
- *   exec_backend()         - Execute the backend that corresponds to the
- *                            resolved service name.
- *   device_type()          - Get DNS-SD type enumeration from string.
- *   get_device()           - Create or update a device.
- *   query_callback()       - Process query data.
- *   find_device()          - Find a device from its name and domain.
- *   sigterm_handler()      - Handle termination signals.
- *   unquote()              - Unquote a name string.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -138,7 +122,7 @@ static void         client_callback(AvahiClient *client,
 #endif /* HAVE_AVAHI */
 
 static int             compare_devices(cups_device_t *a, cups_device_t *b);
-static void            exec_backend(char **argv);
+static void            exec_backend(char **argv) __attribute__((noreturn));
 static cups_device_t   *get_device(cups_array_t *devices,
                                    const char *serviceName,
                                    const char *regtype,
@@ -837,8 +821,8 @@ exec_backend(char **argv)           /* I - Command-line arguments */
  * 'device_type()' - Get DNS-SD type enumeration from string.
  */
 
-static int
-device_type(const char *regtype)
+static cups_devtype_t                  /* O - Device type */
+device_type(const char *regtype)       /* I - Service registration type */
 {
 #ifdef HAVE_AVAHI
   if (!strcmp(regtype, "_ipp._tcp"))
@@ -1115,7 +1099,7 @@ query_callback(
     datanext = data + datalen;
 
     for (ptr = key; data < datanext && *data != '='; data ++)
-      *ptr++ = *data;
+      *ptr++ = (char)*data;
     *ptr = '\0';
 
     if (data < datanext && *data == '=')
@@ -1143,8 +1127,7 @@ query_callback(
       */
 
       ptr = device_id + strlen(device_id);
-      snprintf(ptr, sizeof(device_id) - (ptr - device_id), "%s:%s;",
-              key + 4, value);
+      snprintf(ptr, sizeof(device_id) - (size_t)(ptr - device_id), "%s:%s;", key + 4, value);
     }
 
     if (!_cups_strcasecmp(key, "usb_MFG") || !_cups_strcasecmp(key, "usb_MANU") ||
@@ -1250,7 +1233,7 @@ query_callback(
       while (isalnum(*ptr & 255) || *ptr == '-' || *ptr == '.')
       {
         if (isalnum(*ptr & 255) && valptr < (value + sizeof(value) - 1))
-          *valptr++ = toupper(*ptr++ & 255);
+          *valptr++ = (char)toupper(*ptr++ & 255);
         else
           break;
       }
@@ -1259,8 +1242,7 @@ query_callback(
     }
 
     ptr = device_id + strlen(device_id);
-    snprintf(ptr, sizeof(device_id) - (ptr - device_id), "CMD:%s;",
-            value + 1);
+    snprintf(ptr, sizeof(device_id) - (size_t)(ptr - device_id), "CMD:%s;", value + 1);
   }
 
   if (device_id[0])
index bc4b344..1b73136 100644 (file)
@@ -1,24 +1,18 @@
 /*
  * "$Id$"
  *
- *   IEEE-1284 support functions for CUPS.
+ * IEEE-1284 support functions for CUPS.
  *
- *   Copyright 2007-2011 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   "LICENSE" which should have been included with this file.  If this
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file.  If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   backendGetDeviceID()  - Get the IEEE-1284 device ID string and
- *                           corresponding URI.
- *   backendGetMakeModel() - Get the make and model string from the device ID.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -372,7 +366,7 @@ int                                 /* O - 0 on success, -1 on failure */
 backendGetMakeModel(
     const char *device_id,             /* O - 1284 device ID */
     char       *make_model,            /* O - Make/model */
-    int        make_model_size)                /* I - Size of buffer */
+    size_t     make_model_size)                /* I - Size of buffer */
 {
   int          num_values;             /* Number of keys and values */
   cups_option_t        *values;                /* Keys and values */
@@ -381,9 +375,7 @@ backendGetMakeModel(
                *des;                   /* Description string */
 
 
-  DEBUG_printf(("backendGetMakeModel(device_id=\"%s\", "
-                "make_model=%p, make_model_size=%d)\n", device_id,
-               make_model, make_model_size));
+  DEBUG_printf(("backendGetMakeModel(device_id=\"%s\", make_model=%p, make_model_size=" CUPS_LLFMT ")\n", device_id, make_model, CUPS_LLCAST make_model_size));
 
  /*
   * Range check input...
index 92dd7e0..c47f442 100644 (file)
@@ -3,7 +3,7 @@
  *
  * IPP backend for CUPS.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -79,7 +79,7 @@ typedef struct _cups_monitor_s                /**** Monitoring data ****/
 static const char      *auth_info_required;
                                        /* New auth-info-required value */
 #if defined(HAVE_GSSAPI) && defined(HAVE_XPC)
-static int             child_pid = 0;  /* Child process ID */
+static pid_t           child_pid = 0;  /* Child process ID */
 #endif /* HAVE_GSSAPI && HAVE_XPC */
 static const char * const jattrs[] =   /* Job attributes we want */
 {
@@ -785,7 +785,7 @@ main(int  argc,                             /* I - Number of command-line args */
              break;
         }
 
-       sleep(delay);
+       sleep((unsigned)delay);
 
         delay = _cupsNextDelay(delay, &prev_delay);
       }
@@ -831,15 +831,16 @@ main(int  argc,                           /* I - Number of command-line args */
   */
 
 #ifdef HAVE_LIBZ
-  compression_sup  = NULL;
+  compression_sup      = NULL;
 #endif /* HAVE_LIBZ */
-  copies_sup       = NULL;
-  cups_version     = NULL;
-  format_sup       = NULL;
-  media_col_sup    = NULL;
-  supported        = NULL;
-  operations_sup   = NULL;
-  doc_handling_sup = NULL;
+  copies_sup           = NULL;
+  cups_version         = NULL;
+  format_sup           = NULL;
+  media_col_sup        = NULL;
+  supported            = NULL;
+  operations_sup       = NULL;
+  doc_handling_sup     = NULL;
+  print_color_mode_sup = NULL;
 
   do
   {
@@ -854,9 +855,7 @@ main(int  argc,                             /* I - Number of command-line args */
     */
 
     request = ippNewRequest(IPP_GET_PRINTER_ATTRIBUTES);
-    request->request.op.version[0] = version / 10;
-    request->request.op.version[1] = version % 10;
-
+    ippSetVersion(request, version / 10, version % 10);
     ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
                 NULL, uri);
 
@@ -905,7 +904,7 @@ main(int  argc,                             /* I - Number of command-line args */
 
         report_printer_state(supported);
 
-       sleep(delay);
+       sleep((unsigned)delay);
 
         delay = _cupsNextDelay(delay, &prev_delay);
       }
@@ -1019,7 +1018,7 @@ main(int  argc,                           /* I - Number of command-line args */
 
        report_printer_state(supported);
 
-       sleep(delay);
+       sleep((unsigned)delay);
 
        delay = _cupsNextDelay(delay, &prev_delay);
 
@@ -1308,7 +1307,7 @@ main(int  argc,                           /* I - Number of command-line args */
 
     _cupsLangPrintFilter(stderr, "INFO", _("Copying print data."));
 
-    if ((compatsize = write(fd, buffer, bytes)) < 0)
+    if ((compatsize = write(fd, buffer, (size_t)bytes)) < 0)
     {
       perror("DEBUG: Unable to write temporary file");
       return (CUPS_BACKEND_FAILED);
@@ -1506,7 +1505,7 @@ main(int  argc,                           /* I - Number of command-line args */
        else
        {
          fd          = 0;
-         http_status = cupsWriteRequestData(http, buffer, bytes);
+         http_status = cupsWriteRequestData(http, buffer, (size_t)bytes);
         }
 
         while (http_status == HTTP_CONTINUE &&
@@ -1532,7 +1531,7 @@ main(int  argc,                           /* I - Number of command-line args */
             {
              fprintf(stderr, "DEBUG: Read %d bytes...\n", (int)bytes);
 
-             if ((http_status = cupsWriteRequestData(http, buffer, bytes))
+             if ((http_status = cupsWriteRequestData(http, buffer, (size_t)bytes))
                      != HTTP_CONTINUE)
                break;
            }
@@ -1668,8 +1667,7 @@ main(int  argc,                           /* I - Number of command-line args */
        */
 
        request = ippNewRequest(IPP_SEND_DOCUMENT);
-       request->request.op.version[0] = version / 10;
-       request->request.op.version[1] = version % 10;
+       ippSetVersion(request, version / 10, version % 10);
 
        ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
                     NULL, uri);
@@ -1702,7 +1700,7 @@ main(int  argc,                           /* I - Number of command-line args */
          if (num_files == 0)
          {
            fd          = 0;
-           http_status = cupsWriteRequestData(http, buffer, bytes);
+           http_status = cupsWriteRequestData(http, buffer, (size_t)bytes);
          }
          else
          {
@@ -1721,7 +1719,7 @@ main(int  argc,                           /* I - Number of command-line args */
          while (!job_canceled && http_status == HTTP_CONTINUE &&
                 (bytes = read(fd, buffer, sizeof(buffer))) > 0)
          {
-           if ((http_status = cupsWriteRequestData(http, buffer, bytes))
+           if ((http_status = cupsWriteRequestData(http, buffer, (size_t)bytes))
                    != HTTP_CONTINUE)
              break;
            else
@@ -1880,8 +1878,7 @@ main(int  argc,                           /* I - Number of command-line args */
       */
 
       request = ippNewRequest(IPP_GET_JOB_ATTRIBUTES);
-      request->request.op.version[0] = version / 10;
-      request->request.op.version[1] = version % 10;
+      ippSetVersion(request, version / 10, version % 10);
 
       ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
                   NULL, uri);
@@ -2006,7 +2003,7 @@ main(int  argc,                           /* I - Number of command-line args */
       * Wait before polling again...
       */
 
-      sleep(delay);
+      sleep((unsigned)delay);
 
       delay = _cupsNextDelay(delay, &prev_delay);
     }
@@ -2140,8 +2137,7 @@ cancel_job(http_t     *http,              /* I - HTTP connection */
   _cupsLangPrintFilter(stderr, "INFO", _("Canceling print job."));
 
   request = ippNewRequest(IPP_CANCEL_JOB);
-  request->request.op.version[0] = version / 10;
-  request->request.op.version[1] = version % 10;
+  ippSetVersion(request, version / 10, version % 10);
 
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
                NULL, uri);
@@ -2186,8 +2182,7 @@ check_printer_state(
   */
 
   request = ippNewRequest(IPP_GET_PRINTER_ATTRIBUTES);
-  request->request.op.version[0] = version / 10;
-  request->request.op.version[1] = version % 10;
+  ippSetVersion(request, version / 10, version % 10);
 
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
               NULL, uri);
@@ -2290,8 +2285,7 @@ monitor_printer(
       job_op  = (monitor->job_id > 0 && monitor->get_job_attrs) ?
                     IPP_GET_JOB_ATTRIBUTES : IPP_GET_JOBS;
       request = ippNewRequest(job_op);
-      request->request.op.version[0] = monitor->version / 10;
-      request->request.op.version[1] = monitor->version % 10;
+      ippSetVersion(request, monitor->version / 10, monitor->version % 10);
 
       ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
                   NULL, monitor->uri);
@@ -2353,7 +2347,7 @@ monitor_printer(
               job_name = attr->values[0].string.text;
             else if (!strcmp(attr->name, "job-state") &&
                     attr->value_tag == IPP_TAG_ENUM)
-              job_state = attr->values[0].integer;
+              job_state = (ipp_jstate_t)attr->values[0].integer;
             else if (!strcmp(attr->name, "job-originating-user-name") &&
                     (attr->value_tag == IPP_TAG_NAME ||
                      attr->value_tag == IPP_TAG_NAMELANG))
@@ -2440,7 +2434,7 @@ monitor_printer(
     * Sleep for N seconds...
     */
 
-    sleep(delay);
+    sleep((unsigned)delay);
 
     delay = _cupsNextDelay(delay, &prev_delay);
   }
@@ -2507,9 +2501,8 @@ new_request(
   * Create the IPP request...
   */
 
-  request                        = ippNewRequest(op);
-  request->request.op.version[0] = version / 10;
-  request->request.op.version[1] = version % 10;
+  request = ippNewRequest(op);
+  ippSetVersion(request, version / 10, version % 10);
 
   fprintf(stderr, "DEBUG: %s IPP/%d.%d\n",
          ippOpString(request->request.op.operation_id),
@@ -2576,8 +2569,7 @@ new_request(
           (keyword = cupsGetOption("job-password", num_options,
                                    options)) != NULL)
       {
-        ippAddOctetString(request, IPP_TAG_OPERATION, "job-password",
-                          keyword, strlen(keyword));
+        ippAddOctetString(request, IPP_TAG_OPERATION, "job-password", keyword, (int)strlen(keyword));
 
         if ((keyword = cupsGetOption("job-password-encryption", num_options,
                                     options)) == NULL)
@@ -2656,8 +2648,7 @@ new_request(
                 }
                 break;
             case IPP_TAG_STRING :
-                ippAddOctetString(request, IPP_TAG_JOB, mandatory, keyword,
-                                  strlen(keyword));
+                ippAddOctetString(request, IPP_TAG_JOB, mandatory, keyword, (int)strlen(keyword));
                 break;
             default :
                 if (!strcmp(mandatory, "print-color-mode") && !strcmp(keyword, "monochrome"))
@@ -3078,16 +3069,14 @@ report_attr(ipp_attribute_t *attr)      /* I - Attribute */
     {
       case IPP_TAG_INTEGER :
       case IPP_TAG_ENUM :
-          snprintf(valptr, sizeof(value) - (valptr - value), "%d",
-                  attr->values[i].integer);
+          snprintf(valptr, sizeof(value) - (size_t)(valptr - value), "%d", attr->values[i].integer);
          valptr += strlen(valptr);
          break;
 
       case IPP_TAG_TEXT :
       case IPP_TAG_NAME :
       case IPP_TAG_KEYWORD :
-          quote_string(attr->values[i].string.text, valptr,
-                       value + sizeof(value) - valptr);
+          quote_string(attr->values[i].string.text, valptr, (size_t)(value + sizeof(value) - valptr));
           valptr += strlen(valptr);
           break;
 
@@ -3338,12 +3327,12 @@ run_as_user(char       *argv[],         /* I - Command-line arguments */
 
   if (response)
   {
-    child_pid = xpc_dictionary_get_int64(response, "child-pid");
+    child_pid = (pid_t)xpc_dictionary_get_int64(response, "child-pid");
 
     xpc_release(response);
 
     if (child_pid)
-      fprintf(stderr, "DEBUG: Child PID=%d.\n", child_pid);
+      fprintf(stderr, "DEBUG: Child PID=%d.\n", (int)child_pid);
     else
     {
       _cupsLangPrintFilter(stderr, "ERROR",
@@ -3389,7 +3378,7 @@ run_as_user(char       *argv[],           /* I - Command-line arguments */
 
   if (response)
   {
-    status = xpc_dictionary_get_int64(response, "status");
+    status = (int)xpc_dictionary_get_int64(response, "status");
 
     if (status == SIGTERM || status == SIGKILL || status == SIGPIPE)
     {
@@ -3588,8 +3577,7 @@ update_reasons(ipp_attribute_t *attr,     /* I - printer-state-reasons or NULL */
               temp = (char *)cupsArrayNext(state_reasons))
            if (!strncmp(temp, "cups-remote-", 12))
            {
-             snprintf(remptr, sizeof(rem) - (remptr - rem), "%s%s", remprefix,
-                      temp);
+             snprintf(remptr, sizeof(rem) - (size_t)(remptr - rem), "%s%s", remprefix, temp);
              remptr    += strlen(remptr);
              remprefix = ",";
 
@@ -3602,8 +3590,7 @@ update_reasons(ipp_attribute_t *attr,     /* I - printer-state-reasons or NULL */
 
         cupsArrayAdd(state_reasons, reason);
 
-        snprintf(addptr, sizeof(add) - (addptr - add), "%s%s", addprefix,
-                reason);
+        snprintf(addptr, sizeof(add) - (size_t)(addptr - add), "%s%s", addprefix, reason);
        addptr    += strlen(addptr);
        addprefix = ",";
       }
@@ -3621,8 +3608,7 @@ update_reasons(ipp_attribute_t *attr,     /* I - printer-state-reasons or NULL */
     {
       if (cupsArrayFind(state_reasons, reason))
       {
-       snprintf(remptr, sizeof(rem) - (remptr - rem), "%s%s", remprefix,
-                reason);
+       snprintf(remptr, sizeof(rem) - (size_t)(remptr - rem), "%s%s", remprefix, reason);
        remptr    += strlen(remptr);
        remprefix = ",";
 
@@ -3642,8 +3628,7 @@ update_reasons(ipp_attribute_t *attr,     /* I - printer-state-reasons or NULL */
     {
       if (strncmp(reason, "cups-", 5) && !cupsArrayFind(new_reasons, reason))
       {
-       snprintf(remptr, sizeof(rem) - (remptr - rem), "%s%s", remprefix,
-                reason);
+       snprintf(remptr, sizeof(rem) - (size_t)(remptr - rem), "%s%s", remprefix, reason);
        remptr    += strlen(remptr);
        remprefix = ",";
 
@@ -3659,8 +3644,7 @@ update_reasons(ipp_attribute_t *attr,     /* I - printer-state-reasons or NULL */
       {
         cupsArrayAdd(state_reasons, reason);
 
-        snprintf(addptr, sizeof(add) - (addptr - add), "%s%s", addprefix,
-                reason);
+        snprintf(addptr, sizeof(add) - (size_t)(addptr - add), "%s%s", addprefix, reason);
        addptr    += strlen(addptr);
        addprefix = ",";
       }
index 872fb1c..602a516 100644 (file)
@@ -84,7 +84,7 @@ static int    lpd_queue(const char *hostname, http_addrlist_t *addrlist,
                          int copies, int banner, int format, int order,
                          int reserve, int manual_copies, int timeout,
                          int contimeout, const char *orighost);
-static int     lpd_write(int lpd_fd, char *buffer, int length);
+static ssize_t lpd_write(int lpd_fd, char *buffer, size_t length);
 #ifndef HAVE_RRESVPORT_AF
 static int     rresvport_af(int *port, int family);
 #endif /* !HAVE_RRESVPORT_AF */
@@ -472,7 +472,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
     _cupsLangPrintFilter(stderr, "INFO", _("Copying print data."));
 
     if (bytes > 0)
-      write(fd, buffer, bytes);
+      write(fd, buffer, (size_t)bytes);
 
     backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, 0,
                   backendNetworkSideCB);
@@ -583,7 +583,7 @@ lpd_command(int  fd,                /* I - Socket connection to LPD host */
 {
   va_list      ap;             /* Argument pointer */
   char         buf[1024];      /* Output buffer */
-  int          bytes;          /* Number of bytes to output */
+  ssize_t      bytes;          /* Number of bytes to output */
   char         status;         /* Status from command */
 
 
@@ -608,9 +608,9 @@ lpd_command(int  fd,                /* I - Socket connection to LPD host */
   * Send the command...
   */
 
-  fprintf(stderr, "DEBUG: Sending command string (%d bytes)...\n", bytes);
+  fprintf(stderr, "DEBUG: Sending command string (" CUPS_LLFMT " bytes)...\n", CUPS_LLCAST bytes);
 
-  if (lpd_write(fd, buf, bytes) < bytes)
+  if (lpd_write(fd, buf, (size_t)bytes) < bytes)
   {
     perror("DEBUG: Unable to send LPD command");
     return (-1);
@@ -625,7 +625,7 @@ lpd_command(int  fd,                /* I - Socket connection to LPD host */
   if (recv(fd, &status, 1, 0) < 1)
   {
     _cupsLangPrintFilter(stderr, "WARNING", _("The printer did not respond."));
-    status = errno;
+    status = (char)errno;
   }
 
   fprintf(stderr, "DEBUG: lpd_command returning %d\n", status);
@@ -671,7 +671,7 @@ lpd_queue(const char      *hostname,        /* I - Host to connect to */
   int                  have_supplies;  /* Printer supports supply levels? */
   int                  copy;           /* Copies written */
   time_t               start_time;     /* Time of first connect */
-  size_t               nbytes;         /* Number of bytes written */
+  ssize_t              nbytes;         /* Number of bytes written */
   off_t                        tbytes;         /* Total bytes written */
   char                 buffer[32768];  /* Output buffer */
 #ifdef WIN32
@@ -773,7 +773,7 @@ lpd_queue(const char      *hostname,        /* I - Host to connect to */
        return (CUPS_BACKEND_FAILED);
       }
 
-      if (!connect(fd, &(addr->addr.addr), httpAddrLength(&(addr->addr))))
+      if (!connect(fd, &(addr->addr.addr), (socklen_t)httpAddrLength(&(addr->addr))))
        break;
 
       error = errno;
@@ -837,7 +837,7 @@ lpd_queue(const char      *hostname,        /* I - Host to connect to */
              break;
         }
 
-       sleep(delay);
+       sleep((unsigned)delay);
 
        if (delay < 30)
          delay += 5;
@@ -958,7 +958,7 @@ lpd_queue(const char      *hostname,        /* I - Host to connect to */
 
     if (banner)
     {
-      snprintf(cptr, sizeof(control) - (cptr - control),
+      snprintf(cptr, sizeof(control) - (size_t)(cptr - control),
                "C%.31s\n"      /* RFC 1179, Section 7.2 - class name <= 31 chars */
               "L%s\n",
                localhost, user);
@@ -967,13 +967,13 @@ lpd_queue(const char      *hostname,      /* I - Host to connect to */
 
     while (copies > 0)
     {
-      snprintf(cptr, sizeof(control) - (cptr - control), "%cdfA%03d%.15s\n",
+      snprintf(cptr, sizeof(control) - (size_t)(cptr - control), "%cdfA%03d%.15s\n",
                format, (int)getpid() % 1000, localhost);
       cptr   += strlen(cptr);
       copies --;
     }
 
-    snprintf(cptr, sizeof(control) - (cptr - control),
+    snprintf(cptr, sizeof(control) - (size_t)(cptr - control),
              "UdfA%03d%.15s\n"
             "N%.131s\n",       /* RFC 1179, Section 7.2 - sourcefile name <= 131 chars */
              (int)getpid() % 1000, localhost, title);
@@ -1003,9 +1003,9 @@ lpd_queue(const char      *hostname,      /* I - Host to connect to */
       fprintf(stderr, "DEBUG: Sending control file (%u bytes)\n",
              (unsigned)strlen(control));
 
-      if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
+      if ((size_t)lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
       {
-       status = errno;
+       status = (char)errno;
        perror("DEBUG: Unable to write control file");
 
       }
@@ -1015,7 +1015,7 @@ lpd_queue(const char      *hostname,      /* I - Host to connect to */
        {
          _cupsLangPrintFilter(stderr, "WARNING",
                               _("The printer did not respond."));
-         status = errno;
+         status = (char)errno;
        }
       }
 
@@ -1065,7 +1065,7 @@ lpd_queue(const char      *hostname,      /* I - Host to connect to */
                               _("Spooling job, %.0f%% complete."),
                               100.0 * tbytes / filestats.st_size);
 
-         if (lpd_write(fd, buffer, nbytes) < nbytes)
+         if (lpd_write(fd, buffer, (size_t)nbytes) < nbytes)
          {
            perror("DEBUG: Unable to send print file to printer");
             break;
@@ -1078,11 +1078,11 @@ lpd_queue(const char      *hostname,    /* I - Host to connect to */
       if (mode == MODE_STANDARD)
       {
        if (tbytes < filestats.st_size)
-         status = errno;
+         status = (char)errno;
        else if (lpd_write(fd, "", 1) < 1)
        {
          perror("DEBUG: Unable to send trailing nul to printer");
-         status = errno;
+         status = (char)errno;
        }
        else
        {
@@ -1136,9 +1136,9 @@ lpd_queue(const char      *hostname,      /* I - Host to connect to */
       fprintf(stderr, "DEBUG: Sending control file (%lu bytes)\n",
              (unsigned long)strlen(control));
 
-      if (lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
+      if ((size_t)lpd_write(fd, control, strlen(control) + 1) < (strlen(control) + 1))
       {
-       status = errno;
+       status = (char)errno;
        perror("DEBUG: Unable to write control file");
       }
       else
@@ -1147,7 +1147,7 @@ lpd_queue(const char      *hostname,      /* I - Host to connect to */
        {
          _cupsLangPrintFilter(stderr, "WARNING",
                               _("The printer did not respond."));
-         status = errno;
+         status = (char)errno;
        }
       }
 
@@ -1197,32 +1197,32 @@ lpd_queue(const char      *hostname,    /* I - Host to connect to */
  * 'lpd_write()' - Write a buffer of data to an LPD server.
  */
 
-static int                             /* O - Number of bytes written or -1 on error */
-lpd_write(int  lpd_fd,                 /* I - LPD socket */
-          char *buffer,                        /* I - Buffer to write */
-         int  length)                  /* I - Number of bytes to write */
+static ssize_t                         /* O - Number of bytes written or -1 on error */
+lpd_write(int     lpd_fd,              /* I - LPD socket */
+          char    *buffer,             /* I - Buffer to write */
+         size_t  length)               /* I - Number of bytes to write */
 {
-  int  bytes,                          /* Number of bytes written */
-       total;                          /* Total number of bytes written */
+  ssize_t      bytes,                  /* Number of bytes written */
+               total;                  /* Total number of bytes written */
 
 
   if (abort_job)
     return (-1);
 
   total = 0;
-  while ((bytes = send(lpd_fd, buffer, length - total, 0)) >= 0)
+  while ((bytes = send(lpd_fd, buffer, length - (size_t)total, 0)) >= 0)
   {
     total  += bytes;
     buffer += bytes;
 
-    if (total == length)
+    if ((size_t)total == length)
       break;
   }
 
   if (bytes < 0)
     return (-1);
   else
-    return (length);
+    return (total);
 }
 
 
index 2eadbff..a09a45d 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Common backend network APIs for CUPS.
  *
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 2006-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -91,7 +91,7 @@ backendNetworkSideCB(
 
     case CUPS_SC_CMD_GET_BIDI :
        status  = CUPS_SC_STATUS_OK;
-        data[0] = use_bc;
+        data[0] = (char)use_bc;
         datalen = 1;
         break;
 
@@ -130,13 +130,13 @@ backendNetworkSideCB(
            for (dataptr = data + strlen(data) + 1;
                 count > 0 && dataptr < (data + sizeof(data) - 1);
                 count --, dataptr += strlen(dataptr))
-             strlcpy(dataptr, snmp_value, sizeof(data) - (dataptr - data));
+             strlcpy(dataptr, snmp_value, sizeof(data) - (size_t)(dataptr - data));
 
            fprintf(stderr, "DEBUG: Returning %s %s\n", data,
                    data + strlen(data) + 1);
 
            status  = CUPS_SC_STATUS_OK;
-           datalen = dataptr - data;
+           datalen = (int)(dataptr - data);
            break;
           }
 
@@ -159,7 +159,7 @@ backendNetworkSideCB(
           {
            if (_cupsSNMPRead(snmp_fd, &packet, 1.0))
            {
-             int       i;              /* Looping var */
+             size_t    i;              /* Looping var */
 
 
               if (!_cupsSNMPOIDToString(packet.object_name, data, sizeof(data)))
@@ -174,26 +174,22 @@ backendNetworkSideCB(
              switch (packet.object_type)
              {
                case CUPS_ASN1_BOOLEAN :
-                   snprintf(dataptr, sizeof(data) - (dataptr - data), "%d",
-                            packet.object_value.boolean);
-                   datalen += (int)strlen(dataptr);
+                   snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%d", packet.object_value.boolean);
+                   datalen += strlen(dataptr);
                    break;
 
                case CUPS_ASN1_INTEGER :
-                   snprintf(dataptr, sizeof(data) - (dataptr - data), "%d",
+                   snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%d",
                             packet.object_value.integer);
-                   datalen += (int)strlen(dataptr);
+                   datalen += strlen(dataptr);
                    break;
 
                case CUPS_ASN1_BIT_STRING :
                case CUPS_ASN1_OCTET_STRING :
-                   if (packet.object_value.string.num_bytes < 0)
-                     i = 0;
-                   else if (packet.object_value.string.num_bytes <
-                            (sizeof(data) - (dataptr - data)))
+                   if (packet.object_value.string.num_bytes < (sizeof(data) - (size_t)(dataptr - data)))
                      i = packet.object_value.string.num_bytes;
                    else
-                     i = (int)(sizeof(data) - (dataptr - data));
+                     i = sizeof(data) - (size_t)(dataptr - data);
 
                    memcpy(dataptr, packet.object_value.string.bytes, i);
 
@@ -202,8 +198,8 @@ backendNetworkSideCB(
 
                case CUPS_ASN1_OID :
                    _cupsSNMPOIDToString(packet.object_value.oid, dataptr,
-                                        sizeof(data) - (dataptr - data));
-                   datalen += (int)strlen(dataptr);
+                                        sizeof(data) - (size_t)(dataptr - data));
+                   datalen += strlen(dataptr);
                    break;
 
                 case CUPS_ASN1_HEX_STRING :
@@ -211,32 +207,27 @@ backendNetworkSideCB(
                         i < packet.object_value.string.num_bytes &&
                             dataptr < (data + sizeof(data) - 3);
                         i ++, dataptr += 2)
-                     sprintf(dataptr, "%02X",
-                             packet.object_value.string.bytes[i]);
-                   datalen += (int)strlen(dataptr);
+                     sprintf(dataptr, "%02X", packet.object_value.string.bytes[i]);
+                   datalen += strlen(dataptr);
                    break;
 
                 case CUPS_ASN1_COUNTER :
-                   snprintf(dataptr, sizeof(data) - (dataptr - data), "%d",
-                            packet.object_value.counter);
-                   datalen += (int)strlen(dataptr);
+                   snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%u", packet.object_value.counter);
+                   datalen += strlen(dataptr);
                    break;
 
                 case CUPS_ASN1_GAUGE :
-                   snprintf(dataptr, sizeof(data) - (dataptr - data), "%u",
-                            packet.object_value.gauge);
-                   datalen += (int)strlen(dataptr);
+                   snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%u", packet.object_value.gauge);
+                   datalen += strlen(dataptr);
                    break;
 
                 case CUPS_ASN1_TIMETICKS :
-                   snprintf(dataptr, sizeof(data) - (dataptr - data), "%u",
-                            packet.object_value.timeticks);
-                   datalen += (int)strlen(dataptr);
+                   snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%u", packet.object_value.timeticks);
+                   datalen += strlen(dataptr);
                    break;
 
                 default :
-                   fprintf(stderr, "DEBUG: Unknown OID value type %02X!\n",
-                           packet.object_type);
+                   fprintf(stderr, "DEBUG: Unknown OID value type %02X.\n", packet.object_type);
 
                case CUPS_ASN1_NULL_VALUE :
                    dataptr[0] = '\0';
index 6e717e8..2a0ec5f 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Common run loop APIs for CUPS backends.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 2006-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -102,7 +102,7 @@ backendDrainOutput(int print_fd,    /* I - Print file descriptor */
 
     for (print_ptr = print_buffer; print_bytes > 0;)
     {
-      if ((bytes = write(device_fd, print_ptr, print_bytes)) < 0)
+      if ((bytes = write(device_fd, print_ptr, (size_t)print_bytes)) < 0)
       {
        /*
         * Write error - bail if we don't see an error we can retry...
@@ -282,7 +282,7 @@ backendRunLoop(
        fprintf(stderr,
                "DEBUG: Received " CUPS_LLFMT " bytes of back-channel data\n",
                CUPS_LLCAST bc_bytes);
-        cupsBackChannelWrite(bc_buffer, bc_bytes, 1.0);
+        cupsBackChannelWrite(bc_buffer, (size_t)bc_bytes, 1.0);
       }
       else if (bc_bytes < 0 && errno != EAGAIN && errno != EINTR)
       {
@@ -339,7 +339,7 @@ backendRunLoop(
 
     if (print_bytes && FD_ISSET(device_fd, &output))
     {
-      if ((bytes = write(device_fd, print_ptr, print_bytes)) < 0)
+      if ((bytes = write(device_fd, print_ptr, (size_t)print_bytes)) < 0)
       {
        /*
         * Write error - bail if we don't see an error we can retry...
index 0864c22..7e2142a 100644 (file)
@@ -1,24 +1,17 @@
 /*
  * "$Id$"
  *
- *   SNMP supplies functions for CUPS.
+ * SNMP supplies functions for CUPS.
  *
- *   Copyright 2008-2013 by Apple Inc.
+ * Copyright 2008-2014 by Apple Inc.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   "LICENSE" which should have been included with this file.  If this
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file.  If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   backendSNMPSupplies()   - Get the current supplies for a device.
- *   backend_init_supplies() - Initialize the supplies list.
- *   backend_walk_cb()       - Interpret the supply value responses.
- *   utf16_to_utf8()         - Convert UTF-16 text to UTF-8.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -329,9 +322,9 @@ backendSNMPSupplies(
 
       if ((supplies[i].max_capacity > 0 || (quirks & CUPS_SNMP_CAPACITY)) &&
           supplies[i].level >= 0)
-        snprintf(ptr, sizeof(value) - (ptr - value), "%d", percent);
+        snprintf(ptr, sizeof(value) - (size_t)(ptr - value), "%d", percent);
       else
-        strlcpy(ptr, "-1", sizeof(value) - (ptr - value));
+        strlcpy(ptr, "-1", sizeof(value) - (size_t)(ptr - value));
     }
 
     fprintf(stderr, "ATTR: marker-levels=%s\n", value);
@@ -585,7 +578,7 @@ backend_init_supplies(
       {
         if (!strcmp(description, value))
          cupsFileRead(cachefile, (char *)supplies,
-                      num_supplies * sizeof(backend_supplies_t));
+                      (size_t)num_supplies * sizeof(backend_supplies_t));
         else
        {
          num_supplies = -1;
@@ -680,7 +673,7 @@ backend_init_supplies(
 
     if (num_supplies > 0)
       cupsFileWrite(cachefile, (char *)supplies,
-                    num_supplies * sizeof(backend_supplies_t));
+                    (size_t)num_supplies * sizeof(backend_supplies_t));
 
     cupsFileClose(cachefile);
   }
@@ -708,7 +701,7 @@ backend_init_supplies(
     if (i)
       *ptr++ = ',';
 
-    strlcpy(ptr, supplies[i].color, sizeof(value) - (ptr - value));
+    strlcpy(ptr, supplies[i].color, sizeof(value) - (size_t)(ptr - value));
   }
 
   fprintf(stderr, "ATTR: marker-colors=%s\n", value);
@@ -756,9 +749,9 @@ backend_init_supplies(
     type = supplies[i].type;
 
     if (type < CUPS_TC_other || type > CUPS_TC_covers)
-      strlcpy(ptr, "unknown", sizeof(value) - (ptr - value));
+      strlcpy(ptr, "unknown", sizeof(value) - (size_t)(ptr - value));
     else
-      strlcpy(ptr, types[type - CUPS_TC_other], sizeof(value) - (ptr - value));
+      strlcpy(ptr, types[type - CUPS_TC_other], sizeof(value) - (size_t)(ptr - value));
   }
 
   fprintf(stderr, "ATTR: marker-types=%s\n", value);
@@ -1062,9 +1055,9 @@ utf16_to_utf8(
   for (ptr = temp; srcsize >= 2;)
   {
     if (le)
-      ch = src[0] | (src[1] << 8);
+      ch = (cups_utf32_t)(src[0] | (src[1] << 8));
     else
-      ch = (src[0] << 8) | src[1];
+      ch = (cups_utf32_t)((src[0] << 8) | src[1]);
 
     src += 2;
     srcsize -= 2;
@@ -1075,13 +1068,13 @@ utf16_to_utf8(
       * Multi-word UTF-16 char...
       */
 
-      int lch;                 /* Lower word */
+      cups_utf32_t lch;                        /* Lower word */
 
 
       if (le)
-       lch = src[0] | (src[1] << 8);
+       lch = (cups_utf32_t)(src[0] | (src[1] << 8));
       else
-       lch = (src[0] << 8) | src[1];
+       lch = (cups_utf32_t)((src[0] << 8) | src[1]);
 
       if (lch >= 0xdc00 && lch <= 0xdfff)
       {
@@ -1098,7 +1091,7 @@ utf16_to_utf8(
 
   *ptr = '\0';
 
-  cupsUTF32ToUTF8(dst, temp, dstsize);
+  cupsUTF32ToUTF8(dst, temp, (int)dstsize);
 }
 
 
index 62fc543..688997b 100644 (file)
@@ -1,44 +1,18 @@
 /*
  * "$Id$"
  *
- *   SNMP discovery backend for CUPS.
+ * SNMP discovery backend for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 2006-2007 by Easy Software Products, all rights reserved.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 2006-2007 by Easy Software Products, all rights reserved.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   "LICENSE" which should have been included with this file.  If this
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file.  If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   main()                    - Discover printers via SNMP.
- *   add_array()               - Add a string to an array.
- *   add_cache()               - Add a cached device...
- *   add_device_uri()          - Add a device URI to the cache.
- *   alarm_handler()           - Handle alarm signals...
- *   compare_cache()           - Compare two cache entries.
- *   debug_printf()            - Display some debugging information.
- *   fix_make_model()          - Fix common problems in the make-and-model
- *                               string.
- *   free_array()              - Free an array of strings.
- *   free_cache()              - Free the array of cached devices.
- *   get_interface_addresses() - Get the broadcast address(es) associated with
- *                               an interface.
- *   list_device()             - List a device we found...
- *   password_cb()             - Handle authentication requests.
- *   probe_device()            - Probe a device to discover whether it is a
- *                               printer.
- *   read_snmp_conf()          - Read the snmp.conf file.
- *   read_snmp_response()      - Read and parse a SNMP response...
- *   run_time()                - Return the total running time...
- *   scan_devices()            - Scan for devices using SNMP.
- *   try_connect()             - Try connecting on a port...
- *   update_cache()            - Update a cached device...
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -753,7 +727,7 @@ probe_device(snmp_cache_t *device)  /* I - Device */
            * Insert hostname/address...
            */
 
-           strlcpy(uriptr, device->addrname, sizeof(uri) - (uriptr - uri));
+           strlcpy(uriptr, device->addrname, sizeof(uri) - (size_t)(uriptr - uri));
            uriptr += strlen(uriptr);
            format += 2;
          }
@@ -1346,7 +1320,7 @@ try_connect(http_addr_t *addr,            /* I - Socket address */
 
   alarm(1);
 
-  status = connect(fd, (void *)addr, httpAddrLength(addr));
+  status = connect(fd, (void *)addr, (socklen_t)httpAddrLength(addr));
 
   close(fd);
   alarm(0);
index 8b87d8e..0c01fbf 100644 (file)
@@ -3,7 +3,7 @@
  *
  * AppSocket backend for CUPS.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -41,7 +41,7 @@
  * Local functions...
  */
 
-static int     wait_bc(int device_fd, int secs);
+static ssize_t wait_bc(int device_fd, int secs);
 
 
 /*
@@ -380,7 +380,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
              break;
         }
 
-       sleep(delay);
+       sleep((unsigned)delay);
 
        if (delay < 30)
          delay += 5;
@@ -410,7 +410,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
   tbytes = 0;
 
   if (bytes > 0)
-    tbytes += write(device_fd, buffer, bytes);
+    tbytes += write(device_fd, buffer, (size_t)bytes);
 
   while (copies > 0 && tbytes >= 0)
   {
@@ -476,7 +476,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
  * 'wait_bc()' - Wait for back-channel data...
  */
 
-static int                             /* O - # bytes read or -1 on error */
+static ssize_t                         /* O - # bytes read or -1 on error */
 wait_bc(int device_fd,                 /* I - Socket */
         int secs)                      /* I - Seconds to wait */
 {
@@ -506,7 +506,7 @@ wait_bc(int device_fd,                      /* I - Socket */
     {
       fprintf(stderr, "DEBUG: Received %d bytes of back-channel data\n",
              (int)bytes);
-      cupsBackChannelWrite(buffer, bytes, 1.0);
+      cupsBackChannelWrite(buffer, (size_t)bytes, 1.0);
     }
 
     return (bytes);
index 722859f..190e656 100644 (file)
@@ -1,25 +1,18 @@
 /*
  * "$Id$"
  *
- *   Backend test program for CUPS.
+ * Backend test program for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2005 by Easy Software Products, all rights reserved.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2005 by Easy Software Products, all rights reserved.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   "LICENSE" which should have been included with this file.  If this
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file.  If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   main()            - Run the named backend.
- *   sigterm_handler() - Flag when we get SIGTERM.
- *   usage()           - Show usage information.
- *   walk_cb()         - Show results of cupsSideChannelSNMPWalk...
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -97,7 +90,7 @@ main(int  argc,                               /* I - Number of command-line args */
   if (getcwd(libpath, sizeof(libpath)) &&
       (ptr = strrchr(libpath, '/')) != NULL && !strcmp(ptr, "/backend"))
   {
-    strlcpy(ptr, "/cups", sizeof(libpath) - (ptr - libpath));
+    strlcpy(ptr, "/cups", sizeof(libpath) - (size_t)(ptr - libpath));
     if (!access(libpath, 0))
     {
 #ifdef __APPLE__
@@ -311,7 +304,7 @@ main(int  argc,                             /* I - Number of command-line args */
          */
 
          if ((bytes = cupsBackChannelRead(buffer, sizeof(buffer), 0)) > 0)
-           write(2, buffer, bytes);
+           write(2, buffer, (size_t)bytes);
 
         /*
          * Throttle output to ~100hz...
@@ -339,7 +332,7 @@ main(int  argc,                             /* I - Number of command-line args */
        */
 
         while ((bytes = cupsBackChannelRead(buffer, sizeof(buffer), 5.0)) > 0)
-         write(2, buffer, bytes);
+         write(2, buffer, (size_t)bytes);
 
        exit(0);
       }
@@ -414,7 +407,7 @@ main(int  argc,                             /* I - Number of command-line args */
         while ((bytes = cupsBackChannelRead(buffer, sizeof(buffer),
                                            timeout)) > 0)
        {
-         write(2, buffer, bytes);
+         write(2, buffer, (size_t)bytes);
          timeout = 5.0;
        }
        write(2, "\nDEBUG: END\n", 12);
@@ -668,7 +661,10 @@ walk_cb(const char *oid,           /* I - OID */
        void       *context)            /* I - Context (unused) */
 {
   char temp[80];
-  if (datalen > (sizeof(temp) - 1))
+
+  (void)context;
+
+  if ((size_t)datalen > (sizeof(temp) - 1))
   {
     memcpy(temp, data, sizeof(temp) - 1);
     temp[sizeof(temp) - 1] = '\0';
index c124842..302ae98 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * "$Id$"
  *
- * Copyright 2005-2013 Apple Inc. All rights reserved.
+ * Copyright 2005-2014 Apple Inc. All rights reserved.
  *
  * IMPORTANT:  This Apple software is supplied to you by Apple Computer,
  * Inc. ("Apple") in consideration of your agreement to the following
@@ -283,10 +283,10 @@ static void status_timer_cb(CFRunLoopTimerRef timer, void *info);
 
 #if defined(__i386__) || defined(__x86_64__)
 static pid_t   child_pid;              /* Child PID */
-static void run_legacy_backend(int argc, char *argv[], int fd);        /* Starts child backend process running as a ppc executable */
+static void run_legacy_backend(int argc, char *argv[], int fd) __attribute__((noreturn));      /* Starts child backend process running as a ppc executable */
 #endif /* __i386__ || __x86_64__ */
 static void sigterm_handler(int sig);  /* SIGTERM handler */
-static void sigquit_handler(int sig, siginfo_t *si, void *unused);
+static void sigquit_handler(int sig, siginfo_t *si, void *unused) __attribute__((noreturn));
 
 #ifdef PARSE_PS_ERRORS
 static const char *next_line (const char *buffer);
@@ -680,7 +680,7 @@ print_device(const char *uri,               /* I - Device URI */
 
       if (g.print_bytes)
       {
-       bytes    = g.print_bytes;
+       bytes    = (UInt32)g.print_bytes;
        iostatus = (*g.classdriver)->WritePipe(g.classdriver, (UInt8*)print_ptr, &bytes, 0);
 
        /*
@@ -702,7 +702,7 @@ print_device(const char *uri,               /* I - Device URI */
        {
          fputs("DEBUG: Got USB pipe stalled during write\n", stderr);
 
-         bytes    = g.print_bytes;
+         bytes    = (UInt32)g.print_bytes;
          iostatus = (*g.classdriver)->WritePipe(g.classdriver, (UInt8*)print_ptr, &bytes, 0);
        }
 
@@ -722,7 +722,7 @@ print_device(const char *uri,               /* I - Device URI */
           sleep(5);
 #endif /* DEBUG_WRITES */
 
-         bytes    = g.print_bytes;
+         bytes    = (UInt32)g.print_bytes;
          iostatus = (*g.classdriver)->WritePipe(g.classdriver, (UInt8*)print_ptr, &bytes, 0);
         }
 
@@ -1010,7 +1010,7 @@ sidechannel_thread(void *reference)
          fputs("DEBUG: CUPS_SC_CMD_GET_BIDI received from driver...\n",
                stderr);
 
-         data[0] = g.bidi_flag;
+         data[0] = (char)g.bidi_flag;
          cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, data, 1, 1.0);
 
          fprintf(stderr,
@@ -1026,7 +1026,7 @@ sidechannel_thread(void *reference)
          get_device_id(&status, data, &datalen);
          cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, data, datalen, 1.0);
 
-          if (datalen < sizeof(data))
+          if ((size_t)datalen < sizeof(data))
            data[datalen] = '\0';
          else
            data[sizeof(data) - 1] = '\0';
@@ -1229,7 +1229,7 @@ static Boolean find_device_cb(void *refcon,
   if (obj != 0x0)
   {
     CFStringRef idString = NULL;
-    UInt32 location = -1;
+    UInt32 location = ~0U;
     UInt8      interfaceNum = 0;
 
     copy_devicestring(obj, &idString, &location, &interfaceNum);
@@ -1869,7 +1869,7 @@ static void parse_options(char *options,
     else if (!_cups_strcasecmp(name, "serial"))
       strlcpy(serial, value, serial_size);
     else if (!_cups_strcasecmp(name, "location") && location)
-      *location = strtol(value, NULL, 16);
+      *location = (UInt32)strtoul(value, NULL, 16);
   }
 }
 
@@ -1932,6 +1932,7 @@ static void run_legacy_backend(int argc,
   char *my_argv[32];
   char *usb_legacy_status;
 
+
  /*
   * If we're running as x86_64 or i386 and couldn't load the class driver
   * (because it's ppc or i386), then try to re-exec ourselves in ppc or i386
@@ -2015,7 +2016,7 @@ static void run_legacy_backend(int argc,
       cups_serverbin = CUPS_SERVERBIN;
     snprintf(usbpath, sizeof(usbpath), "%s/backend/usb", cups_serverbin);
 
-    for (i = 0; i < argc && i < (sizeof(my_argv) / sizeof(my_argv[0])) - 1; i ++)
+    for (i = 0; i < argc && i < (int)(sizeof(my_argv) / sizeof(my_argv[0])) - 1; i ++)
       my_argv[i] = argv[i];
 
     my_argv[i] = NULL;
@@ -2303,7 +2304,7 @@ static void get_device_id(cups_sc_status_t *status,
   if (deviceIDString)
   {
     CFStringGetCString(deviceIDString, data, *datalen, kCFStringEncodingUTF8);
-    *datalen = strlen(data);
+    *datalen = (int)strlen(data);
     CFRelease(deviceIDString);
   }
   *status  = CUPS_SC_STATUS_OK;
index e8ccb91..b2e2e41 100644 (file)
@@ -1,24 +1,16 @@
 /*
  * "$Id$"
  *
- *   "lpc" command for CUPS.
+ * "lpc" command for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2006 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2006 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   main()            - Parse options and commands.
- *   compare_strings() - Compare two command-line strings.
- *   do_command()      - Do an lpc command...
- *   show_help()       - Show help messages.
- *   show_status()     - Show printers.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -32,7 +24,7 @@
  * Local functions...
  */
 
-static int     compare_strings(const char *, const char *, int);
+static int     compare_strings(const char *, const char *, size_t);
 static void    do_command(http_t *, const char *, const char *);
 static void    show_help(const char *);
 static void    show_status(http_t *, const char *);
@@ -158,9 +150,9 @@ main(int  argc,                             /* I - Number of command-line arguments */
 static int                             /* O - -1 or 1 = no match, 0 = match */
 compare_strings(const char *s,         /* I - Command-line string */
                 const char *t,         /* I - Option string */
-                int        tmin)       /* I - Minimum number of unique chars in option */
+                size_t     tmin)       /* I - Minimum number of unique chars in option */
 {
-  int  slen;                           /* Length of command-line string */
+  size_t       slen;                   /* Length of command-line string */
 
 
   slen = strlen(s);
index 595fafd..3238706 100644 (file)
@@ -3,7 +3,7 @@
  *
  * "lpq" command for CUPS.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2006 by Easy Software Products.
  *
  * These coded instructions, statements, and computer programs are the
  * Include necessary headers...
  */
 
-/*
- * Include necessary headers...
- */
-
 #include <cups/cups-private.h>
 
 
@@ -187,7 +183,6 @@ main(int  argc,                             /* I - Number of command-line arguments */
            httpClose(http);
 
            usage();
-           break;
       }
     }
     else if (isdigit(argv[i][0] & 255))
@@ -255,7 +250,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
     if (i && interval)
     {
       fflush(stdout);
-      sleep(interval);
+      sleep((unsigned)interval);
     }
     else
       break;
index 4b8957f..4bda358 100644 (file)
@@ -1,20 +1,16 @@
 /*
  * "$Id$"
  *
- *   "lpr" command for CUPS.
+ * "lpr" command for CUPS.
  *
- *   Copyright 2007-2013 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   main() - Parse options and send files for printing.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -406,7 +402,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
 
     while (status == HTTP_CONTINUE &&
            (bytes = read(0, buffer, sizeof(buffer))) > 0)
-      status = cupsWriteRequestData(CUPS_HTTP_DEFAULT, buffer, bytes);
+      status = cupsWriteRequestData(CUPS_HTTP_DEFAULT, buffer, (size_t)bytes);
 
     if (status != HTTP_CONTINUE)
     {
index 64b171e..42a311a 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CGI makefile for CUPS.
 #
-# Copyright 2007-2013 by Apple Inc.
+# Copyright 2007-2014 by Apple Inc.
 # Copyright 1997-2006 by Easy Software Products.
 #
 # These coded instructions, statements, and computer programs are the
@@ -42,8 +42,7 @@ CGIS  =       \
                printers.cgi
 LIBTARGETS =   \
                libcupscgi.a \
-               $(LIBCUPSCGI) \
-               websearch
+               $(LIBCUPSCGI)
 
 UNITTARGETS =  \
                testcgi \
@@ -347,17 +346,6 @@ testtemplate:      testtemplate.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
                $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) $(LIBZ) $(LIBGSSAPI)
 
 
-#
-# websearch
-#
-
-websearch:     websearch.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
-       echo Linking $@...
-       $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ websearch.o libcupscgi.a \
-               ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \
-               $(LIBZ) $(LIBGSSAPI)
-
-
 #
 # Dependencies...
 #
index 5589c11..b10180e 100644 (file)
@@ -1,37 +1,16 @@
 /*
  * "$Id$"
  *
- *   Administration CGI for CUPS.
+ * Administration CGI for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   main()                    - Main entry for CGI.
- *   choose_device_cb()        - Add a device to the device selection page.
- *   do_add_rss_subscription() - Add a RSS subscription.
- *   do_am_class()             - Add or modify a class.
- *   do_am_printer()           - Add or modify a printer.
- *   do_cancel_subscription()  - Cancel a subscription.
- *   do_config_server()        - Configure server settings.
- *   do_delete_class()         - Delete a class.
- *   do_delete_printer()       - Delete a printer.
- *   do_export()               - Export printers to Samba.
- *   do_list_printers()        - List available printers.
- *   do_menu()                 - Show the main menu.
- *   do_set_allowed_users()    - Set the allowed/denied users for a queue.
- *   do_set_default()          - Set the server default printer/class.
- *   do_set_options()          - Configure the default options for a queue.
- *   do_set_sharing()          - Set printer-is-shared value.
- *   get_option_value()        - Return the value of an option.
- *   get_points()              - Get a value in points.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -89,8 +68,7 @@ static double get_points(double number, const char *uval);
  */
 
 int                                    /* O - Exit status */
-main(int  argc,                                /* I - Number of command-line arguments */
-     char *argv[])                     /* I - Command-line arguments */
+main(void)
 {
   http_t       *http;                  /* Connection to the server */
   const char   *op;                    /* Operation name */
@@ -1172,7 +1150,7 @@ do_am_printer(http_t *http,               /* I - HTTP connection */
       char             filename[1024]; /* PPD filename */
       ppd_file_t       *ppd;           /* PPD information */
       char             buffer[1024];   /* Buffer */
-      int              bytes;          /* Number of bytes */
+      ssize_t          bytes;          /* Number of bytes */
       http_status_t    get_status;     /* Status of GET */
 
 
@@ -1194,7 +1172,7 @@ do_am_printer(http_t *http,               /* I - HTTP connection */
       else if ((fd = cupsTempFd(filename, sizeof(filename))) >= 0)
       {
        while ((bytes = httpRead2(http, buffer, sizeof(buffer))) > 0)
-          write(fd, buffer, bytes);
+          write(fd, buffer, (size_t)bytes);
 
        close(fd);
 
@@ -1211,8 +1189,10 @@ do_am_printer(http_t *http,              /* I - HTTP connection */
        }
        else
        {
+         int linenum;                  /* Line number */
+
          fprintf(stderr, "ERROR: Unable to open PPD file %s: %s\n",
-                 filename, ppdErrorString(ppdLastError(&bytes)));
+                 filename, ppdErrorString(ppdLastError(&linenum)));
        }
       }
       else
@@ -1380,7 +1360,7 @@ do_am_printer(http_t *http,               /* I - HTTP connection */
       if ((uriptr = strchr(uri, '?')) == NULL)
         uriptr = uri + strlen(uri);
 
-      snprintf(uriptr, sizeof(uri) - (uriptr - uri),
+      snprintf(uriptr, sizeof(uri) - (size_t)(uriptr - uri),
                "?baud=%s+bits=%s+parity=%s+flow=%s",
                cgiGetVariable("BAUDRATE"), cgiGetVariable("BITS"),
               cgiGetVariable("PARITY"), cgiGetVariable("FLOW"));
@@ -1881,7 +1861,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
         if ((end = strstr(start, "\n")) == NULL)
          end = start + strlen(start);
 
-      cupsFileWrite(temp, start, end - start);
+      cupsFileWrite(temp, start, (size_t)(end - start));
       cupsFilePutChar(temp, '\n');
 
       if (*end == '\r')
@@ -2006,9 +1986,9 @@ do_config_server(http_t *http)            /* I - HTTP connection */
     * Allocate memory and load the file into a string buffer...
     */
 
-    if ((buffer = calloc(1, info.st_size + 1)) != NULL)
+    if ((buffer = calloc(1, (size_t)info.st_size + 1)) != NULL)
     {
-      cupsFileRead(cupsd, buffer, info.st_size);
+      cupsFileRead(cupsd, buffer, (size_t)info.st_size);
       cgiSetVariable("CUPSDCONF", buffer);
       free(buffer);
     }
@@ -2025,7 +2005,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
     if (!stat(filename, &info) && info.st_size < (1024 * 1024) &&
         (cupsd = cupsFileOpen(filename, "r")) != NULL)
     {
-      if ((buffer = calloc(1, 2 * info.st_size + 1)) != NULL)
+      if ((buffer = calloc(1, 2 * (size_t)info.st_size + 1)) != NULL)
       {
        bufend = buffer + 2 * info.st_size - 1;
 
@@ -2035,7 +2015,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
          if (ch == '\\' || ch == '\"')
          {
            *bufptr++ = '\\';
-           *bufptr++ = ch;
+           *bufptr++ = (char)ch;
          }
          else if (ch == '\n')
          {
@@ -2048,7 +2028,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
            *bufptr++ = 't';
          }
          else if (ch >= ' ')
-           *bufptr++ = ch;
+           *bufptr++ = (char)ch;
        }
 
        *bufptr = '\0';
@@ -3882,7 +3862,7 @@ do_set_sharing(http_t *http)              /* I - HTTP connection */
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
                NULL, uri);
 
-  ippAddBoolean(request, IPP_TAG_OPERATION, "printer-is-shared", atoi(shared));
+  ippAddBoolean(request, IPP_TAG_OPERATION, "printer-is-shared", (char)atoi(shared));
 
  /*
   * Do the request and get back a response...
index 6f2fd58..3217bb1 100644 (file)
@@ -1,23 +1,16 @@
 /*
  * "$Id$"
  *
- *   Class status CGI for CUPS.
+ * Class status CGI for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2006 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2006 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   main()             - Main entry for CGI.
- *   do_class_op()      - Do a class operation.
- *   show_all_classes() - Show all classes...
- *   show_class()       - Show a single class.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -42,8 +35,7 @@ static void   show_class(http_t *http, const char *printer);
  */
 
 int                                    /* O - Exit status */
-main(int  argc,                                /* I - Number of command-line arguments */
-     char *argv[])                     /* I - Command-line arguments */
+main(void)
 {
   const char   *pclass;                /* Class name */
   const char   *user;                  /* Username */
index 801f088..c63e21c 100644 (file)
@@ -1,34 +1,16 @@
 /*
  * "$Id$"
  *
- *   Online help index routines for CUPS.
+ * Online help index routines for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   helpDeleteIndex()          - Delete an index, freeing all memory used.
- *   helpFindNode()             - Find a node in an index.
- *   helpLoadIndex()            - Load a help index from disk.
- *   helpSaveIndex()            - Save a help index to disk.
- *   helpSearchIndex()          - Search an index.
- *   help_add_word()            - Add a word to a node.
- *   help_compile_search()      - Convert a search string into a regular expression.
- *   help_delete_node()         - Free all memory used by a node.
- *   help_delete_word()         - Free all memory used by a word.
- *   help_load_directory()      - Load a directory of files into an index.
- *   help_load_file()           - Load a HTML files into an index.
- *   help_new_node()            - Create a new node and add it to an index.
- *   help_sort_nodes_by_name()  - Sort nodes by section, filename, and anchor.
- *   help_sort_nodes_by_score() - Sort nodes by score and text.
- *   help_sort_words()          - Sort words alphabetically.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -346,7 +328,7 @@ helpLoadIndex(const char *hifile,   /* I - Index filename */
            mtime = strtol(ptr, &ptr, 10);
 
          offset = strtoll(ptr, &ptr, 10);
-         length = strtoll(ptr, &ptr, 10);
+         length = (size_t)strtoll(ptr, &ptr, 10);
 
          while (isspace(*ptr & 255))
             ptr ++;
@@ -1019,14 +1001,14 @@ help_load_file(
 
         *ptr++ = ' ';
 
-        if (!cupsFileGets(fp, ptr, sizeof(line) - (ptr - line) - 1))
+        if (!cupsFileGets(fp, ptr, sizeof(line) - (size_t)(ptr - line) - 1))
          break;
       }
 
       *ptr = '\0';
 
       if (node)
-       node->length = offset - node->offset;
+       node->length = (size_t)(offset - node->offset);
 
       if (!*text)
       {
@@ -1179,7 +1161,7 @@ help_load_file(
 
        for (text = ptr, ptr ++; *ptr && isalnum(*ptr & 255); ptr ++);
 
-       wordlen = ptr - text;
+       wordlen = (int)(ptr - text);
 
         memcpy(temp, text, wordlen);
        temp[wordlen] = '\0';
@@ -1206,7 +1188,7 @@ help_load_file(
   cupsFileClose(fp);
 
   if (node)
-    node->length = offset - node->offset;
+    node->length = (size_t)(offset - node->offset);
 
   return (0);
 }
index 38120da..46fdfab 100644 (file)
@@ -1,31 +1,16 @@
 /*
  * "$Id$"
  *
- *   CGI <-> IPP variable routines for CUPS.
+ * CGI <-> IPP variable routines for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   cgiGetAttributes()    - Get the list of attributes that are needed by the
- *                           template file.
- *   cgiGetIPPObjects()    - Get the objects in an IPP response.
- *   cgiMoveJobs()         - Move one or more jobs.
- *   cgiPrintCommand()     - Print a CUPS command job.
- *   cgiPrintTestPage()    - Print a test page.
- *   cgiRewriteURL()       - Rewrite a printer URI into a web browser URL...
- *   cgiSetIPPObjectVars() - Set CGI variables from an IPP object.
- *   cgiSetIPPVars()       - Set CGI variables from an IPP response.
- *   cgiShowIPPError()     - Show the last IPP error message.
- *   cgiShowJobs()         - Show print jobs.
- *   cgiText()             - Return localized text.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -65,7 +50,7 @@ cgiGetAttributes(ipp_t      *request, /* I - IPP request */
   {
     for (i = 0; lang[i] && i < 15; i ++)
       if (isalnum(lang[i] & 255))
-        locale[i] = tolower(lang[i]);
+        locale[i] = (char)tolower(lang[i]);
       else
         locale[i] = '_';
 
@@ -107,7 +92,7 @@ cgiGetAttributes(ipp_t      *request,        /* I - IPP request */
   while ((ch = getc(in)) != EOF)
     if (ch == '\\')
       getc(in);
-    else if (ch == '{' && num_attrs < (sizeof(attrs) / sizeof(attrs[0])))
+    else if (ch == '{' && num_attrs < (int)(sizeof(attrs) / sizeof(attrs[0])))
     {
      /*
       * Grab the name...
@@ -123,7 +108,7 @@ cgiGetAttributes(ipp_t      *request,       /* I - IPP request */
          if (ch == '_')
            *nameptr++ = '-';
          else
-            *nameptr++ = ch;
+            *nameptr++ = (char)ch;
        }
 
       *nameptr = '\0';
@@ -1039,7 +1024,7 @@ cgiSetIPPObjectVars(
          *valptr++ = ' ';
         }
 
-        remaining = sizeof(value) - (valptr - value);
+        remaining = sizeof(value) - (size_t)(valptr - value);
 
         if (!strcmp(attr->values[i].string.text, "printer-stopped"))
          strlcpy(valptr, _("Printer Paused"), remaining);
@@ -1177,7 +1162,7 @@ cgiSetIPPObjectVars(
     for (i = 0; i < attr->num_values; i ++)
     {
       if (i)
-       strlcat(valptr, ", ", sizeof(value) - (valptr - value));
+       strlcat(valptr, ", ", sizeof(value) - (size_t)(valptr - value));
 
       valptr += strlen(valptr);
 
@@ -1192,30 +1177,30 @@ cgiSetIPPObjectVars(
               t    = (time_t)attr->values[i].integer;
              date = localtime(&t);
 
-             strftime(valptr, sizeof(value) - (valptr - value), "%c", date);
+             strftime(valptr, sizeof(value) - (size_t)(valptr - value), "%c", date);
            }
            else
-             snprintf(valptr, sizeof(value) - (valptr - value),
+             snprintf(valptr, sizeof(value) - (size_t)(valptr - value),
                       "%d", attr->values[i].integer);
            break;
 
        case IPP_TAG_BOOLEAN :
-           snprintf(valptr, sizeof(value) - (valptr - value),
+           snprintf(valptr, sizeof(value) - (size_t)(valptr - value),
                     "%d", attr->values[i].boolean);
            break;
 
        case IPP_TAG_NOVALUE :
-           strlcat(valptr, "novalue", sizeof(value) - (valptr - value));
+           strlcat(valptr, "novalue", sizeof(value) - (size_t)(valptr - value));
            break;
 
        case IPP_TAG_RANGE :
-           snprintf(valptr, sizeof(value) - (valptr - value),
+           snprintf(valptr, sizeof(value) - (size_t)(valptr - value),
                     "%d-%d", attr->values[i].range.lower,
                     attr->values[i].range.upper);
            break;
 
        case IPP_TAG_RESOLUTION :
-           snprintf(valptr, sizeof(value) - (valptr - value),
+           snprintf(valptr, sizeof(value) - (size_t)(valptr - value),
                     "%dx%d%s", attr->values[i].resolution.xres,
                     attr->values[i].resolution.yres,
                     attr->values[i].resolution.units == IPP_RES_PER_INCH ?
@@ -1238,13 +1223,13 @@ cgiSetIPPObjectVars(
                cgiRewriteURL(attr->values[i].string.text, url,
                              sizeof(url), NULL);
 
-                snprintf(valptr, sizeof(value) - (valptr - value),
+                snprintf(valptr, sizeof(value) - (size_t)(valptr - value),
                         "<A HREF=\"%s\">%s</A>", url,
                         strrchr(attr->values[i].string.text, '/') + 1);
              }
              else
                cgiRewriteURL(attr->values[i].string.text, valptr,
-                             sizeof(value) - (valptr - value), NULL);
+                             (int)(sizeof(value) - (size_t)(valptr - value)), NULL);
               break;
             }
 
@@ -1256,7 +1241,7 @@ cgiSetIPPObjectVars(
        case IPP_TAG_LANGUAGE :
        case IPP_TAG_MIMETYPE :
            strlcat(valptr, attr->values[i].string.text,
-                   sizeof(value) - (valptr - value));
+                   sizeof(value) - (size_t)(valptr - value));
            break;
 
         case IPP_TAG_BEGIN_COLLECTION :
index e57b021..35f913c 100644 (file)
@@ -1,21 +1,16 @@
 /*
  * "$Id$"
  *
- *   Job status CGI for CUPS.
+ * Job status CGI for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2006 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2006 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   main()      - Main entry for CGI.
- *   do_job_op() - Do a job operation.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -37,8 +32,7 @@ static void   do_job_op(http_t *http, int job_id, ipp_op_t op);
  */
 
 int                                    /* O - Exit status */
-main(int  argc,                                /* I - Number of command-line arguments */
-     char *argv[])                     /* I - Command-line arguments */
+main(void)
 {
   http_t       *http;                  /* Connection to the server */
   const char   *op;                    /* Operation name */
index 37b0f55..7b9e955 100644 (file)
@@ -1,23 +1,16 @@
 /*
  * "$Id$"
  *
- *   Printer status CGI for CUPS.
+ * Printer status CGI for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2006 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2006 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   main()              - Main entry for CGI.
- *   do_printer_op()     - Do a printer operation.
- *   show_all_printers() - Show all printers...
- *   show_printer()      - Show a single printer.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -43,8 +36,7 @@ static void   show_printer(http_t *http, const char *printer);
  */
 
 int                                    /* O - Exit status */
-main(int  argc,                                /* I - Number of command-line arguments */
-     char *argv[])                     /* I - Command-line arguments */
+main(void)
 {
   const char   *printer;               /* Printer name */
   const char   *user;                  /* Username */
index a6abd59..b475d96 100644 (file)
@@ -1,22 +1,16 @@
 /*
  * "$Id$"
  *
- *   Search routines for CUPS.
+ * Search routines for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2006 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2006 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   cgiCompileSearch() - Compile a search string.
- *   cgiDoSearch()      - Do a search of some text.
- *   cgiFreeSearch()    - Free a compiled search context.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -38,12 +32,12 @@ cgiCompileSearch(const char *query) /* I - Query string */
   char         *s,                     /* Regular expression string */
                *sptr,                  /* Pointer into RE string */
                *sword;                 /* Pointer to start of word */
-  int          slen;                   /* Allocated size of RE string */
+  size_t       slen;                   /* Allocated size of RE string */
   const char   *qptr,                  /* Pointer into query string */
                *qend;                  /* End of current word */
   const char   *prefix;                /* Prefix to add to next word */
   int          quoted;                 /* Word is quoted */
-  int          wlen;                   /* Word length */
+  size_t       wlen;                   /* Word length */
   char         *lword;                 /* Last word in query */
 
 
@@ -139,7 +133,7 @@ cgiCompileSearch(const char *query) /* I - Query string */
       for (qend = qptr + 1; *qend && !isspace(*qend); qend ++);
     }
 
-    wlen = qend - qptr;
+    wlen = (size_t)(qend - qptr);
 
    /*
     * Look for logic words: AND, OR
@@ -174,7 +168,7 @@ cgiCompileSearch(const char *query) /* I - Query string */
       * string + RE overhead...
       */
 
-      wlen = (sptr - s) + 2 * 4 * wlen + 2 * strlen(prefix) + 11;
+      wlen = (size_t)(sptr - s) + 2 * 4 * wlen + 2 * strlen(prefix) + 11;
       if (lword)
         wlen += strlen(lword);
 
index cdf1544..faa5d59 100644 (file)
@@ -1,27 +1,16 @@
 /*
  * "$Id$"
  *
- *   CGI template function.
+ * CGI template function.
  *
- *   Copyright 2007-2011 by Apple Inc.
- *   Copyright 1997-2006 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2006 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   cgiCopyTemplateFile() - Copy a template file and replace all the
- *                           '{variable}' strings with the variable value.
- *   cgiCopyTemplateLang() - Copy a template file using a language...
- *   cgiGetTemplateDir()   - Get the templates directory...
- *   cgiSetServerVersion() - Set the server name and CUPS version...
- *   cgi_copy()            - Copy the template file, substituting as needed...
- *   cgi_puts()            - Put a string to the output file, quoting as
- *                           needed...
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 #include "cgi-private.h"
@@ -266,7 +255,7 @@ cgi_copy(FILE *out,                 /* I - Output file */
         else if (s > name && ch == '?')
          break;
        else if (s < (name + sizeof(name) - 1))
-          *s++ = ch;
+          *s++ = (char)ch;
 
       *s = '\0';
 
@@ -443,7 +432,7 @@ cgi_copy(FILE *out,                 /* I - Output file */
       *   {name~refex?true:false}    Regex match
       */
 
-      op = ch;
+      op = (char)ch;
 
       if (ch == '?')
       {
@@ -486,7 +475,7 @@ cgi_copy(FILE *out,                 /* I - Output file */
            innerptr = innername;
            while ((ch = getc(in)) != EOF && ch != '}')
              if (innerptr < (innername + sizeof(innername) - 1))
-               *innerptr++ = ch;
+               *innerptr++ = (char)ch;
            *innerptr = '\0';
 
             if (innername[0] == '#')
@@ -498,26 +487,26 @@ cgi_copy(FILE *out,                       /* I - Output file */
              if ((innerval = cgiGetArray(innername, atoi(innerptr) - 1)) == NULL)
                *s = '\0';
              else
-               strlcpy(s, innerval, sizeof(compare) - (s - compare));
+               strlcpy(s, innerval, sizeof(compare) - (size_t)(s - compare));
            }
            else if (innername[0] == '?')
            {
              if ((innerval = cgiGetArray(innername + 1, element)) == NULL)
                *s = '\0';
              else
-               strlcpy(s, innerval, sizeof(compare) - (s - compare));
+               strlcpy(s, innerval, sizeof(compare) - (size_t)(s - compare));
             }
            else if ((innerval = cgiGetArray(innername, element)) == NULL)
-             snprintf(s, sizeof(compare) - (s - compare), "{%s}", innername);
+             snprintf(s, sizeof(compare) - (size_t)(s - compare), "{%s}", innername);
            else
-             strlcpy(s, innerval, sizeof(compare) - (s - compare));
+             strlcpy(s, innerval, sizeof(compare) - (size_t)(s - compare));
 
             s += strlen(s);
          }
           else if (ch == '\\')
-           *s++ = getc(in);
+           *s++ = (char)getc(in);
          else
-            *s++ = ch;
+            *s++ = (char)ch;
 
         *s = '\0';
 
index dfda3d7..ca01582 100644 (file)
@@ -1,21 +1,16 @@
 /*
  * "$Id$"
  *
- *   CGI test program for CUPS.
+ * CGI test program for CUPS.
  *
- *   Copyright 2007-2011 by Apple Inc.
- *   Copyright 1997-2005 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2005 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   main()       - Test the help index code.
- *   list_nodes() - List nodes in an array...
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -30,8 +25,7 @@
  */
 
 int                                    /* O - Exit status */
-main(int  argc,                                /* I - Number of command-line arguments */
-     char *argv[])                     /* I - Command-line arguments */
+main(void)
 {
  /*
   * Test file upload/multi-part submissions...
index 660c8bb..90ab8bb 100644 (file)
@@ -1,49 +1,20 @@
 /*
  * "$Id$"
  *
- *   CGI form variable and array functions for CUPS.
+ * CGI form variable and array functions for CUPS.
  *
- *   Copyright 2007-2011 by Apple Inc.
- *   Copyright 1997-2005 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2005 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   cgiCheckVariables()        - Check for the presence of "required"
- *                                variables.
- *   cgiClearVariables()        - Clear all form variables.
- *   cgiGetArray()              - Get an element from a form array.
- *   cgiGetCookie()             - Get a cookie value.
- *   cgiGetFile()               - Get the file (if any) that was submitted in
- *                                the form.
- *   cgiGetSize()               - Get the size of a form array value.
- *   cgiGetVariable()           - Get a CGI variable from the database.
- *   cgiInitialize()            - Initialize the CGI variable "database".
- *   cgiIsPOST()                - Determine whether this page was POSTed.
- *   cgiSetArray()              - Set array element N to the specified string.
- *   cgiSetCookie()             - Set a cookie value.
- *   cgiSetSize()               - Set the array size.
- *   cgiSetVariable()           - Set a CGI variable in the database.
- *   cgi_add_variable()         - Add a form variable.
- *   cgi_compare_variables()    - Compare two variables.
- *   cgi_find_variable()        - Find a variable.
- *   cgi_initialize_cookies()   - Initialize cookies.
- *   cgi_initialize_get()       - Initialize form variables using the GET
- *                                method.
- *   cgi_initialize_multipart() - Initialize variables and file using the POST
- *                                method.
- *   cgi_initialize_post()      - Initialize variables using the POST method.
- *   cgi_initialize_string()    - Initialize form variables from a string.
- *   cgi_passwd()               - Catch authentication requests and notify the
- *                                server.
- *   cgi_set_sid()              - Set the CUPS session ID.
- *   cgi_sort_variables()       - Sort all form variables for faster lookup.
- *   cgi_unlink_file()          - Remove the uploaded form.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
+ */
+
+/*
+ * Include necessary headers...
  */
 
 /*#define DEBUG*/
@@ -417,7 +388,7 @@ cgiSetArray(const char *name,               /* I - Name of variable */
       const char **temp;               /* Temporary pointer */
 
       temp = (const char **)realloc((void *)(var->values),
-                                    sizeof(char *) * (element + 16));
+                                    sizeof(char *) * (size_t)(element + 16));
       if (!temp)
         return;
 
@@ -495,7 +466,7 @@ cgiSetSize(const char *name,                /* I - Name of variable */
     const char **temp;                 /* Temporary pointer */
 
     temp = (const char **)realloc((void *)(var->values),
-                                 sizeof(char *) * (size + 16));
+                                 sizeof(char *) * (size_t)(size + 16));
     if (!temp)
       return;
 
@@ -581,7 +552,7 @@ cgi_add_variable(const char *name,  /* I - Variable name */
     if (form_alloc == 0)
       temp_vars = malloc(sizeof(_cgi_var_t) * 16);
     else
-      temp_vars = realloc(form_vars, (form_alloc + 16) * sizeof(_cgi_var_t));
+      temp_vars = realloc(form_vars, (size_t)(form_alloc + 16) * sizeof(_cgi_var_t));
 
     if (!temp_vars)
       return;
@@ -592,7 +563,7 @@ cgi_add_variable(const char *name,  /* I - Variable name */
 
   var = form_vars + form_count;
 
-  if ((var->values = calloc(element + 1, sizeof(char *))) == NULL)
+  if ((var->values = calloc((size_t)element + 1, sizeof(char *))) == NULL)
     return;
 
   var->name            = _cupsStrAlloc(name);
@@ -632,7 +603,7 @@ cgi_find_variable(const char *name) /* I - Name of variable */
 
   key.name = name;
 
-  return ((_cgi_var_t *)bsearch(&key, form_vars, form_count, sizeof(_cgi_var_t),
+  return ((_cgi_var_t *)bsearch(&key, form_vars, (size_t)form_count, sizeof(_cgi_var_t),
                            (int (*)(const void *, const void *))cgi_compare_variables));
 }
 
@@ -769,8 +740,8 @@ cgi_initialize_multipart(
                *ptr,                   /* Pointer into name/filename */
                *end;                   /* End of buffer */
   int          ch,                     /* Character from file */
-               fd,                     /* Temporary file descriptor */
-               blen;                   /* Length of boundary string */
+               fd;                     /* Temporary file descriptor */
+  size_t       blen;                   /* Length of boundary string */
 
 
   DEBUG_printf(("cgi_initialize_multipart(boundary=\"%s\")\n", boundary));
@@ -835,15 +806,15 @@ cgi_initialize_multipart(
 
        while ((ch = getchar()) != EOF)
        {
-         *ptr++ = ch;
+         *ptr++ = (char)ch;
 
-          if ((ptr - line) >= blen && !memcmp(ptr - blen, bstring, blen))
+          if ((size_t)(ptr - line) >= blen && !memcmp(ptr - blen, bstring, blen))
          {
            ptr -= blen;
            break;
          }
 
-          if ((ptr - line - blen) >= 8192)
+          if ((ptr - line - (int)blen) >= 8192)
          {
           /*
            * Write out the first 8k of the buffer...
@@ -860,7 +831,7 @@ cgi_initialize_multipart(
        */
 
        if (ptr > line)
-          write(fd, line, ptr - line);
+          write(fd, line, (size_t)(ptr - line));
 
        close(fd);
       }
@@ -877,9 +848,9 @@ cgi_initialize_multipart(
        while ((ch = getchar()) != EOF)
        {
          if (ptr < end)
-           *ptr++ = ch;
+           *ptr++ = (char)ch;
 
-          if ((ptr - line) >= blen && !memcmp(ptr - blen, bstring, blen))
+          if ((size_t)(ptr - line) >= blen && !memcmp(ptr - blen, bstring, blen))
          {
            ptr -= blen;
            break;
@@ -979,12 +950,12 @@ cgi_initialize_multipart(
 static int                             /* O - 1 if form data was read */
 cgi_initialize_post(void)
 {
-  char *content_length,                /* Length of input data (string) */
-       *data;                          /* Pointer to form data string */
-  int  length,                         /* Length of input data */
-       nbytes,                         /* Number of bytes read this read() */
-       tbytes,                         /* Total number of bytes read */
-       status;                         /* Return status */
+  char         *content_length,        /* Length of input data (string) */
+               *data;                  /* Pointer to form data string */
+  size_t       length,                 /* Length of input data */
+               tbytes;                 /* Total number of bytes read */
+  ssize_t      nbytes;                 /* Number of bytes read this read() */
+  int          status;                 /* Return status */
 
 
   DEBUG_puts("cgi_initialize_post: Initializing variables using POST method...");
@@ -1001,7 +972,7 @@ cgi_initialize_post(void)
   * Get the length of the input stream and allocate a buffer for it...
   */
 
-  length = atoi(content_length);
+  length = (size_t)strtol(content_length, NULL, 10);
   data   = malloc(length + 1);
 
   if (data == NULL)
@@ -1011,8 +982,8 @@ cgi_initialize_post(void)
   * Read the data into the buffer...
   */
 
-  for (tbytes = 0; tbytes < length; tbytes += nbytes)
-    if ((nbytes = read(0, data + tbytes, length - tbytes)) < 0)
+  for (tbytes = 0; tbytes < length; tbytes += (size_t)nbytes)
+    if ((nbytes = read(0, data + tbytes, (size_t)(length - tbytes))) < 0)
     {
       if (errno != EAGAIN)
       {
@@ -1126,7 +1097,7 @@ cgi_initialize_string(const char *data)   /* I - Form data string */
               ch = *data - '0';
               if (ch > 9)
                ch -= 7;
-              *s = ch << 4;
+              *s = (char)(ch << 4);
 
               data ++;
               ch = *data - '0';
@@ -1264,7 +1235,7 @@ cgi_sort_variables(void)
   if (form_count < 2)
     return;
 
-  qsort(form_vars, form_count, sizeof(_cgi_var_t),
+  qsort(form_vars, (size_t)form_count, sizeof(_cgi_var_t),
         (int (*)(const void *, const void *))cgi_compare_variables);
 
 #ifdef DEBUG
diff --git a/cgi-bin/websearch.c b/cgi-bin/websearch.c
deleted file mode 100644 (file)
index 351f92d..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * "$Id$"
- *
- *   Web search program for www.cups.org.
- *
- *   Copyright 2007-2009 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
- *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Usage:
- *
- *   websearch directory "search string"
- *
- * Contents:
- *
- *   main()       - Search a directory of help files.
- *   list_nodes() - List matching nodes.
- */
-
-/*
- * Include necessary headers...
- */
-
-#include "cgi.h"
-
-
-/*
- * Local functions...
- */
-
-static void    list_nodes(help_index_t *hi, const char *title,
-                          cups_array_t *nodes);
-
-
-/*
- * 'main()' - Test the help index code.
- */
-
-int                                    /* O - Exit status */
-main(int  argc,                                /* I - Number of command-line args */
-     char *argv[])                     /* I - Command-line arguments */
-{
-  help_index_t *hi,                    /* Help index */
-               *search;                /* Search index */
-  char         indexname[1024];        /* Name of index file */
-
-
-  if (argc != 3)
-  {
-    puts("Usage: websearch directory \"search terms\"");
-    return (1);
-  }
-
- /*
-  * Load the help index...
-  */
-
-  snprintf(indexname, sizeof(indexname), "%s/.index", argv[1]);
-  hi = helpLoadIndex(indexname, argv[1]);
-
- /*
-  * Do any searches...
-  */
-
-  search = helpSearchIndex(hi, argv[2], NULL, NULL);
-
-  if (search)
-    list_nodes(hi, argv[1], search->sorted);
-
- /*
-  * Return with no errors...
-  */
-
-  return (0);
-}
-
-
-/*
- * 'list_nodes()' - List nodes in an array...
- */
-
-static void
-list_nodes(help_index_t *hi,           /* I - Help index */
-           const char   *title,                /* I - Title string */
-          cups_array_t *nodes)         /* I - Nodes */
-{
-  help_node_t  *node,                  /* Current node */
-               *file;                  /* File node */
-
-
-  printf("%d\n", cupsArrayCount(nodes));
-  for (node = (help_node_t *)cupsArrayFirst(nodes);
-       node;
-       node = (help_node_t *)cupsArrayNext(nodes))
-  {
-    if (node->anchor)
-    {
-      file = helpFindNode(hi, node->filename, NULL);
-      printf("%d|%s#%s|%s|%s\n", node->score, node->filename, node->anchor,
-             node->text, file ? file->text : node->filename);
-    }
-    else
-      printf("%d|%s|%s|%s\n", node->score, node->filename, node->text,
-             node->text);
-  }
-}
-
-
-/*
- * End of "$Id$".
- */
index 8d84a4b..33c1f47 100644 (file)
@@ -154,20 +154,20 @@ if test -n "$GCC"; then
 
        if test "x$with_optim" = x; then
                # Add useful warning options for tracking down problems...
-               OPTIM="-Wall -Wno-format-y2k -Wunused $OPTIM"
+               OPTIM="-Wall -Wno-format-y2k -Wsign-conversion -Wunused $OPTIM"
+
+               AC_MSG_CHECKING(if GCC supports -Wno-tautological-compare)
+               OLDCFLAGS="$CFLAGS"
+               CFLAGS="$CFLAGS -Werror -Wno-tautological-compare"
+               AC_TRY_COMPILE(,,
+                       [OPTIM="$OPTIM -Wno-tautological-compare"
+                       AC_MSG_RESULT(yes)],
+                       AC_MSG_RESULT(no))
+               CFLAGS="$OLDCFLAGS"
 
                # Additional warning options for development testing...
                if test -d .svn; then
-                       OPTIM="-Wshadow -Werror $OPTIM"
-               else
-                       AC_MSG_CHECKING(if GCC supports -Wno-tautological-compare)
-                       OLDCFLAGS="$CFLAGS"
-                       CFLAGS="$CFLAGS -Werror -Wno-tautological-compare"
-                       AC_TRY_COMPILE(,,
-                               [OPTIM="$OPTIM -Wno-tautological-compare"
-                               AC_MSG_RESULT(yes)],
-                               AC_MSG_RESULT(no))
-                       CFLAGS="$OLDCFLAGS"
+                       OPTIM="-Werror $OPTIM"
                fi
        fi
 
index a84a536..6a50fbe 100644 (file)
@@ -1,29 +1,18 @@
 /*
  * "$Id$"
  *
- *   Administration utility API definitions for CUPS.
+ * Administration utility API definitions for CUPS.
  *
- *   Copyright 2007-2013 by Apple Inc.
- *   Copyright 2001-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 2001-2007 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsAdminCreateWindowsPPD()  - Create the Windows PPD file for a printer.
- *   cupsAdminExportSamba()       - Export a printer to Samba.
- *   cupsAdminGetServerSettings() - Get settings from the server.
- *   cupsAdminSetServerSettings() - Set settings on the server.
- *   do_samba_command()           - Do a SAMBA command.
- *   get_cupsd_conf()             - Get the current cupsd.conf file.
- *   invalidate_cupsd_cache()     - Invalidate the cached cupsd.conf settings.
- *   write_option()               - Write a CUPS option to a PPD file.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -319,7 +308,7 @@ cupsAdminCreateWindowsPPD(
        }
       }
 
-      snprintf(ptr + 1, sizeof(line) - (ptr - line + 1),
+      snprintf(ptr + 1, sizeof(line) - (size_t)(ptr - line + 1),
                "%%cupsJobTicket: %s=%s\n\"\n*End", option, choice);
 
       cupsFilePrintf(dstfp, "*%% Changed for CUPS Windows Driver...\n%s\n",
index 9fbba62..0f04eab 100644 (file)
@@ -1,50 +1,18 @@
 /*
  * "$Id$"
  *
- *   Sorted array routines for CUPS.
+ * Sorted array routines for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsArrayAdd()         - Add an element to the array.
- *   _cupsArrayAddStrings() - Add zero or more comma-delimited strings to an
- *                            array.
- *   cupsArrayClear()       - Clear the array.
- *   cupsArrayCount()       - Get the number of elements in the array.
- *   cupsArrayCurrent()     - Return the current element in the array.
- *   cupsArrayDelete()      - Free all memory used by the array.
- *   cupsArrayDup()         - Duplicate the array.
- *   cupsArrayFind()        - Find an element in the array.
- *   cupsArrayFirst()       - Get the first element in the array.
- *   cupsArrayGetIndex()    - Get the index of the current element.
- *   cupsArrayGetInsert()   - Get the index of the last inserted element.
- *   cupsArrayIndex()       - Get the N-th element in the array.
- *   cupsArrayInsert()      - Insert an element in the array.
- *   cupsArrayLast()        - Get the last element in the array.
- *   cupsArrayNew()         - Create a new array.
- *   cupsArrayNew2()        - Create a new array with hash.
- *   cupsArrayNew3()        - Create a new array with hash and/or free function.
- *   _cupsArrayNewStrings() - Create a new array of comma-delimited strings.
- *   cupsArrayNext()        - Get the next element in the array.
- *   cupsArrayPrev()        - Get the previous element in the array.
- *   cupsArrayRemove()      - Remove an element from the array.
- *   cupsArrayRestore()     - Reset the current element to the last @link
- *                            cupsArraySave@.
- *   cupsArraySave()        - Mark the current element for a later @link
- *                            cupsArrayRestore@.
- *   cupsArrayUserData()    - Return the user data for an array.
- *   cups_array_add()       - Insert or append an element to the array.
- *   cups_array_find()      - Find an element in the array.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -423,7 +391,7 @@ cupsArrayDup(cups_array_t *a)               /* I - Array */
     * Allocate memory for the elements...
     */
 
-    da->elements = malloc(a->num_elements * sizeof(void *));
+    da->elements = malloc((size_t)a->num_elements * sizeof(void *));
     if (!da->elements)
     {
       free(da);
@@ -451,7 +419,7 @@ cupsArrayDup(cups_array_t *a)               /* I - Array */
       * Just copy raw pointers...
       */
 
-      memcpy(da->elements, a->elements, a->num_elements * sizeof(void *));
+      memcpy(da->elements, a->elements, (size_t)a->num_elements * sizeof(void *));
     }
 
     da->num_elements   = a->num_elements;
@@ -794,7 +762,7 @@ cupsArrayNew3(cups_array_func_t  f, /* I - Comparison function or @code NULL@ fo
   {
     a->hashfunc  = h;
     a->hashsize  = hsize;
-    a->hash      = malloc(hsize * sizeof(int));
+    a->hash      = malloc((size_t)hsize * sizeof(int));
 
     if (!a->hash)
     {
@@ -802,7 +770,7 @@ cupsArrayNew3(cups_array_func_t  f, /* I - Comparison function or @code NULL@ fo
       return (NULL);
     }
 
-    memset(a->hash, -1, hsize * sizeof(int));
+    memset(a->hash, -1, (size_t)hsize * sizeof(int));
   }
 
   a->copyfunc = cf;
@@ -918,9 +886,9 @@ int                                 /* O - 1 on success, 0 on failure */
 cupsArrayRemove(cups_array_t *a,       /* I - Array */
                 void         *e)       /* I - Element */
 {
-  int  i,                              /* Looping var */
-       current,                        /* Current element */
-       diff;                           /* Difference */
+  ssize_t      i,                      /* Looping var */
+               current;                /* Current element */
+  int          diff;                   /* Difference */
 
 
  /*
@@ -952,7 +920,7 @@ cupsArrayRemove(cups_array_t *a,    /* I - Array */
 
   if (current < a->num_elements)
     memmove(a->elements + current, a->elements + current + 1,
-            (a->num_elements - current) * sizeof(void *));
+            (size_t)(a->num_elements - current) * sizeof(void *));
 
   if (current <= a->current)
     a->current --;
@@ -1053,9 +1021,9 @@ cups_array_add(cups_array_t *a,           /* I - Array */
                void         *e,                /* I - Element to add */
               int          insert)     /* I - 1 = insert, 0 = append */
 {
-  int  i,                              /* Looping var */
-       current,                        /* Current element */
-       diff;                           /* Comparison with current element */
+  int          i,                      /* Looping var */
+               current;                /* Current element */
+  int          diff;                   /* Comparison with current element */
 
 
   DEBUG_printf(("7cups_array_add(a=%p, e=%p, insert=%d)", a, e, insert));
@@ -1079,7 +1047,7 @@ cups_array_add(cups_array_t *a,           /* I - Array */
     if (a->alloc_elements == 0)
     {
       count = 16;
-      temp  = malloc(count * sizeof(void *));
+      temp  = malloc((size_t)count * sizeof(void *));
     }
     else
     {
@@ -1088,10 +1056,10 @@ cups_array_add(cups_array_t *a,         /* I - Array */
       else
         count = a->alloc_elements + 1024;
 
-      temp = realloc(a->elements, count * sizeof(void *));
+      temp = realloc(a->elements, (size_t)count * sizeof(void *));
     }
 
-    DEBUG_printf(("9cups_array_add: count=%d", count));
+    DEBUG_printf(("9cups_array_add: count=" CUPS_LLFMT, CUPS_LLCAST count));
 
     if (!temp)
     {
@@ -1181,7 +1149,7 @@ cups_array_add(cups_array_t *a,           /* I - Array */
     */
 
     memmove(a->elements + current + 1, a->elements + current,
-            (a->num_elements - current) * sizeof(void *));
+            (size_t)(a->num_elements - current) * sizeof(void *));
 
     if (a->current >= current)
       a->current ++;
@@ -1190,11 +1158,11 @@ cups_array_add(cups_array_t *a,         /* I - Array */
       if (a->saved[i] >= current)
        a->saved[i] ++;
 
-    DEBUG_printf(("9cups_array_add: insert element at index %d...", current));
+    DEBUG_printf(("9cups_array_add: insert element at index " CUPS_LLFMT, CUPS_LLCAST current));
   }
 #ifdef DEBUG
   else
-    DEBUG_printf(("9cups_array_add: append element at %d...", current));
+    DEBUG_printf(("9cups_array_add: append element at " CUPS_LLFMT, CUPS_LLCAST current));
 #endif /* DEBUG */
 
   if (a->copyfunc)
@@ -1213,8 +1181,7 @@ cups_array_add(cups_array_t *a,           /* I - Array */
 
 #ifdef DEBUG
   for (current = 0; current < a->num_elements; current ++)
-    DEBUG_printf(("9cups_array_add: a->elements[%d]=%p", current,
-                  a->elements[current]));
+    DEBUG_printf(("9cups_array_add: a->elements[" CUPS_LLFMT "]=%p", CUPS_LLCAST current, a->elements[current]));
 #endif /* DEBUG */
 
   DEBUG_puts("9cups_array_add: returning 1");
index 8efb34b..f002ea0 100644 (file)
@@ -1,32 +1,21 @@
 /*
  * "$Id$"
  *
- *   Authentication functions for CUPS.
+ * Authentication functions for CUPS.
  *
- *   Copyright 2007-2013 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products.
  *
- *   This file contains Kerberos support code, copyright 2006 by
- *   Jelmer Vernooij.
+ * This file contains Kerberos support code, copyright 2006 by
+ * Jelmer Vernooij.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsDoAuthentication()        - Authenticate a request.
- *   _cupsSetNegotiateAuthString() - Set the Kerberos authentication string.
- *   cups_gss_acquire()            - Kerberos credentials callback.
- *   cups_gss_getname()            - Get CUPS service credentials for
- *                                   authentication.
- *   cups_gss_printf()             - Show debug error messages from GSSAPI.
- *   cups_local_auth()             - Get the local authorization certificate if
- *                                   available/applicable.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -453,13 +442,13 @@ _cupsSetNegotiateAuthString(
     * arbitrarily large credentials...
     */
 
-    int authsize = 10 +                                /* "Negotiate " */
-                  output_token.length * 4 / 3 + 1 +    /* Base64 */
-                  1;                                   /* nul */
+    int authsize = 10 +                        /* "Negotiate " */
+                  (int)output_token.length * 4 / 3 + 1 + 1;
+                                       /* Base64 + nul */
 
     httpSetAuthString(http, NULL, NULL);
 
-    if ((http->authstring = malloc(authsize)) == NULL)
+    if ((http->authstring = malloc((size_t)authsize)) == NULL)
     {
       http->authstring = http->_authstring;
       authsize         = sizeof(http->_authstring);
@@ -467,7 +456,7 @@ _cupsSetNegotiateAuthString(
 
     strlcpy(http->authstring, "Negotiate ", authsize);
     httpEncode64_2(http->authstring + 10, authsize - 10, output_token.value,
-                  output_token.length);
+                  (int)output_token.length);
 
     gss_release_buffer(&minor_status, &output_token);
   }
index 7fa8c97..06a6d23 100644 (file)
@@ -1,24 +1,18 @@
 /*
  * "$Id$"
  *
- *   Backchannel functions for CUPS.
+ * Backchannel functions for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsBackChannelRead()  - Read data from the backchannel.
- *   cupsBackChannelWrite() - Write data to the backchannel.
- *   cups_setup()           - Setup select()
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -169,7 +163,7 @@ cupsBackChannelWrite(
       */
 
       buffer += count;
-      total  += count;
+      total  += (size_t)count;
     }
   }
 
index ae048d1..b3bdf52 100644 (file)
@@ -1,34 +1,20 @@
 /*
  * "$Id$"
  *
- *   Option marking routines for CUPS.
+ * Option marking routines for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   PostScript is a trademark of Adobe Systems, Inc.
+ * PostScript is a trademark of Adobe Systems, Inc.
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsGetConflicts()       - Get a list of conflicting options in a marked
- *                              PPD.
- *   cupsResolveConflicts()   - Resolve conflicts in a marked PPD.
- *   ppdConflicts()           - Check to see if there are any conflicts among
- *                              the marked option choices.
- *   ppdInstallableConflict() - Test whether an option choice conflicts with an
- *                              installable option.
- *   ppd_is_installable()     - Determine whether an option is in the
- *                              InstallableOptions group.
- *   ppd_load_constraints()   - Load constraints from a PPD file.
- *   ppd_test_constraints()   - See if any constraints are active.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -193,7 +179,7 @@ cupsResolveConflicts(
                        tries,          /* Number of tries */
                        num_newopts;    /* Number of new options */
   cups_option_t                *newopts;       /* New options */
-  cups_array_t         *active,        /* Active constraints */
+  cups_array_t         *active = NULL, /* Active constraints */
                        *pass,          /* Resolvers for this pass */
                        *resolvers,     /* Resolvers we have used */
                        *test;          /* Test array for conflicts */
@@ -886,7 +872,7 @@ ppd_load_constraints(ppd_file_t *ppd)       /* I - PPD file */
       return;
     }
 
-    if ((constptr = calloc(i, sizeof(_ppd_cups_uiconst_t))) == NULL)
+    if ((constptr = calloc((size_t)i, sizeof(_ppd_cups_uiconst_t))) == NULL)
     {
       free(consts);
       DEBUG_puts("8ppd_load_constraints: Unable to allocate memory for "
index 27ade63..f1352ee 100644 (file)
@@ -1,24 +1,17 @@
 /*
  * "$Id$"
  *
- *   Debugging functions for CUPS.
+ * Debugging functions for CUPS.
  *
- *   Copyright 2008-2012 by Apple Inc.
+ * Copyright 2008-2014 by Apple Inc.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   debug_vsnprintf()    - Format a string into a fixed size buffer.
- *   _cups_debug_printf() - Write a formatted line to the log.
- *   _cups_debug_puts()   - Write a single line to the log.
- *   _cups_debug_set()    - Enable or disable debug logging.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -92,7 +85,7 @@ debug_thread_id(void)
  * 'debug_vsnprintf()' - Format a string into a fixed size buffer.
  */
 
-static int                             /* O - Number of bytes formatted */
+static ssize_t                         /* O - Number of bytes formatted */
 debug_vsnprintf(char       *buffer,    /* O - Output buffer */
                 size_t     bufsize,    /* O - Size of output buffer */
                const char *format,     /* I - printf-style format string */
@@ -108,7 +101,7 @@ debug_vsnprintf(char       *buffer, /* O - Output buffer */
                *tptr,                  /* Pointer into temporary format */
                temp[1024];             /* Buffer for formatted numbers */
   char         *s;                     /* Pointer to string */
-  int          bytes;                  /* Total number of bytes needed */
+  ssize_t      bytes;                  /* Total number of bytes needed */
 
 
   if (!buffer || bufsize < 2 || !format)
@@ -149,7 +142,7 @@ debug_vsnprintf(char       *buffer, /* O - Output buffer */
        format ++;
        width = va_arg(ap, int);
 
-       snprintf(tptr, sizeof(tformat) - (tptr - tformat), "%d", width);
+       snprintf(tptr, sizeof(tformat) - (size_t)(tptr - tformat), "%d", width);
        tptr += strlen(tptr);
       }
       else
@@ -181,7 +174,7 @@ debug_vsnprintf(char       *buffer, /* O - Output buffer */
          format ++;
          prec = va_arg(ap, int);
 
-         snprintf(tptr, sizeof(tformat) - (tptr - tformat), "%d", prec);
+         snprintf(tptr, sizeof(tformat) - (size_t)(tptr - tformat), "%d", prec);
          tptr += strlen(tptr);
        }
        else
@@ -236,7 +229,7 @@ debug_vsnprintf(char       *buffer, /* O - Output buffer */
        case 'e' :
        case 'f' :
        case 'g' :
-           if ((width + 2) > sizeof(temp))
+           if ((size_t)(width + 2) > sizeof(temp))
              break;
 
            sprintf(temp, tformat, va_arg(ap, double));
@@ -258,7 +251,7 @@ debug_vsnprintf(char       *buffer, /* O - Output buffer */
        case 'o' :
        case 'u' :
        case 'x' :
-           if ((width + 2) > sizeof(temp))
+           if ((size_t)(width + 2) > sizeof(temp))
              break;
 
 #  ifdef HAVE_LONG_LONG
@@ -281,7 +274,7 @@ debug_vsnprintf(char       *buffer, /* O - Output buffer */
            break;
 
        case 'p' : /* Pointer value */
-           if ((width + 2) > sizeof(temp))
+           if ((size_t)(width + 2) > sizeof(temp))
              break;
 
            sprintf(temp, tformat, va_arg(ap, void *));
@@ -301,7 +294,7 @@ debug_vsnprintf(char       *buffer, /* O - Output buffer */
            if (bufptr)
            {
              if (width <= 1)
-               *bufptr++ = va_arg(ap, int);
+               *bufptr++ = (char)va_arg(ap, int);
              else
              {
                if ((bufptr + width) > bufend)
@@ -382,7 +375,7 @@ debug_vsnprintf(char       *buffer, /* O - Output buffer */
            break;
 
        case 'n' : /* Output number of chars so far */
-           *(va_arg(ap, int *)) = bytes;
+           *(va_arg(ap, int *)) = (int)bytes;
            break;
       }
     }
@@ -418,7 +411,7 @@ _cups_debug_printf(const char *format,      /* I - Printf-style format string */
   va_list              ap;             /* Pointer to arguments */
   struct timeval       curtime;        /* Current time */
   char                 buffer[2048];   /* Output buffer */
-  size_t               bytes;          /* Number of bytes in buffer */
+  ssize_t              bytes;          /* Number of bytes in buffer */
   int                  level;          /* Log level in message */
 
 
@@ -471,7 +464,7 @@ _cups_debug_printf(const char *format,      /* I - Printf-style format string */
   bytes = debug_vsnprintf(buffer + 19, sizeof(buffer) - 20, format, ap) + 19;
   va_end(ap);
 
-  if (bytes >= (sizeof(buffer) - 1))
+  if ((size_t)bytes >= (sizeof(buffer) - 1))
   {
     buffer[sizeof(buffer) - 2] = '\n';
     bytes = sizeof(buffer) - 1;
@@ -487,7 +480,7 @@ _cups_debug_printf(const char *format,      /* I - Printf-style format string */
   */
 
   _cupsMutexLock(&debug_log_mutex);
-  write(_cups_debug_fd, buffer, bytes);
+  write(_cups_debug_fd, buffer, (size_t)bytes);
   _cupsMutexUnlock(&debug_log_mutex);
 }
 
@@ -501,7 +494,7 @@ _cups_debug_puts(const char *s)             /* I - String to output */
 {
   struct timeval       curtime;        /* Current time */
   char                 buffer[2048];   /* Output buffer */
-  size_t               bytes;          /* Number of bytes in buffer */
+  ssize_t              bytes;          /* Number of bytes in buffer */
   int                  level;          /* Log level in message */
 
 
@@ -551,7 +544,7 @@ _cups_debug_puts(const char *s)             /* I - String to output */
                   (int)(curtime.tv_sec % 60), (int)(curtime.tv_usec / 1000),
                   s);
 
-  if (bytes >= (sizeof(buffer) - 1))
+  if ((size_t)bytes >= (sizeof(buffer) - 1))
   {
     buffer[sizeof(buffer) - 2] = '\n';
     bytes = sizeof(buffer) - 1;
@@ -567,7 +560,7 @@ _cups_debug_puts(const char *s)             /* I - String to output */
   */
 
   _cupsMutexLock(&debug_log_mutex);
-  write(_cups_debug_fd, buffer, bytes);
+  write(_cups_debug_fd, buffer, (size_t)bytes);
   _cupsMutexUnlock(&debug_log_mutex);
 }
 
index 85009fa..40f0412 100644 (file)
@@ -1,25 +1,17 @@
 /*
  * "$Id$"
  *
- *   Destination job support for CUPS.
+ * Destination job support for CUPS.
  *
- *   Copyright 2012-2013 by Apple Inc.
+ * Copyright 2012-2014 by Apple Inc.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsCancelDestJob()      - Cancel a job on a destination.
- *   cupsCloseDestJob()       - Close a job and start printing.
- *   cupsCreateDestJob()      - Create a job on a destination.
- *   cupsFinishDestDocument() - Finish the current document.
- *   cupsStartDestDocument()  - Start a new document.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -45,6 +37,12 @@ cupsCancelDestJob(http_t      *http, /* I - Connection to destination */
                   cups_dest_t *dest,   /* I - Destination */
                   int         job_id)  /* I - Job ID */
 {
+  /* TODO: Needs to be implemented! */
+  /* Probably also needs to be revved to accept cups_dinfo_t... */
+  (void)http;
+  (void)dest;
+  (void)job_id;
+
   return (IPP_STATUS_ERROR_NOT_FOUND);
 }
 
@@ -344,7 +342,7 @@ cupsStartDestDocument(
   if (format)
     ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE,
                  "document-format", NULL, format);
-  ippAddBoolean(request, IPP_TAG_OPERATION, "last-document", last_document);
+  ippAddBoolean(request, IPP_TAG_OPERATION, "last-document", (char)last_document);
 
   cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
   cupsEncodeOptions2(request, num_options, options, IPP_TAG_DOCUMENT);
index fefb0f9..1bd8324 100644 (file)
@@ -1,28 +1,17 @@
 /*
  * "$Id$"
  *
- *   Destination localization support for CUPS.
+ * Destination localization support for CUPS.
  *
- *   Copyright 2012-2013 by Apple Inc.
+ * Copyright 2012-2014 by Apple Inc.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsLocalizeDestOption()   - Get the localized string for a destination
- *                                option.
- *   cupsLocalizeDestValue()    - Get the localized string for a destination
- *                                option+value pair.
- *   cups_create_localizations() - Create the localizations array for a
- *                                destination.
- *   cups_read_strings()        - Read a pair of strings from a .strings file.
- *   cups_scan_strings()        - Scan a quoted string.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -356,8 +345,7 @@ cups_scan_strings(char *buffer)             /* I - Start of string */
        * Decode \nnn octal escape...
        */
 
-       *bufptr = ((((bufptr[1] - '0') << 3) | (bufptr[2] - '0')) << 3) |
-                 (bufptr[3] - '0');
+       *bufptr = (char)(((((bufptr[1] - '0') << 3) | (bufptr[2] - '0')) << 3) | (bufptr[3] - '0'));
        _cups_strcpy(bufptr + 1, bufptr + 4);
       }
       else
index 4b03189..93e1757 100644 (file)
@@ -1,55 +1,17 @@
 /*
  * "$Id$"
  *
- *   Destination option/media support for CUPS.
+ * Destination option/media support for CUPS.
  *
- *   Copyright 2012-2013 by Apple Inc.
+ * Copyright 2012-2014 by Apple Inc.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsCheckDestSupported()  - Check that the option and value are supported
- *                              by the destination.
- *   cupsCopyDestConflicts()   - Get conflicts and resolutions for a new
- *                              option/value pair.
- *   cupsCopyDestInfo()        - Get the supported values/capabilities for the
- *                              destination.
- *   cupsFindDestDefault()     - Find the default value(s) for the given
- *                              option.
- *   cupsFindDestReady()       - Find the default value(s) for the given
- *                              option.
- *   cupsFindDestSupported()   - Find the default value(s) for the given
- *                              option.
- *   cupsFreeDestInfo()        - Free destination information obtained using
- *                              @link cupsCopyDestInfo@.
- *   cupsGetDestMediaByIndex() - Get a media name, dimension, and margins for a
- *                              specific size.
- *   cupsGetDestMediaByName()  - Get media names, dimensions, and margins.
- *   cupsGetDestMediaBySize()  - Get media names, dimensions, and margins.
- *   cupsGetDestMediaCount()   - Get the number of sizes supported by a
- *                              destination.
- *   cupsGetDestMediaDefault() - Get the default size for a destination.
- *   cups_add_dconstres()      - Add a constraint or resolver to an array.
- *   cups_compare_dconstres()  - Compare to resolver entries.
- *   cups_compare_media_db()   - Compare two media entries.
- *   cups_copy_media_db()      - Copy a media entry.
- *   cups_create_cached()      - Create the media selection cache.
- *   cups_create_constraints() - Create the constraints and resolvers arrays.
- *   cups_create_defaults()    - Create the -default option array.
- *   cups_create_media_db()    - Create the media database.
- *   cups_free_media_cb()      - Free a media entry.
- *   cups_get_media_db()       - Lookup the media entry for a given size.
- *   cups_is_close_media_db()  - Compare two media entries to see if they are
- *                              close to the same size.
- *   cups_test_constraints()   - Test constraints.
- *   cups_update_ready()       - Update xxx-ready attributes for the printer.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -328,7 +290,7 @@ cupsCopyDestConflicts(
                *myres = NULL,          /* My resolved options */
                *myoption,              /* My current option */
                *option;                /* Current option */
-  cups_array_t *active,                /* Active conflicts */
+  cups_array_t *active = NULL,         /* Active conflicts */
                *pass = NULL,           /* Resolvers for this pass */
                *resolvers = NULL,      /* Resolvers we have used */
                *test;                  /* Test array for conflicts */
@@ -669,7 +631,7 @@ cupsCopyDestInfo(
         version = 11;
       else if (status == IPP_STATUS_ERROR_BUSY)
       {
-        sleep(delay);
+        sleep((unsigned)delay);
 
         delay = _cupsNextDelay(delay, &prev_delay);
       }
@@ -1166,7 +1128,7 @@ cupsGetDestMediaDefault(
   * Fall back to the first matching media size...
   */
 
-  return (cupsGetDestMediaByIndex(http, dest, dinfo, flags, 0, size));
+  return (cupsGetDestMediaByIndex(http, dest, dinfo, 0, flags, size));
 }
 
 
@@ -2246,9 +2208,7 @@ cups_update_ready(http_t       *http,     /* I - Connection to destination */
                dinfo->uri);
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name",
                NULL, cupsUser());
-  ippAddStrings(request, IPP_TAG_OPERATION,
-                IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST, "requested-attributes",
-                (int)(sizeof(pattrs) / sizeof(pattrs[0])), NULL, pattrs);
+  ippAddStrings(request, IPP_TAG_OPERATION, IPP_CONST_TAG(IPP_TAG_KEYWORD), "requested-attributes", (int)(sizeof(pattrs) / sizeof(pattrs[0])), NULL, pattrs);
 
   dinfo->ready_attrs = cupsDoRequest(http, request, dinfo->resource);
 
index 36481f8..92ce8ac 100644 (file)
@@ -1,85 +1,18 @@
 /*
  * "$Id$"
  *
- *   User-defined destination (and option) support for CUPS.
+ * User-defined destination (and option) support for CUPS.
  *
- *   Copyright 2007-2013 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsAddDest()                 - Add a destination to the list of
- *                                   destinations.
- *   _cupsAppleCopyDefaultPaperID() - Get the default paper ID.
- *   _cupsAppleCopyDefaultPrinter() - Get the default printer at this location.
- *   _cupsAppleGetUseLastPrinter()  - Get whether to use the last used printer.
- *   _cupsAppleSetDefaultPaperID()  - Set the default paper id.
- *   _cupsAppleSetDefaultPrinter()  - Set the default printer for this
- *                                   location.
- *   _cupsAppleSetUseLastPrinter()  - Set whether to use the last used printer.
- *   cupsConnectDest()             - Connect to the server for a destination.
- *   cupsConnectDestBlock()        - Connect to the server for a destination.
- *   cupsCopyDest()                - Copy a destination.
- *   cupsEnumDests()               - Enumerate available destinations with a
- *                                   callback function.
- *   cupsEnumDestsBlock()          - Enumerate available destinations with a
- *                                   block.
- *   cupsFreeDests()               - Free the memory used by the list of
- *                                   destinations.
- *   cupsGetDest()                 - Get the named destination from the list.
- *   _cupsGetDestResource()        - Get the resource path and URI for a
- *                                   destination.
- *   _cupsGetDests()               - Get destinations from a server.
- *   cupsGetDests()                - Get the list of destinations from the
- *                                   default server.
- *   cupsGetDests2()               - Get the list of destinations from the
- *                                   specified server.
- *   cupsGetNamedDest()            - Get options for the named destination.
- *   cupsRemoveDest()              - Remove a destination from the destination
- *                                   list.
- *   cupsSetDefaultDest()          - Set the default destination.
- *   cupsSetDests()                - Save the list of destinations for the
- *                                   default server.
- *   cupsSetDests2()               - Save the list of destinations for the
- *                                   specified server.
- *   _cupsUserDefault()            - Get the user default printer from
- *                                   environment variables and location
- *                                   information.
- *   appleCopyLocations()          - Copy the location history array.
- *   appleCopyNetwork()            - Get the network ID for the current
- *                                   location.
- *   appleGetPaperSize()           - Get the default paper size.
- *   appleGetPrinter()             - Get a printer from the history array.
- *   cups_add_dest()               - Add a destination to the array.
- *   cups_block_cb()               - Enumeration callback for block API.
- *   cups_compare_dests()          - Compare two destinations.
- *   cups_dnssd_browse_cb()        - Browse for printers.
- *   cups_dnssd_browse_cb()        - Browse for printers.
- *   cups_dnssd_client_cb()        - Avahi client callback function.
- *   cups_dnssd_compare_device()    - Compare two devices.
- *   cups_dnssd_free_device()      - Free the memory used by a device.
- *   cups_dnssd_get_device()       - Lookup a device and create it as needed.
- *   cups_dnssd_local_cb()         - Browse for local printers.
- *   cups_dnssd_poll_cb()          - Wait for input on the specified file
- *                                   descriptors.
- *   cups_dnssd_query_cb()         - Process query data.
- *   cups_dnssd_resolve()          - Resolve a Bonjour printer URI.
- *   cups_dnssd_resolve_cb()       - See if we should continue resolving.
- *   cups_dnssd_unquote()          - Unquote a name string.
- *   cups_find_dest()              - Find a destination using a binary search.
- *   cups_get_default()            - Get the default destination from an
- *                                   lpoptions file.
- *   cups_get_dests()              - Get destinations from a file.
- *   cups_make_string()            - Make a comma-separated string of values
- *                                   from an IPP attribute.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -334,7 +267,7 @@ cupsAddDest(const char  *name,              /* I  - Destination name */
       * Copy options from parent...
       */
 
-      dest->options = calloc(sizeof(cups_option_t), parent->num_options);
+      dest->options = calloc(sizeof(cups_option_t), (size_t)parent->num_options);
 
       if (dest->options)
       {
@@ -672,7 +605,7 @@ cupsConnectDest(
 
   if (httpSeparateURI(HTTP_URI_CODING_ALL, uri, scheme, sizeof(scheme),
                       userpass, sizeof(userpass), hostname, sizeof(hostname),
-                      &port, resource, resourcesize) < HTTP_URI_STATUS_OK)
+                      &port, resource, (int)resourcesize) < HTTP_URI_STATUS_OK)
   {
     _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Bad printer URI."), 1);
 
@@ -842,8 +775,7 @@ cupsCopyDest(cups_dest_t *dest,
 
   if (new_dest)
   {
-    if ((new_dest->options = calloc(sizeof(cups_option_t),
-                                    dest->num_options)) == NULL)
+    if ((new_dest->options = calloc(sizeof(cups_option_t), (size_t)dest->num_options)) == NULL)
       return (cupsRemoveDest(dest->name, dest->instance, num_dests, dests));
 
     new_dest->num_options = dest->num_options;
@@ -1330,7 +1262,7 @@ _cupsGetDestResource(
 
   if (httpSeparateURI(HTTP_URI_CODING_ALL, uri, scheme, sizeof(scheme),
                       userpass, sizeof(userpass), hostname, sizeof(hostname),
-                      &port, resource, resourcesize) < HTTP_URI_STATUS_OK)
+                      &port, resource, (int)resourcesize) < HTTP_URI_STATUS_OK)
   {
     _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Bad printer URI."), 1);
 
@@ -1457,10 +1389,8 @@ _cupsGetDests(http_t       *http,        /* I  - Connection to server or
   }
   else if (mask)
   {
-    ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM, "printer-type",
-                  type);
-    ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM, "printer-type-mask",
-                  mask);
+    ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM, "printer-type", (int)type);
+    ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM, "printer-type-mask", (int)mask);
   }
 
  /*
@@ -1705,10 +1635,10 @@ cupsGetDests2(http_t      *http,        /* I - Connection to server or @code CUPS_HTTP_
   if (num_dests > 0)
   {
     num_reals = num_dests;
-    reals     = calloc(num_reals, sizeof(cups_dest_t));
+    reals     = calloc((size_t)num_reals, sizeof(cups_dest_t));
 
     if (reals)
-      memcpy(reals, *dests, num_reals * sizeof(cups_dest_t));
+      memcpy(reals, *dests, (size_t)num_reals * sizeof(cups_dest_t));
     else
       num_reals = 0;
   }
@@ -1979,10 +1909,10 @@ cupsRemoveDest(const char  *name,       /* I  - Destination name */
 
   num_dests --;
 
-  i = dest - *dests;
+  i = (int)(dest - *dests);
 
   if (i < num_dests)
-    memmove(dest, dest + 1, (num_dests - i) * sizeof(cups_dest_t));
+    memmove(dest, dest + 1, (size_t)(num_dests - i) * sizeof(cups_dest_t));
 
   return (num_dests);
 }
@@ -2316,7 +2246,7 @@ _cupsUserDefault(char   *name,            /* I - Name buffer */
 
   if ((locprinter = _cupsAppleCopyDefaultPrinter()) != NULL)
   {
-    CFStringGetCString(locprinter, name, namesize, kCFStringEncodingUTF8);
+    CFStringGetCString(locprinter, name, (CFIndex)namesize, kCFStringEncodingUTF8);
     CFRelease(locprinter);
   }
   else
@@ -2524,7 +2454,7 @@ cups_add_dest(const char  *name,  /* I  - Name of destination */
   if (*num_dests == 0)
     dest = malloc(sizeof(cups_dest_t));
   else
-    dest = realloc(*dests, sizeof(cups_dest_t) * (*num_dests + 1));
+    dest = realloc(*dests, sizeof(cups_dest_t) * (size_t)(*num_dests + 1));
 
   if (!dest)
     return (NULL);
@@ -2551,8 +2481,7 @@ cups_add_dest(const char  *name,  /* I  - Name of destination */
   */
 
   if (insert < *num_dests)
-    memmove(*dests + insert + 1, *dests + insert,
-            (*num_dests - insert) * sizeof(cups_dest_t));
+    memmove(*dests + insert + 1, *dests + insert, (size_t)(*num_dests - insert) * sizeof(cups_dest_t));
 
   (*num_dests) ++;
 
@@ -3157,7 +3086,7 @@ cups_dnssd_query_cb(
       txtnext = txt + txtlen;
 
       for (ptr = key; txt < txtnext && *txt != '='; txt ++)
-       *ptr++ = *txt;
+       *ptr++ = (char)*txt;
       *ptr = '\0';
 
       if (txt < txtnext && *txt == '=')
@@ -3242,7 +3171,7 @@ cups_dnssd_query_cb(
         */
 
        saw_printer_type = 1;
-        type             = strtol(value, NULL, 0);
+        type             = (cups_ptype_t)strtol(value, NULL, 0);
       }
       else if (!saw_printer_type)
       {
index 777488f..759e634 100644 (file)
@@ -1,37 +1,20 @@
 /*
  * "$Id$"
  *
- *   PPD code emission routines for CUPS.
+ * PPD code emission routines for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   PostScript is a trademark of Adobe Systems, Inc.
+ * PostScript is a trademark of Adobe Systems, Inc.
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   ppdCollect()          - Collect all marked options that reside in the
- *                           specified section.
- *   ppdCollect2()         - Collect all marked options that reside in the
- *                           specified section and minimum order.
- *   ppdEmit()             - Emit code for marked options to a file.
- *   ppdEmitAfterOrder()   - Emit a subset of the code for marked options to a
- *                           file.
- *   ppdEmitFd()           - Emit code for marked options to a file.
- *   ppdEmitJCL()          - Emit code for JCL options to a file.
- *   ppdEmitJCLEnd()       - Emit JCLEnd code to a file.
- *   ppdEmitString()       - Get a string containing the code for marked
- *                           options.
- *   ppd_compare_cparams() - Compare the order of two custom parameters.
- *   ppd_handle_media()    - Handle media selection...
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -121,13 +104,13 @@ ppdCollect2(ppd_file_t    *ppd,           /* I - PPD file data */
 
   count = 0;
   if ((collect = calloc(sizeof(ppd_choice_t *),
-                        cupsArrayCount(ppd->marked))) == NULL)
+                        (size_t)cupsArrayCount(ppd->marked))) == NULL)
   {
     *choices = NULL;
     return (0);
   }
 
-  if ((orders = calloc(sizeof(float), cupsArrayCount(ppd->marked))) == NULL)
+  if ((orders = calloc(sizeof(float), (size_t)cupsArrayCount(ppd->marked))) == NULL)
   {
     *choices = NULL;
     free(collect);
@@ -358,7 +341,7 @@ ppdEmitFd(ppd_file_t    *ppd,               /* I - PPD file record */
        break;
       }
 
-      buflength -= bytes;
+      buflength -= (size_t)bytes;
       bufptr    += bytes;
     }
 
index 9b9efe1..81b48fb 100644 (file)
@@ -1,26 +1,18 @@
 /*
  * "$Id$"
  *
- *   Option encoding routines for CUPS.
+ * Option encoding routines for CUPS.
  *
- *   Copyright 2007-2013 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsEncodeOptions()   - Encode printer options into IPP attributes.
- *   cupsEncodeOptions2()  - Encode printer options into IPP attributes for
- *                           a group.
- *   _ippFindOption()      - Find the attribute information for an option.
- *   compare_ipp_options() - Compare two IPP options.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -674,7 +666,7 @@ cupsEncodeOptions2(
            * Integer/enumeration value...
            */
 
-            attr->values[j].integer = strtol(val, &s, 10);
+            attr->values[j].integer = (int)strtol(val, &s, 10);
 
             DEBUG_printf(("2cupsEncodeOptions2: Added integer option value "
                          "%d...", attr->values[j].integer));
@@ -716,12 +708,12 @@ cupsEncodeOptions2(
              s = val;
            }
            else
-             attr->values[j].range.lower = strtol(val, &s, 10);
+             attr->values[j].range.lower = (int)strtol(val, &s, 10);
 
            if (*s == '-')
            {
              if (s[1])
-               attr->values[j].range.upper = strtol(s + 1, NULL, 10);
+               attr->values[j].range.upper = (int)strtol(s + 1, NULL, 10);
              else
                attr->values[j].range.upper = 2147483647;
             }
@@ -738,10 +730,10 @@ cupsEncodeOptions2(
            * Resolution...
            */
 
-           attr->values[j].resolution.xres = strtol(val, &s, 10);
+           attr->values[j].resolution.xres = (int)strtol(val, &s, 10);
 
            if (*s == 'x')
-             attr->values[j].resolution.yres = strtol(s + 1, &s, 10);
+             attr->values[j].resolution.yres = (int)strtol(s + 1, &s, 10);
            else
              attr->values[j].resolution.yres = attr->values[j].resolution.xres;
 
index 9b1f592..5bec683 100644 (file)
@@ -8,7 +8,7 @@
  * our own file functions allows us to provide transparent support of
  * gzip'd print files, PPD files, etc.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -286,7 +286,6 @@ _cupsFileCheckFilter(
 
   switch (result)
   {
-    default :
     case _CUPS_FILE_CHECK_OK :
         prefix = "DEBUG2";
        break;
@@ -370,7 +369,7 @@ cupsFileClose(cups_file_t *fp)              /* I - CUPS file */
         if (fp->stream.next_out > fp->cbuf)
        {
          if (cups_write(fp, (char *)fp->cbuf,
-                        fp->stream.next_out - fp->cbuf) < 0)
+                        (size_t)(fp->stream.next_out - fp->cbuf)) < 0)
            status = -1;
 
          fp->stream.next_out  = fp->cbuf;
@@ -388,14 +387,14 @@ cupsFileClose(cups_file_t *fp)            /* I - CUPS file */
       * Write the CRC and length...
       */
 
-      trailer[0] = fp->crc;
-      trailer[1] = fp->crc >> 8;
-      trailer[2] = fp->crc >> 16;
-      trailer[3] = fp->crc >> 24;
-      trailer[4] = fp->pos;
-      trailer[5] = fp->pos >> 8;
-      trailer[6] = fp->pos >> 16;
-      trailer[7] = fp->pos >> 24;
+      trailer[0] = (unsigned char)fp->crc;
+      trailer[1] = (unsigned char)(fp->crc >> 8);
+      trailer[2] = (unsigned char)(fp->crc >> 16);
+      trailer[3] = (unsigned char)(fp->crc >> 24);
+      trailer[4] = (unsigned char)fp->pos;
+      trailer[5] = (unsigned char)(fp->pos >> 8);
+      trailer[6] = (unsigned char)(fp->pos >> 16);
+      trailer[7] = (unsigned char)(fp->pos >> 24);
 
       if (cups_write(fp, (char *)trailer, 8) < 0)
         status = -1;
@@ -609,10 +608,10 @@ cupsFileFlush(cups_file_t *fp)            /* I - CUPS file */
   {
 #ifdef HAVE_LIBZ
     if (fp->compressed)
-      bytes = cups_compress(fp, fp->buf, bytes);
+      bytes = cups_compress(fp, fp->buf, (size_t)bytes);
     else
 #endif /* HAVE_LIBZ */
-      bytes = cups_write(fp, fp->buf, bytes);
+      bytes = cups_write(fp, fp->buf, (size_t)bytes);
 
     if (bytes < 0)
       return (-1);
@@ -883,7 +882,7 @@ cupsFileGetLine(cups_file_t *fp,    /* I - File to read from */
 
   DEBUG_printf(("4cupsFileGetLine: pos=" CUPS_LLFMT, CUPS_LLCAST fp->pos));
 
-  return (ptr - buf);
+  return ((size_t)(ptr - buf));
 }
 
 
@@ -958,7 +957,7 @@ cupsFileGets(cups_file_t *fp,               /* I - CUPS file */
       break;
     }
     else
-      *ptr++ = ch;
+      *ptr++ = (char)ch;
   }
 
   *ptr = '\0';
@@ -1213,10 +1212,10 @@ cupsFileOpenFd(int        fd,           /* I - File descriptor */
          header[1] = 0x8b;
          header[2] = Z_DEFLATED;
          header[3] = 0;
-         header[4] = curtime;
-         header[5] = curtime >> 8;
-         header[6] = curtime >> 16;
-         header[7] = curtime >> 24;
+         header[4] = (unsigned char)curtime;
+         header[5] = (unsigned char)(curtime >> 8);
+         header[6] = (unsigned char)(curtime >> 16);
+         header[7] = (unsigned char)(curtime >> 24);
          header[8] = 0;
          header[9] = 0x03;
 
@@ -1341,11 +1340,11 @@ cupsFilePrintf(cups_file_t *fp,         /* I - CUPS file */
     if (bytes > 65535)
       return (-1);
 
-    if ((temp = realloc(fp->printf_buffer, bytes + 1)) == NULL)
+    if ((temp = realloc(fp->printf_buffer, (size_t)(bytes + 1))) == NULL)
       return (-1);
 
     fp->printf_buffer = temp;
-    fp->printf_size   = bytes + 1;
+    fp->printf_size   = (size_t)(bytes + 1);
 
     va_start(ap, format);
     bytes = vsnprintf(fp->printf_buffer, fp->printf_size, format, ap);
@@ -1354,14 +1353,14 @@ cupsFilePrintf(cups_file_t *fp,         /* I - CUPS file */
 
   if (fp->mode == 's')
   {
-    if (cups_write(fp, fp->printf_buffer, bytes) < 0)
+    if (cups_write(fp, fp->printf_buffer, (size_t)bytes) < 0)
       return (-1);
 
     fp->pos += bytes;
 
     DEBUG_printf(("4cupsFilePrintf: pos=" CUPS_LLFMT, CUPS_LLCAST fp->pos));
 
-    return (bytes);
+    return ((int)bytes);
   }
 
   if ((fp->ptr + bytes) > fp->end)
@@ -1372,20 +1371,20 @@ cupsFilePrintf(cups_file_t *fp,         /* I - CUPS file */
 
   DEBUG_printf(("4cupsFilePrintf: pos=" CUPS_LLFMT, CUPS_LLCAST fp->pos));
 
-  if (bytes > sizeof(fp->buf))
+  if ((size_t)bytes > sizeof(fp->buf))
   {
 #ifdef HAVE_LIBZ
     if (fp->compressed)
-      return (cups_compress(fp, fp->printf_buffer, bytes));
+      return ((int)cups_compress(fp, fp->printf_buffer, (size_t)bytes));
     else
 #endif /* HAVE_LIBZ */
-      return (cups_write(fp, fp->printf_buffer, bytes));
+      return ((int)cups_write(fp, fp->printf_buffer, (size_t)bytes));
   }
   else
   {
     memcpy(fp->ptr, fp->printf_buffer, bytes);
     fp->ptr += bytes;
-    return (bytes);
+    return ((int)bytes);
   }
 }
 
@@ -1416,7 +1415,7 @@ cupsFilePutChar(cups_file_t *fp,  /* I - CUPS file */
     char ch;                           /* Output character */
 
 
-    ch = c;
+    ch = (char)c;
 
     if (send(fp->fd, &ch, 1, 0) < 1)
       return (-1);
@@ -1431,7 +1430,7 @@ cupsFilePutChar(cups_file_t *fp,  /* I - CUPS file */
       if (cupsFileFlush(fp))
        return (-1);
 
-    *(fp->ptr) ++ = c;
+    *(fp->ptr) ++ = (char)c;
   }
 
   fp->pos ++;
@@ -1478,7 +1477,7 @@ cupsFilePutConf(cups_file_t *fp,  /* I - CUPS file */
       * Need to quote the first # in the info string...
       */
 
-      if ((temp = cupsFileWrite(fp, value, ptr - value)) < 0)
+      if ((temp = cupsFileWrite(fp, value, (size_t)(ptr - value))) < 0)
         return (-1);
       bytes += temp;
 
@@ -1529,18 +1528,18 @@ cupsFilePuts(cups_file_t *fp,           /* I - CUPS file */
   * Write the string...
   */
 
-  bytes = (int)strlen(s);
+  bytes = (ssize_t)strlen(s);
 
   if (fp->mode == 's')
   {
-    if (cups_write(fp, s, bytes) < 0)
+    if (cups_write(fp, s, (size_t)bytes) < 0)
       return (-1);
 
     fp->pos += bytes;
 
     DEBUG_printf(("4cupsFilePuts: pos=" CUPS_LLFMT, CUPS_LLCAST fp->pos));
 
-    return (bytes);
+    return ((int)bytes);
   }
 
   if ((fp->ptr + bytes) > fp->end)
@@ -1551,20 +1550,20 @@ cupsFilePuts(cups_file_t *fp,           /* I - CUPS file */
 
   DEBUG_printf(("4cupsFilePuts: pos=" CUPS_LLFMT, CUPS_LLCAST fp->pos));
 
-  if (bytes > sizeof(fp->buf))
+  if ((size_t)bytes > sizeof(fp->buf))
   {
 #ifdef HAVE_LIBZ
     if (fp->compressed)
-      return (cups_compress(fp, s, bytes));
+      return ((int)cups_compress(fp, s, (size_t)bytes));
     else
 #endif /* HAVE_LIBZ */
-      return (cups_write(fp, s, bytes));
+      return ((int)cups_write(fp, s, (size_t)bytes));
   }
   else
   {
     memcpy(fp->ptr, s, bytes);
     fp->ptr += bytes;
-    return (bytes);
+    return ((int)bytes);
   }
 }
 
@@ -1630,8 +1629,8 @@ cupsFileRead(cups_file_t *fp,             /* I - CUPS file */
     * Update the counts for the last read...
     */
 
-    bytes -= count;
-    total += count;
+    bytes -= (size_t)count;
+    total += (size_t)count;
     buf   += count;
   }
 
@@ -2103,14 +2102,14 @@ cups_compress(cups_file_t *fp,          /* I - CUPS file */
   * Update the CRC...
   */
 
-  fp->crc = crc32(fp->crc, (const Bytef *)buf, bytes);
+  fp->crc = crc32(fp->crc, (const Bytef *)buf, (uInt)bytes);
 
  /*
   * Deflate the bytes...
   */
 
   fp->stream.next_in  = (Bytef *)buf;
-  fp->stream.avail_in = bytes;
+  fp->stream.avail_in = (uInt)bytes;
 
   while (fp->stream.avail_in > 0)
   {
@@ -2121,9 +2120,9 @@ cups_compress(cups_file_t *fp,            /* I - CUPS file */
     DEBUG_printf(("9cups_compress: avail_in=%d, avail_out=%d",
                   fp->stream.avail_in, fp->stream.avail_out));
 
-    if (fp->stream.avail_out < (int)(sizeof(fp->cbuf) / 8))
+    if (fp->stream.avail_out < (uInt)(sizeof(fp->cbuf) / 8))
     {
-      if (cups_write(fp, (char *)fp->cbuf, fp->stream.next_out - fp->cbuf) < 0)
+      if (cups_write(fp, (char *)fp->cbuf, (size_t)(fp->stream.next_out - fp->cbuf)) < 0)
         return (-1);
 
       fp->stream.next_out  = fp->cbuf;
@@ -2133,7 +2132,7 @@ cups_compress(cups_file_t *fp,            /* I - CUPS file */
     deflate(&(fp->stream), Z_NO_FLUSH);
   }
 
-  return (bytes);
+  return ((ssize_t)bytes);
 }
 #endif /* HAVE_LIBZ */
 
@@ -2324,7 +2323,7 @@ cups_fill(cups_file_t *fp)                /* I - CUPS file */
       fp->stream.opaque    = (voidpf)0;
       fp->stream.next_in   = (Bytef *)fp->cbuf;
       fp->stream.next_out  = NULL;
-      fp->stream.avail_in  = bytes;
+      fp->stream.avail_in  = (uInt)bytes;
       fp->stream.avail_out = 0;
       fp->crc              = crc32(0L, Z_NULL, 0);
 
@@ -2353,7 +2352,7 @@ cups_fill(cups_file_t *fp)                /* I - CUPS file */
           return (-1);
 
        fp->stream.next_in  = fp->cbuf;
-       fp->stream.avail_in = bytes;
+       fp->stream.avail_in = (uInt)bytes;
       }
 
      /*
@@ -2367,7 +2366,7 @@ cups_fill(cups_file_t *fp)                /* I - CUPS file */
 
       if (fp->stream.next_out > (Bytef *)fp->buf)
         fp->crc = crc32(fp->crc, (Bytef *)fp->buf,
-                       fp->stream.next_out - (Bytef *)fp->buf);
+                       (uInt)(fp->stream.next_out - (Bytef *)fp->buf));
 
       if (status == Z_STREAM_END)
       {
@@ -2379,7 +2378,7 @@ cups_fill(cups_file_t *fp)                /* I - CUPS file */
        uLong           tcrc;           /* Trailer CRC */
 
 
-       if (read(fp->fd, trailer, sizeof(trailer)) < sizeof(trailer))
+       if (read(fp->fd, trailer, sizeof(trailer)) < (ssize_t)sizeof(trailer))
        {
         /*
           * Can't get it, so mark end-of-file...
@@ -2415,7 +2414,7 @@ cups_fill(cups_file_t *fp)                /* I - CUPS file */
        }
       }
 
-      bytes = sizeof(fp->buf) - fp->stream.avail_out;
+      bytes = (ssize_t)sizeof(fp->buf) - (ssize_t)fp->stream.avail_out;
 
      /*
       * Return the decompressed data...
@@ -2656,8 +2655,8 @@ cups_write(cups_file_t *fp,               /* I - CUPS file */
     * Update the counts for the last write call...
     */
 
-    bytes -= count;
-    total += count;
+    bytes -= (size_t)count;
+    total += (size_t)count;
     buf   += count;
   }
 
index b4be78a..443e0c4 100644 (file)
@@ -1,25 +1,18 @@
 /*
  * "$Id$"
  *
- *   Get/put file functions for CUPS.
+ * Get/put file functions for CUPS.
  *
- *   Copyright 2007-2013 by Apple Inc.
- *   Copyright 1997-2006 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2006 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   cupsGetFd()   - Get a file from the server.
- *   cupsGetFile() - Get a file from the server.
- *   cupsPutFd()   - Put a file on the server.
- *   cupsPutFile() - Put a file on the server.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -49,7 +42,7 @@ cupsGetFd(http_t     *http,           /* I - Connection to server or @code CUPS_HTTP_DEFA
          const char *resource,         /* I - Resource name */
          int        fd)                /* I - File descriptor */
 {
-  int          bytes;                  /* Number of bytes read */
+  ssize_t      bytes;                  /* Number of bytes read */
   char         buffer[8192];           /* Buffer for file */
   http_status_t        status;                 /* HTTP status from server */
   char         if_modified_since[HTTP_MAX_VALUE];
@@ -174,7 +167,7 @@ cupsGetFd(http_t     *http,         /* I - Connection to server or @code CUPS_HTTP_DEFA
     */
 
     while ((bytes = httpRead2(http, buffer, sizeof(buffer))) > 0)
-      write(fd, buffer, bytes);
+      write(fd, buffer, (size_t)bytes);
   }
   else
   {
@@ -273,8 +266,8 @@ cupsPutFd(http_t     *http,         /* I - Connection to server or @code CUPS_HTTP_DEFA
           const char *resource,                /* I - Resource name */
          int        fd)                /* I - File descriptor */
 {
-  int          bytes,                  /* Number of bytes read */
-               retries;                /* Number of retries */
+  ssize_t      bytes;                  /* Number of bytes read */
+  int          retries;                /* Number of retries */
   char         buffer[8192];           /* Buffer for file */
   http_status_t        status;                 /* HTTP status from server */
 
@@ -362,7 +355,7 @@ cupsPutFd(http_t     *http,         /* I - Connection to server or @code CUPS_HTTP_DEFA
             break;
        }
        else
-          httpWrite2(http, buffer, bytes);
+          httpWrite2(http, buffer, (size_t)bytes);
     }
 
     if (status == HTTP_STATUS_CONTINUE)
index 130d0a7..a3a628c 100644 (file)
@@ -3,7 +3,7 @@
  *
  * HTTP address routines for CUPS.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2006 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -137,8 +137,7 @@ httpAddrLength(const http_addr_t *addr)     /* I - Address */
 #endif /* AF_INET6 */
 #ifdef AF_LOCAL
   if (addr->addr.sa_family == AF_LOCAL)
-    return (offsetof(struct sockaddr_un, sun_path) +
-            strlen(addr->un.sun_path) + 1);
+    return ((int)(offsetof(struct sockaddr_un, sun_path) + strlen(addr->un.sun_path) + 1));
   else
 #endif /* AF_LOCAL */
   if (addr->addr.sa_family == AF_INET)
@@ -216,7 +215,7 @@ httpAddrListen(http_addr_t *addr,   /* I - Address to bind to */
     * Bind the domain socket...
     */
 
-    status = bind(fd, (struct sockaddr *)addr, httpAddrLength(addr));
+    status = bind(fd, (struct sockaddr *)addr, (socklen_t)httpAddrLength(addr));
 
    /*
     * Restore the umask and fix permissions...
@@ -230,7 +229,7 @@ httpAddrListen(http_addr_t *addr,   /* I - Address to bind to */
   {
     _httpAddrSetPort(addr, port);
 
-    status = bind(fd, (struct sockaddr *)addr, httpAddrLength(addr));
+    status = bind(fd, (struct sockaddr *)addr, (socklen_t)httpAddrLength(addr));
   }
 
   if (status)
@@ -388,8 +387,7 @@ httpAddrLookup(
     * do...
     */
 
-    int error = getnameinfo(&addr->addr, httpAddrLength(addr), name, namelen,
-                           NULL, 0, 0);
+    int error = getnameinfo(&addr->addr, (socklen_t)httpAddrLength(addr), name, (socklen_t)namelen, NULL, 0, 0);
 
     if (error)
     {
@@ -544,8 +542,7 @@ httpAddrString(const http_addr_t *addr,     /* I - Address to convert */
                temps[64];              /* Temporary string for address */
 
 #  ifdef HAVE_GETNAMEINFO
-    if (getnameinfo(&addr->addr, httpAddrLength(addr), temps, sizeof(temps),
-                    NULL, 0, NI_NUMERICHOST))
+    if (getnameinfo(&addr->addr, (socklen_t)httpAddrLength(addr), temps, sizeof(temps), NULL, 0, NI_NUMERICHOST))
     {
      /*
       * If we get an error back, then the address type is not supported
@@ -720,7 +717,7 @@ httpGetHostByName(const char *name) /* I - Hostname or IP address */
     cg->hostent.h_name      = (char *)name;
     cg->hostent.h_aliases   = NULL;
     cg->hostent.h_addrtype  = AF_LOCAL;
-    cg->hostent.h_length    = strlen(name) + 1;
+    cg->hostent.h_length    = (int)strlen(name) + 1;
     cg->hostent.h_addr_list = cg->ip_ptrs;
     cg->ip_ptrs[0]          = (char *)name;
     cg->ip_ptrs[1]          = NULL;
@@ -820,7 +817,7 @@ httpGetHostname(http_t *http,               /* I - HTTP connection or NULL */
     if (!s || slen <= 1)
       return (NULL);
 
-    if (gethostname(s, slen) < 0)
+    if (gethostname(s, (size_t)slen) < 0)
       strlcpy(s, "localhost", slen);
 
     if (!strchr(s, '.'))
index 7047f7d..bfa519a 100644 (file)
@@ -3,7 +3,7 @@
  *
  * HTTP address list routines for CUPS.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -178,8 +178,7 @@ httpAddrConnect2(
     * Then connect...
     */
 
-    if (!connect(*sock, &(addrlist->addr.addr),
-                 httpAddrLength(&(addrlist->addr))))
+    if (!connect(*sock, &(addrlist->addr.addr), (socklen_t)httpAddrLength(&(addrlist->addr))))
     {
       DEBUG_printf(("1httpAddrConnect2: Connected to %s:%d...",
                    httpAddrString(&(addrlist->addr), temp, sizeof(temp)),
index bec2683..c135351 100644 (file)
@@ -3,7 +3,7 @@
  *
  * HTTP support routines for CUPS.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -472,7 +472,7 @@ httpAssembleURIf(
   bytes = vsnprintf(resource, sizeof(resource), resourcef, ap);
   va_end(ap);
 
-  if (bytes >= sizeof(resource))
+  if ((size_t)bytes >= sizeof(resource))
   {
     *uri = '\0';
     return (HTTP_URI_STATUS_OVERFLOW);
@@ -520,7 +520,7 @@ httpAssembleUUID(const char *server,        /* I - Server name */
           (unsigned)CUPS_RAND() & 0xffff, (unsigned)CUPS_RAND() & 0xffff);
 
   _cupsMD5Init(&md5state);
-  _cupsMD5Append(&md5state, (unsigned char *)data, strlen(data));
+  _cupsMD5Append(&md5state, (unsigned char *)data, (int)strlen(data));
   _cupsMD5Finish(&md5state, md5sum);
 
  /*
@@ -576,10 +576,10 @@ httpDecode64_2(char       *out,           /* I  - String to write to */
               int        *outlen,      /* IO - Size of output string */
                const char *in)         /* I  - String to read from */
 {
-  int  pos,                            /* Bit position */
-       base64;                         /* Value of this character */
-  char *outptr,                        /* Output pointer */
-       *outend;                        /* End of output buffer */
+  int          pos;                    /* Bit position */
+  unsigned     base64;                 /* Value of this character */
+  char         *outptr,                /* Output pointer */
+               *outend;                /* End of output buffer */
 
 
  /*
@@ -608,11 +608,11 @@ httpDecode64_2(char       *out,           /* I  - String to write to */
     */
 
     if (*in >= 'A' && *in <= 'Z')
-      base64 = *in - 'A';
+      base64 = (unsigned)(*in - 'A');
     else if (*in >= 'a' && *in <= 'z')
-      base64 = *in - 'a' + 26;
+      base64 = (unsigned)(*in - 'a' + 26);
     else if (*in >= '0' && *in <= '9')
-      base64 = *in - '0' + 52;
+      base64 = (unsigned)(*in - '0' + 52);
     else if (*in == '+')
       base64 = 62;
     else if (*in == '/')
@@ -630,21 +630,21 @@ httpDecode64_2(char       *out,           /* I  - String to write to */
     {
       case 0 :
           if (outptr < outend)
-            *outptr = base64 << 2;
+            *outptr = (char)(base64 << 2);
          pos ++;
          break;
       case 1 :
           if (outptr < outend)
-            *outptr++ |= (base64 >> 4) & 3;
+            *outptr++ |= (char)((base64 >> 4) & 3);
           if (outptr < outend)
-           *outptr = (base64 << 4) & 255;
+           *outptr = (char)((base64 << 4) & 255);
          pos ++;
          break;
       case 2 :
           if (outptr < outend)
-            *outptr++ |= (base64 >> 2) & 15;
+            *outptr++ |= (char)((base64 >> 2) & 15);
           if (outptr < outend)
-           *outptr = (base64 << 6) & 255;
+           *outptr = (char)((base64 << 6) & 255);
          pos ++;
          break;
       case 3 :
@@ -1234,7 +1234,7 @@ httpSeparateURI(
         return (HTTP_URI_STATUS_BAD_PORT);
       }
 
-      *port = strtol(uri + 1, (char **)&uri, 10);
+      *port = (int)strtol(uri + 1, (char **)&uri, 10);
 
       if (*uri != '/' && *uri)
       {
@@ -1433,6 +1433,70 @@ httpStatus(http_status_t status) /* I - HTTP status code */
   return (_httpStatus(cg->lang_default, status));
 }
 
+/*
+ * 'httpURIStatusString()' - Return a string describing a URI status code.
+ *
+ * @since CUPS 2.0@
+ */
+
+const char *                           /* O - Localized status string */
+httpURIStatusString(
+    http_uri_status_t status)          /* I - URI status code */
+{
+  const char   *s;                     /* Status string */
+  _cups_globals_t *cg = _cupsGlobals();        /* Global data */
+
+
+  if (!cg->lang_default)
+    cg->lang_default = cupsLangDefault();
+
+  switch (status)
+  {
+    case HTTP_URI_STATUS_OVERFLOW :
+       s = _("URI too large");
+       break;
+    case HTTP_URI_STATUS_BAD_ARGUMENTS :
+       s = _("Bad arguments to function");
+       break;
+    case HTTP_URI_STATUS_BAD_RESOURCE :
+       s = _("Bad resource in URI");
+       break;
+    case HTTP_URI_STATUS_BAD_PORT :
+       s = _("Bad port number in URI");
+       break;
+    case HTTP_URI_STATUS_BAD_HOSTNAME :
+       s = _("Bad hostname/address in URI");
+       break;
+    case HTTP_URI_STATUS_BAD_USERNAME :
+       s = _("Bad username in URI");
+       break;
+    case HTTP_URI_STATUS_BAD_SCHEME :
+       s = _("Bad scheme in URI");
+       break;
+    case HTTP_URI_STATUS_BAD_URI :
+       s = _("Bad/empty URI");
+       break;
+    case HTTP_URI_STATUS_OK :
+       s = _("OK");
+       break;
+    case HTTP_URI_STATUS_MISSING_SCHEME :
+       s = _("Missing scheme in URI");
+       break;
+    case HTTP_URI_STATUS_UNKNOWN_SCHEME :
+       s = _("Unknown scheme in URI");
+       break;
+    case HTTP_URI_STATUS_MISSING_RESOURCE :
+       s = _("Missing resource in URI");
+       break;
+
+    default:
+        s = _("Unknown");
+       break;
+  }
+
+  return (_cupsLangString(cg->lang_default, s));
+}
+
 
 #ifndef HAVE_HSTRERROR
 /*
@@ -1559,7 +1623,7 @@ _httpResolveURI(
 #      pragma comment(lib, "dnssd.lib")
 #    endif /* WIN32 */
     DNSServiceRef      ref,            /* DNS-SD master service reference */
-                       domainref,      /* DNS-SD service reference for domain */
+                       domainref = NULL,/* DNS-SD service reference for domain */
                        localref;       /* DNS-SD service reference for .local */
     int                        domainsent = 0; /* Send the domain resolve? */
 #    ifdef HAVE_POLL
@@ -1638,7 +1702,7 @@ _httpResolveURI(
 #  ifdef HAVE_DNSSD
     if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
     {
-      int myinterface = kDNSServiceInterfaceIndexAny;
+      uint32_t myinterface = kDNSServiceInterfaceIndexAny;
                                        /* Lookup on any interface */
 
       if (!strcmp(scheme, "ippusb"))
@@ -1678,7 +1742,7 @@ _httpResolveURI(
          polldata.fd     = DNSServiceRefSockFD(ref);
          polldata.events = POLLIN;
 
-         fds = poll(&polldata, 1, 1000 * timeout);
+         fds = poll(&polldata, 1, (int)(1000 * timeout));
 
 #    else /* select() */
          FD_ZERO(&input_set);
@@ -1943,7 +2007,7 @@ http_copy_decode(char       *dst, /* O - Destination buffer */
          else
            quoted |= *src - '0';
 
-          *ptr++ = quoted;
+          *ptr++ = (char)quoted;
        }
        else
        {
@@ -2171,9 +2235,7 @@ http_resolve_cb(
     {
       for (addr = addrlist; addr; addr = addr->next)
       {
-        int error = getnameinfo(&(addr->addr.addr),
-                               httpAddrLength(&(addr->addr)),
-                               fqdn, sizeof(fqdn), NULL, 0, NI_NAMEREQD);
+        int error = getnameinfo(&(addr->addr.addr), (socklen_t)httpAddrLength(&(addr->addr)), fqdn, sizeof(fqdn), NULL, 0, NI_NAMEREQD);
 
         if (!error)
        {
@@ -2204,12 +2266,9 @@ http_resolve_cb(
 
   if ((!strcmp(scheme, "ipp") || !strcmp(scheme, "ipps")) &&
       !strcmp(uribuf->resource, "/cups"))
-    httpAssembleURIf(HTTP_URI_CODING_ALL, uribuf->buffer, uribuf->bufsize,
-                     scheme, NULL, hostTarget, ntohs(port), "%s?snmp=false",
-                     resource);
+    httpAssembleURIf(HTTP_URI_CODING_ALL, uribuf->buffer, (int)uribuf->bufsize, scheme, NULL, hostTarget, ntohs(port), "%s?snmp=false", resource);
   else
-    httpAssembleURI(HTTP_URI_CODING_ALL, uribuf->buffer, uribuf->bufsize,
-                    scheme, NULL, hostTarget, ntohs(port), resource);
+    httpAssembleURI(HTTP_URI_CODING_ALL, uribuf->buffer, (int)uribuf->bufsize, scheme, NULL, hostTarget, ntohs(port), resource);
 
   DEBUG_printf(("8http_resolve_cb: Resolved URI is \"%s\"...", uribuf->buffer));
 }
index bb3a7c3..8a4236e 100644 (file)
@@ -3,7 +3,7 @@
  *
  * HTTP routines for CUPS.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * This file contains Kerberos support code, copyright 2006 by
@@ -705,11 +705,11 @@ httpFlush(http_t *http)                   /* I - HTTP connection */
 int                                    /* O - Bytes written or -1 on error */
 httpFlushWrite(http_t *http)           /* I - HTTP connection */
 {
-  int  bytes;                          /* Bytes written */
+  ssize_t      bytes;                  /* Bytes written */
 
 
   DEBUG_printf(("httpFlushWrite(http=%p) data_encoding=%d", http,
-                http ? http->data_encoding : -1));
+                http ? http->data_encoding : 100));
 
   if (!http || !http->wused)
   {
@@ -719,15 +719,15 @@ httpFlushWrite(http_t *http)              /* I - HTTP connection */
   }
 
   if (http->data_encoding == HTTP_ENCODING_CHUNKED)
-    bytes = http_write_chunk(http, http->wbuffer, http->wused);
+    bytes = http_write_chunk(http, http->wbuffer, (size_t)http->wused);
   else
-    bytes = http_write(http, http->wbuffer, http->wused);
+    bytes = http_write(http, http->wbuffer, (size_t)http->wused);
 
   http->wused = 0;
 
-  DEBUG_printf(("1httpFlushWrite: Returning %d, errno=%d.", bytes, errno));
+  DEBUG_printf(("1httpFlushWrite: Returning %d, errno=%d.", (int)bytes, errno));
 
-  return (bytes);
+  return ((int)bytes);
 }
 
 
@@ -1123,7 +1123,7 @@ httpGetLength2(http_t *http)              /* I - HTTP connection */
 size_t                                 /* O - Number of bytes buffered */
 httpGetPending(http_t *http)           /* I - HTTP connection */
 {
-  return (http ? http->wused : 0);
+  return (http ? (size_t)http->wused : 0);
 }
 
 
@@ -1139,7 +1139,7 @@ httpGetReady(http_t *http)                /* I - HTTP connection */
   if (!http)
     return (0);
   else if (http->used > 0)
-    return (http->used);
+    return ((size_t)http->used);
 #ifdef HAVE_SSL
   else if (http->tls)
     return (http_tls_pending(http));
@@ -1162,7 +1162,7 @@ httpGetReady(http_t *http)                /* I - HTTP connection */
 size_t                                 /* O - Remaining bytes */
 httpGetRemaining(http_t *http)         /* I - HTTP connection */
 {
-  return (http ? http->data_remaining : 0);
+  return (http ? (size_t)http->data_remaining : 0);
 }
 
 
@@ -1175,12 +1175,12 @@ httpGets(char   *line,                  /* I - Line to read into */
          int    length,                        /* I - Max length of buffer */
         http_t *http)                  /* I - HTTP connection */
 {
-  char *lineptr,                       /* Pointer into line */
-       *lineend,                       /* End of line */
-       *bufptr,                        /* Pointer into input buffer */
-       *bufend;                        /* Pointer to end of buffer */
-  int  bytes,                          /* Number of bytes read */
-       eol;                            /* End-of-line? */
+  char         *lineptr,               /* Pointer into line */
+               *lineend,               /* End of line */
+               *bufptr,                /* Pointer into input buffer */
+               *bufend;                /* Pointer to end of buffer */
+  ssize_t      bytes;                  /* Number of bytes read */
+  int          eol;                    /* End-of-line? */
 
 
   DEBUG_printf(("2httpGets(line=%p, length=%d, http=%p)", line, length, http));
@@ -1229,10 +1229,9 @@ httpGets(char   *line,                   /* I - Line to read into */
         return (NULL);
       }
 
-      bytes = http_read(http, http->buffer + http->used,
-                        HTTP_MAX_BUFFER - http->used);
+      bytes = http_read(http, http->buffer + http->used, (size_t)(HTTP_MAX_BUFFER - http->used));
 
-      DEBUG_printf(("4httpGets: read %d bytes.", bytes));
+      DEBUG_printf(("4httpGets: read " CUPS_LLFMT " bytes.", CUPS_LLCAST bytes));
 
       if (bytes < 0)
       {
@@ -1292,7 +1291,7 @@ httpGets(char   *line,                    /* I - Line to read into */
       * Yup, update the amount used...
       */
 
-      http->used += bytes;
+      http->used += (int)bytes;
     }
 
    /*
@@ -1757,13 +1756,13 @@ httpPeek(http_t *http,                  /* I - HTTP connection */
       }
     }
 
-    if (http->data_remaining > sizeof(http->buffer))
+    if ((size_t)http->data_remaining > sizeof(http->buffer))
       buflen = sizeof(http->buffer);
     else
-      buflen = http->data_remaining;
+      buflen = (ssize_t)http->data_remaining;
 
     DEBUG_printf(("2httpPeek: Reading %d bytes into buffer.", (int)buflen));
-    bytes = http_read(http, http->buffer, buflen);
+    bytes = http_read(http, http->buffer, (size_t)buflen);
 
     DEBUG_printf(("2httpPeek: Read " CUPS_LLFMT " bytes into buffer.",
                   CUPS_LLCAST bytes));
@@ -1773,7 +1772,7 @@ httpPeek(http_t *http,                    /* I - HTTP connection */
       http_debug_hex("httpPeek", http->buffer, (int)bytes);
 #endif /* DEBUG */
 
-      http->used = bytes;
+      http->used = (int)bytes;
     }
   }
 
@@ -1795,11 +1794,11 @@ httpPeek(http_t *http,                  /* I - HTTP connection */
 
       http->stream.next_in = http->dbuffer;
 
-      if (buflen > http->data_remaining)
-        buflen = http->data_remaining;
+      if (buflen > (size_t)http->data_remaining)
+        buflen = (size_t)http->data_remaining;
 
-      if (buflen > http->used)
-        buflen = http->used;
+      if (buflen > (size_t)http->used)
+        buflen = (size_t)http->used;
 
       DEBUG_printf(("1httpPeek: Copying %d more bytes of data into "
                    "decompression buffer.", (int)buflen));
@@ -1824,7 +1823,7 @@ httpPeek(http_t *http,                    /* I - HTTP connection */
     }
 
     stream.next_out  = (Bytef *)buffer;
-    stream.avail_out = length;
+    stream.avail_out = (uInt)length;
 
     zerr = inflate(&stream, Z_SYNC_FLUSH);
     inflateEnd(&stream);
@@ -1833,15 +1832,14 @@ httpPeek(http_t *http,                  /* I - HTTP connection */
     {
       DEBUG_printf(("2httpPeek: zerr=%d", zerr));
 #ifdef DEBUG
-      http_debug_hex("2httpPeek", (char *)http->dbuffer,
-                    http->stream.avail_in);
+      http_debug_hex("2httpPeek", (char *)http->dbuffer, (int)http->stream.avail_in);
 #endif /* DEBUG */
 
       http->error = EIO;
       return (-1);
     }
 
-    bytes = length - http->stream.avail_out;
+    bytes = (ssize_t)(length - http->stream.avail_out);
 
 #  else
     DEBUG_puts("2httpPeek: No inflateCopy on this platform, httpPeek does not "
@@ -1913,7 +1911,7 @@ httpPrintf(http_t     *http,              /* I - HTTP connection */
            const char *format,         /* I - printf-style format string */
           ...)                         /* I - Additional args as needed */
 {
-  int          bytes;                  /* Number of bytes to write */
+  ssize_t      bytes;                  /* Number of bytes to write */
   char         buf[16384];             /* Buffer for formatted string */
   va_list      ap;                     /* Variable argument pointer */
 
@@ -1924,10 +1922,10 @@ httpPrintf(http_t     *http,            /* I - HTTP connection */
   bytes = vsnprintf(buf, sizeof(buf), format, ap);
   va_end(ap);
 
-  DEBUG_printf(("3httpPrintf: (%d bytes) %s", bytes, buf));
+  DEBUG_printf(("3httpPrintf: (" CUPS_LLFMT " bytes) %s", CUPS_LLCAST bytes, buf));
 
   if (http->data_encoding == HTTP_ENCODING_FIELDS)
-    return (httpWrite2(http, buf, bytes));
+    return ((int)httpWrite2(http, buf, (size_t)bytes));
   else
   {
     if (http->wused)
@@ -1938,7 +1936,7 @@ httpPrintf(http_t     *http,              /* I - HTTP connection */
        return (-1);
     }
 
-    return (http_write(http, buf, bytes));
+    return ((int)http_write(http, buf, (size_t)bytes));
   }
 }
 
@@ -1970,7 +1968,7 @@ httpRead(http_t *http,                    /* I - HTTP connection */
          char   *buffer,               /* I - Buffer for data */
         int    length)                 /* I - Maximum number of bytes */
 {
-  return ((int)httpRead2(http, buffer, length));
+  return ((int)httpRead2(http, buffer, (size_t)length));
 }
 
 
@@ -2023,21 +2021,20 @@ httpRead2(http_t *http,                 /* I - HTTP connection */
                      (int)http->stream.avail_in, (int)length));
 
        http->stream.next_out  = (Bytef *)buffer;
-       http->stream.avail_out = length;
+       http->stream.avail_out = (uInt)length;
 
        if ((zerr = inflate(&(http->stream), Z_SYNC_FLUSH)) < Z_OK)
        {
          DEBUG_printf(("2httpRead2: zerr=%d", zerr));
 #ifdef DEBUG
-          http_debug_hex("2httpRead2", (char *)http->dbuffer,
-                         http->stream.avail_in);
+          http_debug_hex("2httpRead2", (char *)http->dbuffer, (int)http->stream.avail_in);
 #endif /* DEBUG */
 
          http->error = EIO;
          return (-1);
        }
 
-       bytes = length - http->stream.avail_out;
+       bytes = (ssize_t)(length - http->stream.avail_out);
 
        DEBUG_printf(("2httpRead2: avail_in=%d, avail_out=%d, bytes=%d",
                      http->stream.avail_in, http->stream.avail_out,
@@ -2048,7 +2045,7 @@ httpRead2(http_t *http,                   /* I - HTTP connection */
 
       if (bytes == 0)
       {
-        ssize_t buflen = HTTP_MAX_BUFFER - http->stream.avail_in;
+        ssize_t buflen = HTTP_MAX_BUFFER - (ssize_t)http->stream.avail_in;
                                        /* Additional bytes for buffer */
 
         if (buflen > 0)
@@ -2065,16 +2062,12 @@ httpRead2(http_t *http,                 /* I - HTTP connection */
           if (http->data_remaining > 0)
           {
            if (buflen > http->data_remaining)
-             buflen = http->data_remaining;
+             buflen = (ssize_t)http->data_remaining;
 
-           bytes = http_read_buffered(http,
-                                      (char *)http->dbuffer +
-                                              http->stream.avail_in, buflen);
+           bytes = http_read_buffered(http, (char *)http->dbuffer + http->stream.avail_in, (size_t)buflen);
           }
           else if (http->data_encoding == HTTP_ENCODING_CHUNKED)
-            bytes = http_read_chunk(http,
-                                   (char *)http->dbuffer +
-                                       http->stream.avail_in, buflen);
+            bytes = http_read_chunk(http, (char *)http->dbuffer + http->stream.avail_in, (size_t)buflen);
           else
             bytes = 0;
 
@@ -2087,7 +2080,7 @@ httpRead2(http_t *http,                   /* I - HTTP connection */
                         "decompression buffer.", CUPS_LLCAST bytes));
 
           http->data_remaining  -= bytes;
-          http->stream.avail_in += bytes;
+          http->stream.avail_in += (uInt)bytes;
 
          if (http->data_remaining <= 0 &&
              http->data_encoding == HTTP_ENCODING_CHUNKED)
@@ -2534,10 +2527,10 @@ httpSetAuthString(http_t     *http,     /* I - HTTP connection */
     * Set the current authorization string...
     */
 
-    int len = (int)strlen(scheme) + (data ? (int)strlen(data) + 1 : 0) + 1;
+    size_t len = strlen(scheme) + (data ? strlen(data) + 1 : 0) + 1;
     char *temp;
 
-    if (len > (int)sizeof(http->_authstring))
+    if (len > sizeof(http->_authstring))
     {
       if ((temp = malloc(len)) == NULL)
         len = sizeof(http->_authstring);
@@ -3288,7 +3281,7 @@ httpWrite(http_t     *http,               /* I - HTTP connection */
           const char *buffer,          /* I - Buffer for data */
          int        length)            /* I - Number of bytes to write */
 {
-  return ((int)httpWrite2(http, buffer, length));
+  return ((int)httpWrite2(http, buffer, (size_t)length));
 }
 
 
@@ -3342,13 +3335,13 @@ httpWrite2(http_t     *http,            /* I - HTTP connection */
     else
     {
       http->stream.next_in   = (Bytef *)buffer;
-      http->stream.avail_in  = length;
+      http->stream.avail_in  = (uInt)length;
       http->stream.next_out  = (Bytef *)http->wbuffer + http->wused;
-      http->stream.avail_out = sizeof(http->wbuffer) - http->wused;
+      http->stream.avail_out = (uInt)(sizeof(http->wbuffer) - (size_t)http->wused);
 
       while (deflate(&(http->stream), Z_NO_FLUSH) == Z_OK)
       {
-       http->wused = sizeof(http->wbuffer) - http->stream.avail_out;
+       http->wused = (int)(sizeof(http->wbuffer) - (size_t)http->stream.avail_out);
 
         if (http->stream.avail_out == 0)
         {
@@ -3363,15 +3356,15 @@ httpWrite2(http_t     *http,            /* I - HTTP connection */
        }
       }
 
-      http->wused = sizeof(http->wbuffer) - http->stream.avail_out;
-      bytes       = length;
+      http->wused = (int)(sizeof(http->wbuffer) - (size_t)http->stream.avail_out);
+      bytes       = (ssize_t)length;
     }
   }
   else
 #endif /* HAVE_LIBZ */
   if (length > 0)
   {
-    if (http->wused && (length + http->wused) > sizeof(http->wbuffer))
+    if (http->wused && (length + (size_t)http->wused) > sizeof(http->wbuffer))
     {
       DEBUG_printf(("2httpWrite2: Flushing buffer (wused=%d, length="
                     CUPS_LLFMT ")", http->wused, CUPS_LLCAST length));
@@ -3379,8 +3372,7 @@ httpWrite2(http_t     *http,              /* I - HTTP connection */
       httpFlushWrite(http);
     }
 
-    if ((length + http->wused) <= sizeof(http->wbuffer) &&
-        length < sizeof(http->wbuffer))
+    if ((length + (size_t)http->wused) <= sizeof(http->wbuffer) && length < sizeof(http->wbuffer))
     {
      /*
       * Write to buffer...
@@ -3403,9 +3395,9 @@ httpWrite2(http_t     *http,              /* I - HTTP connection */
                     CUPS_LLCAST length));
 
       if (http->data_encoding == HTTP_ENCODING_CHUNKED)
-       bytes = (ssize_t)http_write_chunk(http, buffer, (int)length);
+       bytes = (ssize_t)http_write_chunk(http, buffer, length);
       else
-       bytes = (ssize_t)http_write(http, buffer, (int)length);
+       bytes = (ssize_t)http_write(http, buffer, length);
 
       DEBUG_printf(("2httpWrite2: Wrote " CUPS_LLFMT " bytes...",
                     CUPS_LLCAST bytes));
@@ -3700,11 +3692,11 @@ http_content_coding_finish(
         do
         {
           http->stream.next_out  = (Bytef *)http->wbuffer + http->wused;
-          http->stream.avail_out = sizeof(http->wbuffer) - http->wused;
+          http->stream.avail_out = (uInt)(sizeof(http->wbuffer) - (size_t)http->wused);
 
           zerr = deflate(&(http->stream), Z_FINISH);
 
-          http->wused = sizeof(http->wbuffer) - http->stream.avail_out;
+          http->wused = (int)(sizeof(http->wbuffer) - (size_t)http->stream.avail_out);
           if (http->wused == sizeof(http->wbuffer))
             httpFlushWrite(http);
         }
@@ -3996,7 +3988,7 @@ http_debug_hex(const char *prefix,        /* I - Prefix for line */
       if (ch < ' ' || ch >= 127)
        ch = '.';
 
-      *ptr++ = ch;
+      *ptr++ = (char)ch;
     }
 
     *ptr = '\0';
@@ -4042,7 +4034,7 @@ http_read(http_t *http,                   /* I - HTTP connection */
   {
 #ifdef HAVE_SSL
     if (http->tls)
-      bytes = http_tls_read(http, buffer, length);
+      bytes = http_tls_read(http, buffer, (int)length);
     else
 #endif /* HAVE_SSL */
     bytes = recv(http->fd, buffer, length, 0);
@@ -4142,9 +4134,9 @@ http_read_buffered(http_t *http,  /* I - HTTP connection */
   if (http->used > 0)
   {
     if (length > (size_t)http->used)
-      bytes = (size_t)http->used;
+      bytes = (ssize_t)http->used;
     else
-      bytes = length;
+      bytes = (ssize_t)length;
 
     DEBUG_printf(("2http_read: Grabbing %d bytes from input buffer.",
                   (int)bytes));
@@ -4462,7 +4454,7 @@ http_set_length(http_t *http)             /* I - Connection */
     http->data_remaining = remaining;
 
     if (remaining <= INT_MAX)
-      http->_data_remaining = remaining;
+      http->_data_remaining = (int)remaining;
     else
       http->_data_remaining = INT_MAX;
   }
@@ -4683,7 +4675,7 @@ http_write(http_t     *http,              /* I - HTTP connection */
 
 #ifdef HAVE_SSL
     if (http->tls)
-      bytes = http_tls_write(http, buffer, length);
+      bytes = http_tls_write(http, buffer, (int)length);
     else
 #endif /* HAVE_SSL */
     bytes = send(http->fd, buffer, length, 0);
@@ -4737,11 +4729,11 @@ http_write(http_t     *http,            /* I - HTTP connection */
 
     buffer += bytes;
     tbytes += bytes;
-    length -= bytes;
+    length -= (size_t)bytes;
   }
 
 #ifdef DEBUG
-  http_debug_hex("http_write", buffer - tbytes, tbytes);
+  http_debug_hex("http_write", buffer - tbytes, (int)tbytes);
 #endif /* DEBUG */
 
   DEBUG_printf(("3http_write: Returning " CUPS_LLFMT ".", CUPS_LLCAST tbytes));
index db40b81..a660ca9 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Hyper-Text Transport Protocol definitions for CUPS.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -633,8 +633,8 @@ extern const char   *httpResolveHostname(http_t *http, char *buffer, size_t bufsiz
 extern int             httpSaveCredentials(const char *path, cups_array_t *credentials, const char *common_name) _CUPS_API_2_0;
 extern void            httpSetKeepAlive(http_t *http, http_keepalive_t keep_alive) _CUPS_API_2_0;
 extern void            httpShutdown(http_t *http) _CUPS_API_2_0;
-extern const char      *httpStateString(http_state_t state);
-
+extern const char      *httpStateString(http_state_t state) _CUPS_API_2_0;
+extern const char      *httpURIStatusString(http_uri_status_t status) _CUPS_API_2_0;
 
 /*
  * C++ magic...
index 3dd6451..2d88408 100644 (file)
@@ -1,18 +1,18 @@
 /*
  * "$Id$"
  *
- *   Private IPP definitions for CUPS.
+ * Private IPP definitions for CUPS.
  *
- *   Copyright 2007-2012 by Apple Inc.
- *   Copyright 1997-2006 by Easy Software Products.
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2006 by Easy Software Products.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
  *
- *   This file is subject to the Apple OS-Developed Software exception.
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 #ifndef _CUPS_IPP_PRIVATE_H_
index 598f76a..a6d7298 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Internet Printing Protocol support functions for CUPS.
  *
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -683,7 +683,7 @@ ippAttributeString(
           {
             unsigned year;             /* Year */
 
-            year = (val->date[0] << 8) + val->date[1];
+            year = ((unsigned)val->date[0] << 8) + (unsigned)val->date[1];
 
            if (val->date[9] == 0 && val->date[10] == 0)
              snprintf(temp, sizeof(temp), "%04u-%02u-%02uT%02u:%02u:%02uZ",
@@ -752,8 +752,7 @@ ippAttributeString(
 
       case IPP_TAG_BEGIN_COLLECTION :
           if (buffer && bufptr < bufend)
-            bufptr += ipp_col_string(val->collection, bufptr,
-                                     bufend - bufptr + 1);
+            bufptr += ipp_col_string(val->collection, bufptr, (size_t)(bufend - bufptr + 1));
           else
             bufptr += ipp_col_string(val->collection, NULL, 0);
           break;
@@ -804,7 +803,7 @@ ippAttributeString(
   else if (bufend)
     *bufend = '\0';
 
-  return (bufptr - buffer);
+  return ((size_t)(bufptr - buffer));
 }
 
 
@@ -1845,7 +1844,7 @@ ippEnumValue(const char *attrname,        /* I - Attribute name */
   */
 
   if (isdigit(*enumstring & 255))
-    return (strtol(enumstring, NULL, 0));
+    return ((int)strtol(enumstring, NULL, 0));
 
  /*
   * Otherwise look up the string...
@@ -1972,7 +1971,7 @@ ippErrorString(ipp_status_t error)        /* I - Error status */
 ipp_status_t                           /* O - IPP status code */
 ippErrorValue(const char *name)                /* I - Name */
 {
-  int          i;
+  size_t       i;                      /* Looping var */
 
 
   for (i = 0; i < (sizeof(ipp_status_oks) / sizeof(ipp_status_oks[0])); i ++)
@@ -2049,7 +2048,7 @@ ippOpString(ipp_op_t op)          /* I - Operation ID */
 ipp_op_t                               /* O - Operation ID */
 ippOpValue(const char *name)           /* I - Textual name */
 {
-  int          i;
+  size_t       i;                      /* Looping var */
 
 
   if (!strncmp(name, "0x", 2))
@@ -2161,7 +2160,7 @@ ippTagString(ipp_tag_t tag)               /* I - Tag value */
 ipp_tag_t                              /* O - Tag value */
 ippTagValue(const char *name)          /* I - Tag name */
 {
-  int  i;                              /* Looping var */
+  size_t       i;                      /* Looping var */
 
 
   for (i = 0; i < (sizeof(ipp_tag_names) / sizeof(ipp_tag_names[0])); i ++)
@@ -2230,7 +2229,7 @@ ipp_col_string(ipp_t  *col,               /* I - Collection attribute */
       bufptr += strlen(attr->name) + 1;
 
     if (buffer && bufptr < bufend)
-      bufptr += ippAttributeString(attr, bufptr, bufend - bufptr + 1);
+      bufptr += ippAttributeString(attr, bufptr, (size_t)(bufend - bufptr + 1));
     else
       bufptr += ippAttributeString(attr, temp, sizeof(temp));
   }
@@ -2246,7 +2245,7 @@ ipp_col_string(ipp_t  *col,               /* I - Collection attribute */
     *bufptr = '}';
   bufptr ++;
 
-  return (bufptr - buffer);
+  return ((size_t)(bufptr - buffer));
 }
 
 
index fc813d6..dafbf9e 100644 (file)
 /*
  * "$Id$"
  *
- *   Internet Printing Protocol functions for CUPS.
- *
- *   Copyright 2007-2013 by Apple Inc.
- *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
- *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- *   This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- *   _cupsBufferGet()       - Get a read/write buffer.
- *   _cupsBufferRelease()    - Release a read/write buffer.
- *   ippAddBoolean()        - Add a boolean attribute to an IPP message.
- *   ippAddBooleans()       - Add an array of boolean values.
- *   ippAddCollection()      - Add a collection value.
- *   ippAddCollections()     - Add an array of collection values.
- *   ippAddDate()           - Add a date attribute to an IPP message.
- *   ippAddInteger()        - Add a integer attribute to an IPP message.
- *   ippAddIntegers()       - Add an array of integer values.
- *   ippAddOctetString()     - Add an octetString value to an IPP message.
- *   ippAddOutOfBand()      - Add an out-of-band value to an IPP message.
- *   ippAddRange()          - Add a range of values to an IPP message.
- *   ippAddRanges()         - Add ranges of values to an IPP message.
- *   ippAddResolution()      - Add a resolution value to an IPP message.
- *   ippAddResolutions()     - Add resolution values to an IPP message.
- *   ippAddSeparator()      - Add a group separator to an IPP message.
- *   ippAddString()         - Add a language-encoded string to an IPP message.
- *   ippAddStringf()        - Add a formatted string to an IPP message.
- *   ippAddStringfv()       - Add a formatted string to an IPP message.
- *   ippAddStrings()        - Add language-encoded strings to an IPP message.
- *   ippContainsInteger()    - Determine whether an attribute contains the
- *                            specified value or is within the list of ranges.
- *   ippContainsString()     - Determine whether an attribute contains the
- *                            specified string value.
- *   ippCopyAttribute()      - Copy an attribute.
- *   ippCopyAttributes()     - Copy attributes from one IPP message to another.
- *   ippDateToTime()        - Convert from RFC 1903 Date/Time format to UNIX
- *                            time in seconds.
- *   ippDelete()            - Delete an IPP message.
- *   ippDeleteAttribute()    - Delete a single attribute in an IPP message.
- *   ippDeleteValues()      - Delete values in an attribute.
- *   ippFindAttribute()      - Find a named attribute in a request.
- *   ippFindNextAttribute()  - Find the next named attribute in a request.
- *   ippFirstAttribute()     - Return the first attribute in the message.
- *   ippGetBoolean()        - Get a boolean value for an attribute.
- *   ippGetCollection()      - Get a collection value for an attribute.
- *   ippGetCount()          - Get the number of values in an attribute.
- *   ippGetDate()           - Get a date value for an attribute.
- *   ippGetGroupTag()       - Get the group associated with an attribute.
- *   ippGetInteger()        - Get the integer/enum value for an attribute.
- *   ippGetName()           - Get the attribute name.
- *   ippGetOctetString()     - Get an octetString value from an IPP attribute.
- *   ippGetOperation()      - Get the operation ID in an IPP message.
- *   ippGetRange()          - Get a rangeOfInteger value from an attribute.
- *   ippGetRequestId()      - Get the request ID from an IPP message.
- *   ippGetResolution()      - Get a resolution value for an attribute.
- *   ippGetState()          - Get the IPP message state.
- *   ippGetStatusCode()      - Get the status code from an IPP response or
- *                            event message.
- *   ippGetString()         - Get the string and optionally the language code
- *                            for an attribute.
- *   ippGetValueTag()       - Get the value tag for an attribute.
- *   ippGetVersion()        - Get the major and minor version number from an
- *                            IPP message.
- *   ippLength()            - Compute the length of an IPP message.
- *   ippNextAttribute()      - Return the next attribute in the message.
- *   ippNew()               - Allocate a new IPP message.
- *   ippNewRequest()        - Allocate a new IPP request message.
- *   ippNewResponse()       - Allocate a new IPP response message.
- *   ippRead()              - Read data for an IPP message from a HTTP
- *                            connection.
- *   ippReadFile()          - Read data for an IPP message from a file.
- *   ippReadIO()            - Read data for an IPP message.
- *   ippSetBoolean()        - Set a boolean value in an attribute.
- *   ippSetCollection()      - Set a collection value in an attribute.
- *   ippSetDate()           - Set a date value in an attribute.
- *   ippSetGroupTag()       - Set the group tag of an attribute.
- *   ippSetInteger()        - Set an integer or enum value in an attribute.
- *   ippSetName()           - Set the name of an attribute.
- *   ippSetOctetString()     - Set an octetString value in an IPP attribute.
- *   ippSetOperation()      - Set the operation ID in an IPP request message.
- *   ippSetRange()          - Set a rangeOfInteger value in an attribute.
- *   ippSetRequestId()      - Set the request ID in an IPP message.
- *   ippSetResolution()      - Set a resolution value in an attribute.
- *   ippSetState()          - Set the current state of the IPP message.
- *   ippSetStatusCode()      - Set the status code in an IPP response or event
- *                            message.
- *   ippSetString()         - Set a string value in an attribute.
- *   ippSetStringf()        - Set a formatted string value of an attribute.
- *   ippSetStringf()        - Set a formatted string value of an attribute.
- *   ippSetValueTag()       - Set the value tag of an attribute.
- *   ippSetVersion()        - Set the version number in an IPP message.
- *   ippTimeToDate()        - Convert from UNIX time to RFC 1903 format.
- *   ippValidateAttribute()  - Validate the contents of an attribute.
- *   ippValidateAttributes() - Validate all attributes in an IPP message.
- *   ippWrite()             - Write data for an IPP message to a HTTP
- *                            connection.
- *   ippWriteFile()         - Write data for an IPP message to a file.
- *   ippWriteIO()           - Write data for an IPP message.
- *   ipp_add_attr()         - Add a new attribute to the message.
- *   ipp_free_values()      - Free attribute values.
- *   ipp_get_code()         - Convert a C locale/charset name into an IPP
- *                            language/charset code.
- *   ipp_lang_code()        - Convert a C locale name into an IPP language
- *                            code.
- *   ipp_length()           - Compute the length of an IPP message or
- *                            collection value.
- *   ipp_read_http()        - Semi-blocking read on a HTTP connection...
- *   ipp_read_file()        - Read IPP data from a file.
- *   ipp_set_error()        - Set a formatted, localized error string.
- *   ipp_set_value()        - Get the value element from an attribute,
- *                            expanding it as needed.
- *   ipp_write_file()       - Write IPP data to a file.
+ * Internet Printing Protocol functions for CUPS.
+ *
+ * Copyright 2007-2014 by Apple Inc.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ *
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
+ *
+ * This file is subject to the Apple OS-Developed Software exception.
  */
 
 /*
@@ -656,7 +550,7 @@ ippAddOctetString(ipp_t      *ipp,  /* I - IPP message */
 
   if (data)
   {
-    if ((attr->values[0].unknown.data = malloc(datalen)) == NULL)
+    if ((attr->values[0].unknown.data = malloc((size_t)datalen)) == NULL)
     {
       ippDeleteAttribute(ipp, attr);
       return (NULL);
@@ -1232,7 +1126,7 @@ ippAddStringfv(ipp_t      *ipp,           /* I - IPP message */
     if (!s)
       s = "(null)";
 
-    bytes = strlen(s);
+    bytes = (ssize_t)strlen(s);
     strlcpy(buffer, s, sizeof(buffer));
   }
   else
@@ -1818,7 +1712,7 @@ ippCopyAttribute(
 
          if (dstval->unknown.length > 0)
          {
-           if ((dstval->unknown.data = malloc(dstval->unknown.length)) == NULL)
+           if ((dstval->unknown.data = malloc((size_t)dstval->unknown.length)) == NULL)
              dstval->unknown.length = 0;
            else
              memcpy(dstval->unknown.data, srcval->unknown.data, dstval->unknown.length);
@@ -2744,8 +2638,8 @@ ippNew(void)
     if (cg->server_version == 0)
       _cupsSetDefaults();
 
-    temp->request.any.version[0] = cg->server_version / 10;
-    temp->request.any.version[1] = cg->server_version % 10;
+    temp->request.any.version[0] = (ipp_uchar_t)(cg->server_version / 10);
+    temp->request.any.version[1] = (ipp_uchar_t)(cg->server_version % 10);
     temp->use                    = 1;
   }
 
@@ -3304,7 +3198,7 @@ ippReadIO(void       *src,                /* I - Data source */
            * New attribute; read the name and add it...
            */
 
-           if ((*cb)(src, buffer, n) < n)
+           if ((*cb)(src, buffer, (size_t)n) < n)
            {
              DEBUG_puts("1ippReadIO: unable to read name.");
              _cupsBufferRelease((char *)buffer);
@@ -3405,7 +3299,7 @@ ippReadIO(void       *src,                /* I - Data source */
                  return (IPP_STATE_ERROR);
                }
 
-                value->boolean = buffer[0];
+                value->boolean = (char)buffer[0];
                break;
 
             case IPP_TAG_NOVALUE :
@@ -3436,7 +3330,7 @@ ippReadIO(void       *src,                /* I - Data source */
            case IPP_TAG_MIMETYPE :
                if (n > 0)
                {
-                 if ((*cb)(src, buffer, n) < n)
+                 if ((*cb)(src, buffer, (size_t)n) < n)
                  {
                    DEBUG_puts("1ippReadIO: unable to read string value.");
                    _cupsBufferRelease((char *)buffer);
@@ -3537,7 +3431,7 @@ ippReadIO(void       *src,                /* I - Data source */
                  return (IPP_STATE_ERROR);
                }
 
-               if ((*cb)(src, buffer, n) < n)
+               if ((*cb)(src, buffer, (size_t)n) < n)
                {
                  DEBUG_puts("1ippReadIO: Unable to read string w/language "
                             "value.");
@@ -3559,8 +3453,7 @@ ippReadIO(void       *src,                /* I - Data source */
 
                n = (bufptr[0] << 8) | bufptr[1];
 
-               if ((bufptr + 2 + n) >= (buffer + IPP_BUF_SIZE) ||
-                   n >= sizeof(string))
+               if ((bufptr + 2 + n) >= (buffer + IPP_BUF_SIZE) || n >= (int)sizeof(string))
                {
                  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
                                _("IPP language length overflows value."), 1);
@@ -3662,7 +3555,7 @@ ippReadIO(void       *src,                /* I - Data source */
                  _cupsBufferRelease((char *)buffer);
                  return (IPP_STATE_ERROR);
                }
-               else if ((*cb)(src, buffer, n) < n)
+               else if ((*cb)(src, buffer, (size_t)n) < n)
                {
                  DEBUG_puts("1ippReadIO: Unable to read member name value.");
                  _cupsBufferRelease((char *)buffer);
@@ -3698,7 +3591,7 @@ ippReadIO(void       *src,                /* I - Data source */
 
                if (n > 0)
                {
-                 if ((value->unknown.data = malloc(n)) == NULL)
+                 if ((value->unknown.data = malloc((size_t)n)) == NULL)
                  {
                    _cupsSetHTTPError(HTTP_STATUS_ERROR);
                    DEBUG_puts("1ippReadIO: Unable to allocate value");
@@ -3706,7 +3599,7 @@ ippReadIO(void       *src,                /* I - Data source */
                    return (IPP_STATE_ERROR);
                  }
 
-                 if ((*cb)(src, value->unknown.data, n) < n)
+                 if ((*cb)(src, value->unknown.data, (size_t)n) < n)
                  {
                    DEBUG_puts("1ippReadIO: Unable to read unsupported value.");
                    _cupsBufferRelease((char *)buffer);
@@ -3777,7 +3670,7 @@ ippSetBoolean(ipp_t           *ipp,       /* I  - IPP message */
   */
 
   if ((value = ipp_set_value(ipp, attr, element)) != NULL)
-    value->boolean = boolvalue;
+    value->boolean = (char)boolvalue;
 
   return (value != NULL);
 }
@@ -4072,7 +3965,7 @@ ippSetOctetString(
       {
        void    *temp;                  /* Temporary data pointer */
 
-       if ((temp = malloc(datalen)) != NULL)
+       if ((temp = malloc((size_t)datalen)) != NULL)
        {
          memcpy(temp, data, datalen);
 
@@ -4470,7 +4363,7 @@ ippSetStringfv(ipp_t           *ipp,      /* I  - IPP message */
     if (!s)
       s = "(null)";
 
-    bytes = strlen(s);
+    bytes = (ssize_t)strlen(s);
     strlcpy(buffer, s, sizeof(buffer));
   }
   else
@@ -4751,8 +4644,8 @@ ippSetVersion(ipp_t *ipp,         /* I - IPP message */
   * Set the version number...
   */
 
-  ipp->request.any.version[0] = major;
-  ipp->request.any.version[1] = minor;
+  ipp->request.any.version[0] = (ipp_uchar_t)major;
+  ipp->request.any.version[1] = (ipp_uchar_t)minor;
 
   return (1);
 }
@@ -4790,13 +4683,13 @@ ippTimeToDate(time_t t)                 /* I - UNIX time value */
   unixdate = gmtime(&t);
   unixdate->tm_year += 1900;
 
-  date[0]  = unixdate->tm_year >> 8;
-  date[1]  = unixdate->tm_year;
-  date[2]  = unixdate->tm_mon + 1;
-  date[3]  = unixdate->tm_mday;
-  date[4]  = unixdate->tm_hour;
-  date[5]  = unixdate->tm_min;
-  date[6]  = unixdate->tm_sec;
+  date[0]  = (ipp_uchar_t)(unixdate->tm_year >> 8);
+  date[1]  = (ipp_uchar_t)(unixdate->tm_year);
+  date[2]  = (ipp_uchar_t)(unixdate->tm_mon + 1);
+  date[3]  = (ipp_uchar_t)unixdate->tm_mday;
+  date[4]  = (ipp_uchar_t)unixdate->tm_hour;
+  date[5]  = (ipp_uchar_t)unixdate->tm_min;
+  date[6]  = (ipp_uchar_t)unixdate->tm_sec;
   date[7]  = 0;
   date[8]  = '+';
   date[9]  = 0;
@@ -5561,12 +5454,12 @@ ippWriteIO(void       *dst,             /* I - Destination */
 
          *bufptr++ = ipp->request.any.version[0];
          *bufptr++ = ipp->request.any.version[1];
-         *bufptr++ = ipp->request.any.op_status >> 8;
-         *bufptr++ = ipp->request.any.op_status;
-         *bufptr++ = ipp->request.any.request_id >> 24;
-         *bufptr++ = ipp->request.any.request_id >> 16;
-         *bufptr++ = ipp->request.any.request_id >> 8;
-         *bufptr++ = ipp->request.any.request_id;
+         *bufptr++ = (ipp_uchar_t)(ipp->request.any.op_status >> 8);
+         *bufptr++ = (ipp_uchar_t)ipp->request.any.op_status;
+         *bufptr++ = (ipp_uchar_t)(ipp->request.any.request_id >> 24);
+         *bufptr++ = (ipp_uchar_t)(ipp->request.any.request_id >> 16);
+         *bufptr++ = (ipp_uchar_t)(ipp->request.any.request_id >> 8);
+         *bufptr++ = (ipp_uchar_t)ipp->request.any.request_id;
 
          DEBUG_printf(("2ippWriteIO: version=%d.%d", buffer[0], buffer[1]));
          DEBUG_printf(("2ippWriteIO: op_status=%04x",
@@ -5574,7 +5467,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
          DEBUG_printf(("2ippWriteIO: request_id=%d",
                        ipp->request.any.request_id));
 
-          if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
+          if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
          {
            DEBUG_puts("1ippWriteIO: Could not write IPP header...");
            _cupsBufferRelease((char *)buffer);
@@ -5627,7 +5520,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
 
              DEBUG_printf(("2ippWriteIO: wrote group tag=%x(%s)",
                            attr->group_tag, ippTagString(attr->group_tag)));
-             *bufptr++ = attr->group_tag;
+             *bufptr++ = (ipp_uchar_t)attr->group_tag;
            }
            else if (attr->group_tag == IPP_TAG_ZERO)
              continue;
@@ -5672,16 +5565,16 @@ ippWriteIO(void       *dst,             /* I - Destination */
             if (attr->value_tag > 0xff)
             {
               *bufptr++ = IPP_TAG_EXTENSION;
-             *bufptr++ = attr->value_tag >> 24;
-             *bufptr++ = attr->value_tag >> 16;
-             *bufptr++ = attr->value_tag >> 8;
-             *bufptr++ = attr->value_tag;
+             *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 24);
+             *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 16);
+             *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 8);
+             *bufptr++ = (ipp_uchar_t)attr->value_tag;
             }
             else
-             *bufptr++ = attr->value_tag;
+             *bufptr++ = (ipp_uchar_t)attr->value_tag;
 
-           *bufptr++ = n >> 8;
-           *bufptr++ = n;
+           *bufptr++ = (ipp_uchar_t)(n >> 8);
+           *bufptr++ = (ipp_uchar_t)n;
            memcpy(bufptr, attr->name, n);
            bufptr += n;
           }
@@ -5715,21 +5608,21 @@ ippWriteIO(void       *dst,             /* I - Destination */
             *bufptr++ = IPP_TAG_MEMBERNAME;
            *bufptr++ = 0;
            *bufptr++ = 0;
-           *bufptr++ = n >> 8;
-           *bufptr++ = n;
+           *bufptr++ = (ipp_uchar_t)(n >> 8);
+           *bufptr++ = (ipp_uchar_t)n;
            memcpy(bufptr, attr->name, n);
            bufptr += n;
 
             if (attr->value_tag > 0xff)
             {
               *bufptr++ = IPP_TAG_EXTENSION;
-             *bufptr++ = attr->value_tag >> 24;
-             *bufptr++ = attr->value_tag >> 16;
-             *bufptr++ = attr->value_tag >> 8;
-             *bufptr++ = attr->value_tag;
+             *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 24);
+             *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 16);
+             *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 8);
+             *bufptr++ = (ipp_uchar_t)attr->value_tag;
             }
             else
-             *bufptr++ = attr->value_tag;
+             *bufptr++ = (ipp_uchar_t)attr->value_tag;
 
             *bufptr++ = 0;
             *bufptr++ = 0;
@@ -5760,7 +5653,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                {
                   if ((IPP_BUF_SIZE - (bufptr - buffer)) < 9)
                  {
-                    if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
+                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
                    {
                      DEBUG_puts("1ippWriteIO: Could not write IPP "
                                 "attribute...");
@@ -5778,7 +5671,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                    * values with a zero-length name...
                    */
 
-                    *bufptr++ = attr->value_tag;
+                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
                    *bufptr++ = 0;
                    *bufptr++ = 0;
                  }
@@ -5792,10 +5685,10 @@ ippWriteIO(void       *dst,             /* I - Destination */
 
                  *bufptr++ = 0;
                  *bufptr++ = 4;
-                 *bufptr++ = value->integer >> 24;
-                 *bufptr++ = value->integer >> 16;
-                 *bufptr++ = value->integer >> 8;
-                 *bufptr++ = value->integer;
+                 *bufptr++ = (ipp_uchar_t)(value->integer >> 24);
+                 *bufptr++ = (ipp_uchar_t)(value->integer >> 16);
+                 *bufptr++ = (ipp_uchar_t)(value->integer >> 8);
+                 *bufptr++ = (ipp_uchar_t)value->integer;
                }
                break;
 
@@ -5806,7 +5699,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                {
                   if ((IPP_BUF_SIZE - (bufptr - buffer)) < 6)
                  {
-                    if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
+                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
                    {
                      DEBUG_puts("1ippWriteIO: Could not write IPP "
                                 "attribute...");
@@ -5824,7 +5717,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                    * values with a zero-length name...
                    */
 
-                    *bufptr++ = attr->value_tag;
+                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
                    *bufptr++ = 0;
                    *bufptr++ = 0;
                  }
@@ -5837,7 +5730,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
 
                  *bufptr++ = 0;
                  *bufptr++ = 1;
-                 *bufptr++ = value->boolean;
+                 *bufptr++ = (ipp_uchar_t)value->boolean;
                }
                break;
 
@@ -5867,7 +5760,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
 
                     if ((IPP_BUF_SIZE - (bufptr - buffer)) < 3)
                    {
-                      if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
+                      if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
                      {
                        DEBUG_puts("1ippWriteIO: Could not write IPP "
                                   "attribute...");
@@ -5878,7 +5771,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                      bufptr = buffer;
                    }
 
-                    *bufptr++ = attr->value_tag;
+                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
                    *bufptr++ = 0;
                    *bufptr++ = 0;
                  }
@@ -5900,7 +5793,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
 
                   if ((int)(IPP_BUF_SIZE - (bufptr - buffer)) < (n + 2))
                  {
-                    if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
+                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
                    {
                      DEBUG_puts("1ippWriteIO: Could not write IPP "
                                 "attribute...");
@@ -5921,8 +5814,8 @@ ippWriteIO(void       *dst,               /* I - Destination */
                  * Put the 2-byte length and string characters in the buffer.
                  */
 
-                 *bufptr++ = n >> 8;
-                 *bufptr++ = n;
+                 *bufptr++ = (ipp_uchar_t)(n >> 8);
+                 *bufptr++ = (ipp_uchar_t)n;
 
                  if (n > 0)
                  {
@@ -5939,7 +5832,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                {
                   if ((IPP_BUF_SIZE - (bufptr - buffer)) < 16)
                  {
-                    if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
+                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
                    {
                      DEBUG_puts("1ippWriteIO: Could not write IPP "
                                 "attribute...");
@@ -5957,7 +5850,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                    * values with a zero-length name...
                    */
 
-                    *bufptr++ = attr->value_tag;
+                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
                    *bufptr++ = 0;
                    *bufptr++ = 0;
                  }
@@ -5984,7 +5877,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                {
                   if ((IPP_BUF_SIZE - (bufptr - buffer)) < 14)
                  {
-                    if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
+                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
                    {
                      DEBUG_puts("1ippWriteIO: Could not write IPP "
                                 "attribute...");
@@ -6002,7 +5895,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                    * values with a zero-length name...
                    */
 
-                    *bufptr++ = attr->value_tag;
+                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
                    *bufptr++ = 0;
                    *bufptr++ = 0;
                  }
@@ -6018,15 +5911,15 @@ ippWriteIO(void       *dst,             /* I - Destination */
 
                  *bufptr++ = 0;
                  *bufptr++ = 9;
-                 *bufptr++ = value->resolution.xres >> 24;
-                 *bufptr++ = value->resolution.xres >> 16;
-                 *bufptr++ = value->resolution.xres >> 8;
-                 *bufptr++ = value->resolution.xres;
-                 *bufptr++ = value->resolution.yres >> 24;
-                 *bufptr++ = value->resolution.yres >> 16;
-                 *bufptr++ = value->resolution.yres >> 8;
-                 *bufptr++ = value->resolution.yres;
-                 *bufptr++ = value->resolution.units;
+                 *bufptr++ = (ipp_uchar_t)(value->resolution.xres >> 24);
+                 *bufptr++ = (ipp_uchar_t)(value->resolution.xres >> 16);
+                 *bufptr++ = (ipp_uchar_t)(value->resolution.xres >> 8);
+                 *bufptr++ = (ipp_uchar_t)value->resolution.xres;
+                 *bufptr++ = (ipp_uchar_t)(value->resolution.yres >> 24);
+                 *bufptr++ = (ipp_uchar_t)(value->resolution.yres >> 16);
+                 *bufptr++ = (ipp_uchar_t)(value->resolution.yres >> 8);
+                 *bufptr++ = (ipp_uchar_t)value->resolution.yres;
+                 *bufptr++ = (ipp_uchar_t)value->resolution.units;
                }
                break;
 
@@ -6037,7 +5930,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                {
                   if ((IPP_BUF_SIZE - (bufptr - buffer)) < 13)
                  {
-                    if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
+                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
                    {
                      DEBUG_puts("1ippWriteIO: Could not write IPP "
                                 "attribute...");
@@ -6055,7 +5948,7 @@ ippWriteIO(void       *dst,               /* I - Destination */
                    * values with a zero-length name...
                    */
 
-                    *bufptr++ = attr->value_tag;
+