[prev in list] [next in list] [prev in thread] [next in thread]
List: cups-commit
Subject: [cups.commit] [CUPS] r9731 - in trunk: cups xcode/CUPS.xcodeproj
From: cups-dev () easysw ! com
Date: 2011-04-29 22:45:48
Message-ID: 10502-cups.commit () news ! easysw ! com
[Download RAW message or body]
Author: mike
Date: 2011-04-29 15:45:35 -0700 (Fri, 29 Apr 2011)
New Revision: 9731
Log:
Update Bonjour support to resolve the server's hostname to a FQDN (not just a
.local name) when needed.
Modified:
trunk/cups/backend.c
trunk/cups/http-private.h
trunk/cups/http-support.c
trunk/cups/testhttp.c
trunk/cups/util.c
trunk/xcode/CUPS.xcodeproj/project.pbxproj
Modified: trunk/cups/backend.c
===================================================================
--- trunk/cups/backend.c 2011-04-29 15:35:23 UTC (rev 9730)
+++ trunk/cups/backend.c 2011-04-29 22:45:35 UTC (rev 9731)
@@ -50,8 +50,10 @@
const char * /* O - Device URI or @code NULL@ */
cupsBackendDeviceURI(char **argv) /* I - Command-line arguments */
{
- const char *device_uri; /* Device URI */
+ const char *device_uri, /* Device URI */
+ *auth_info_required; /* AUTH_INFO_REQUIRED env var */
_cups_globals_t *cg = _cupsGlobals(); /* Global info */
+ int options; /* Resolve options */
if ((device_uri = getenv("DEVICE_URI")) == NULL)
@@ -62,8 +64,13 @@
device_uri = argv[0];
}
+ options = _HTTP_RESOLVE_STDERR;
+ if ((auth_info_required = getenv("AUTH_INFO_REQUIRED")) != NULL &&
+ !strcmp(auth_info_required, "negotiate"))
+ options |= _HTTP_RESOLVE_FQDN;
+
return (_httpResolveURI(device_uri, cg->resolved_uri,
- sizeof(cg->resolved_uri), 1, NULL, NULL));
+ sizeof(cg->resolved_uri), options, NULL, NULL));
}
Modified: trunk/cups/http-private.h
===================================================================
--- trunk/cups/http-private.h 2011-04-29 15:35:23 UTC (rev 9730)
+++ trunk/cups/http-private.h 2011-04-29 22:45:35 UTC (rev 9731)
@@ -137,6 +137,16 @@
/*
+ * Constants...
+ */
+
+
+#define _HTTP_RESOLVE_DEFAULT 0 /* Just resolve with default options */
+#define _HTTP_RESOLVE_STDERR 1 /* Log resolve progress to stderr */
+#define _HTTP_RESOLVE_FQDN 2 /* Resolve to a FQDN */
+
+
+/*
* Types and functions for SSL support...
*/
@@ -215,7 +225,6 @@
typedef void *http_tls_credentials_t;
# endif /* HAVE_LIBSSL */
-
typedef int (*_http_timeout_cb_t)(http_t *http, void *user_data);
struct _http_s /**** HTTP connection structure. ****/
@@ -365,7 +374,7 @@
extern void _httpFreeCredentials(http_tls_credentials_t credentials);
extern ssize_t _httpPeek(http_t *http, char *buffer, size_t length);
extern const char *_httpResolveURI(const char *uri, char *resolved_uri,
- size_t resolved_size, int log,
+ size_t resolved_size, int options,
int (*cb)(void *context),
void *context);
extern void _httpSetTimeout(http_t *http, double timeout,
Modified: trunk/cups/http-support.c
===================================================================
--- trunk/cups/http-support.c 2011-04-29 15:35:23 UTC (rev 9730)
+++ trunk/cups/http-support.c 2011-04-29 22:45:35 UTC (rev 9731)
@@ -36,13 +36,13 @@
* components.
* httpStatus() - Return a short string describing a HTTP status code.
* _cups_hstrerror() - hstrerror() emulation function for Solaris and
- * others...
+ * others.
* _httpDecodeURI() - Percent-decode a HTTP request URI.
* _httpEncodeURI() - Percent-encode a HTTP request URI.
* _httpResolveURI() - Resolve a DNS-SD URI.
* http_copy_decode() - Copy and decode a URI.
* http_copy_encode() - Copy and encode a URI.
- * resolve_callback() - Build a device URI for the given service name.
+ * http_resolve_cb() - Build a device URI for the given service name.
*/
/*
@@ -70,6 +70,7 @@
{
char *buffer; /* Pointer to buffer */
size_t bufsize; /* Size of buffer */
+ int options; /* Options passed to _httpResolveURI */
} _http_uribuf_t;
@@ -115,15 +116,15 @@
char *dstend, const char *reserved,
const char *term, int encode);
#ifdef HAVE_DNSSD
-static void DNSSD_API resolve_callback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
- DNSServiceErrorType errorCode,
- const char *fullName,
- const char *hostTarget,
- uint16_t port, uint16_t txtLen,
- const unsigned char *txtRecord,
- void *context);
+static void DNSSD_API http_resolve_cb(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+ DNSServiceErrorType errorCode,
+ const char *fullName,
+ const char *hostTarget,
+ uint16_t port, uint16_t txtLen,
+ const unsigned char *txtRecord,
+ void *context);
#endif /* HAVE_DNSSD */
@@ -1319,7 +1320,7 @@
#ifndef HAVE_HSTRERROR
/*
- * '_cups_hstrerror()' - hstrerror() emulation function for Solaris and others...
+ * '_cups_hstrerror()' - hstrerror() emulation function for Solaris and others.
*/
const char * /* O - Error string */
@@ -1382,7 +1383,7 @@
const char *uri, /* I - DNS-SD URI */
char *resolved_uri, /* I - Buffer for resolved URI */
size_t resolved_size, /* I - Size of URI buffer */
- int logit, /* I - Log progress to stderr? */
+ int options, /* I - Resolve options */
int (*cb)(void *context), /* I - Continue callback function */
void *context) /* I - Context pointer for callback */
{
@@ -1416,7 +1417,7 @@
sizeof(resource)) < HTTP_URI_OK)
#endif /* DEBUG */
{
- if (logit)
+ if (options & _HTTP_RESOLVE_STDERR)
_cupsLangPrintFilter(stderr, "ERROR", _("Bad device-uri \"%s\"."), uri);
DEBUG_printf(("6_httpResolveURI: httpSeparateURI returned %d!", status));
@@ -1449,7 +1450,7 @@
struct timeval stimeout; /* Timeout value for select() */
#endif /* HAVE_POLL */
- if (logit)
+ if (options & _HTTP_RESOLVE_STDERR)
fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
/*
@@ -1484,14 +1485,14 @@
if (domain)
*domain++ = '\0';
- uribuf.buffer = resolved_uri;
- uribuf.bufsize = resolved_size;
-
+ uribuf.buffer = resolved_uri;
+ uribuf.bufsize = resolved_size;
+ uribuf.options = options;
resolved_uri[0] = '\0';
DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
"domain=\"%s\"\n", hostname, regtype, domain));
- if (logit)
+ if (options & _HTTP_RESOLVE_STDERR)
{
fputs("STATE: +connecting-to-device\n", stderr);
fprintf(stderr, "DEBUG: Resolving \"%s\", regtype=\"%s\", "
@@ -1504,7 +1505,7 @@
{
localref = ref;
if (DNSServiceResolve(&localref, kDNSServiceFlagsShareConnection, 0,
- hostname, regtype, "local.", resolve_callback,
+ hostname, regtype, "local.", http_resolve_cb,
&uribuf) == kDNSServiceErr_NoError)
{
int fds; /* Number of ready descriptors */
@@ -1513,7 +1514,7 @@
for (;;)
{
- if (logit)
+ if (options & _HTTP_RESOLVE_STDERR)
_cupsLangPrintFilter(stderr, "INFO", _("Looking for printer."));
if (cb && !(*cb)(context))
@@ -1561,17 +1562,19 @@
* comes in, do an additional domain resolution...
*/
- if (domainsent == 0 && strcasecmp(domain, "local."))
+ if (domainsent == 0 && (domain && strcasecmp(domain, "local.")))
{
- if (logit)
+ if (options & _HTTP_RESOLVE_STDERR)
fprintf(stderr,
"DEBUG: Resolving \"%s\", regtype=\"%s\", "
- "domain=\"%s\"...\n", hostname, regtype, domain);
+ "domain=\"%s\"...\n", hostname, regtype,
+ domain ? domain : "");
domainref = ref;
- if (DNSServiceResolve(&domainref, kDNSServiceFlagsShareConnection, 0,
- hostname, regtype, domain, resolve_callback,
- &uribuf) == kDNSServiceErr_NoError)
+ if (DNSServiceResolve(&domainref, kDNSServiceFlagsShareConnection,
+ 0, hostname, regtype, domain,
+ http_resolve_cb, &uribuf)
+ == kDNSServiceErr_NoError)
domainsent = 1;
}
@@ -1580,7 +1583,8 @@
* printer-state-reason...
*/
- if (logit && offline == 0 && time(NULL) > (start_time + 5))
+ if ((options & _HTTP_RESOLVE_STDERR) && offline == 0 &&
+ time(NULL) > (start_time + 5))
{
fputs("STATE: +offline-report\n", stderr);
offline = 1;
@@ -1605,7 +1609,7 @@
DNSServiceRefDeallocate(ref);
}
- if (logit)
+ if (options & _HTTP_RESOLVE_STDERR)
{
if (uri)
fprintf(stderr, "DEBUG: Resolved as \"%s\"...\n", uri);
@@ -1623,7 +1627,7 @@
uri = NULL;
#endif /* HAVE_DNSSD */
- if (logit && !uri)
+ if ((options & _HTTP_RESOLVE_STDERR) && !uri)
_cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
}
@@ -1752,11 +1756,11 @@
#ifdef HAVE_DNSSD
/*
- * 'resolve_callback()' - Build a device URI for the given service name.
+ * 'http_resolve_cb()' - Build a device URI for the given service name.
*/
static void DNSSD_API
-resolve_callback(
+http_resolve_cb(
DNSServiceRef sdRef, /* I - Service reference */
DNSServiceFlags flags, /* I - Results flags */
uint32_t interfaceIndex, /* I - Interface number */
@@ -1768,25 +1772,35 @@
const unsigned char *txtRecord, /* I - TXT record data */
void *context) /* I - Pointer to URI buffer */
{
- const char *scheme; /* URI scheme */
- char rp[257]; /* Remote printer */
+ const char *scheme, /* URI scheme */
+ *hostptr; /* Pointer into hostTarget */
+ char rp[257], /* Remote printer */
+ fqdn[256]; /* FQDN of the .local name */
const void *value; /* Value from TXT record */
uint8_t valueLen; /* Length of value */
_http_uribuf_t *uribuf; /* URI buffer */
- DEBUG_printf(("7resolve_callback(sdRef=%p, flags=%x, interfaceIndex=%u, "
+ DEBUG_printf(("7http_resolve_cb(sdRef=%p, flags=%x, interfaceIndex=%u, "
"errorCode=%d, fullName=\"%s\", hostTarget=\"%s\", port=%u, "
"txtLen=%u, txtRecord=%p, context=%p)", sdRef, flags,
interfaceIndex, errorCode, fullName, hostTarget, port, txtLen,
txtRecord, context));
+ uribuf = (_http_uribuf_t *)context;
+
/*
* Figure out the scheme from the full name...
*/
- if (strstr(fullName, "._ipp") || strstr(fullName, "._fax-ipp"))
+ if (strstr(fullName, "._ipps") || strstr(fullName, "._ipp-tls"))
+ scheme = "ipps";
+ else if (strstr(fullName, "._ipp") || strstr(fullName, "._fax-ipp"))
scheme = "ipp";
+ else if (strstr(fullName, "._http."))
+ scheme = "http";
+ else if (strstr(fullName, "._https."))
+ scheme = "https";
else if (strstr(fullName, "._printer."))
scheme = "lpd";
else if (strstr(fullName, "._pdl-datastream."))
@@ -1813,16 +1827,61 @@
rp[0] = '\0';
/*
+ * Lookup the FQDN if needed...
+ */
+
+ if ((uribuf->options & _HTTP_RESOLVE_FQDN) &&
+ (hostptr = hostTarget + strlen(hostTarget) - 7) > hostTarget &&
+ !strcasecmp(hostptr, ".local."))
+ {
+ /*
+ * OK, we got a .local name but the caller needs a real domain. Start by
+ * getting the IP address of the .local name and then do reverse-lookups...
+ */
+
+ http_addrlist_t *addrlist, /* List of addresses */
+ *addr; /* Current address */
+
+ DEBUG_printf(("8http_resolve_cb: Looking up \"%s\".", hostTarget));
+
+ snprintf(fqdn, sizeof(fqdn), "%d", ntohs(port));
+ if ((addrlist = httpAddrGetList(hostTarget, AF_UNSPEC, fqdn)) != NULL)
+ {
+ for (addr = addrlist; addr; addr = addr->next)
+ {
+ int error = getnameinfo(&(addr->addr.addr),
+ httpAddrLength(&(addr->addr)),
+ fqdn, sizeof(fqdn), NULL, 0, NI_NAMEREQD);
+
+ if (!error)
+ {
+ DEBUG_printf(("8http_resolve_cb: Found \"%s\".", fqdn));
+
+ if ((hostptr = fqdn + strlen(fqdn) - 6) <= fqdn ||
+ strcasecmp(hostptr, ".local"))
+ {
+ hostTarget = fqdn;
+ break;
+ }
+ }
+#ifdef DEBUG
+ else
+ DEBUG_printf(("8http_resolve_cb: \"%s\" did not resolve: %d",
+ httpAddrString(&(addr->addr), fqdn, sizeof(fqdn)),
+ error));
+#endif /* DEBUG */
+ }
+ }
+ }
+
+ /*
* Assemble the final device URI...
*/
- uribuf = (_http_uribuf_t *)context;
-
httpAssembleURI(HTTP_URI_CODING_ALL, uribuf->buffer, uribuf->bufsize, scheme,
NULL, hostTarget, ntohs(port), rp);
- DEBUG_printf(("8resolve_callback: Resolved URI is \"%s\"...",
- uribuf->buffer));
+ DEBUG_printf(("8http_resolve_cb: Resolved URI is \"%s\"...", uribuf->buffer));
}
#endif /* HAVE_DNSSD */
Modified: trunk/cups/testhttp.c
===================================================================
--- trunk/cups/testhttp.c 2011-04-29 15:35:23 UTC (rev 9730)
+++ trunk/cups/testhttp.c 2011-04-29 22:45:35 UTC (rev 9731)
@@ -465,16 +465,34 @@
char resolved[1024]; /* Resolved URI */
- printf("_httpResolveURI(%s): ", argv[1]);
+ printf("_httpResolveURI(%s, _HTTP_RESOLVE_DEFAULT): ", argv[1]);
fflush(stdout);
- if (!_httpResolveURI(argv[1], resolved, sizeof(resolved), 1, NULL, NULL))
+ if (!_httpResolveURI(argv[1], resolved, sizeof(resolved),
+ _HTTP_RESOLVE_DEFAULT, NULL, NULL))
{
puts("FAIL");
return (1);
}
else
+ printf("PASS (%s)\n", resolved);
+
+ printf("_httpResolveURI(%s, _HTTP_RESOLVE_FQDN): ", argv[1]);
+ fflush(stdout);
+
+ if (!_httpResolveURI(argv[1], resolved, sizeof(resolved),
+ _HTTP_RESOLVE_FQDN, NULL, NULL))
{
+ puts("FAIL");
+ return (1);
+ }
+ else if (strstr(resolved, ".local:"))
+ {
+ printf("FAIL (%s)\n", resolved);
+ return (1);
+ }
+ else
+ {
printf("PASS (%s)\n", resolved);
return (0);
}
Modified: trunk/cups/util.c
===================================================================
--- trunk/cups/util.c 2011-04-29 15:35:23 UTC (rev 9730)
+++ trunk/cups/util.c 2011-04-29 22:45:35 UTC (rev 9731)
@@ -3,7 +3,7 @@
*
* Printing utilities for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -1762,7 +1762,8 @@
{
httpSeparateURI(HTTP_URI_CODING_ALL,
_httpResolveURI(attr->values[0].string.text, uri,
- sizeof(uri), 0, NULL, NULL),
+ sizeof(uri), _HTTP_RESOLVE_DEFAULT,
+ NULL, NULL),
scheme, sizeof(scheme), username, sizeof(username),
host, hostsize, port, resource, resourcesize);
ippDelete(response);
Modified: trunk/xcode/CUPS.xcodeproj/project.pbxproj
===================================================================
--- trunk/xcode/CUPS.xcodeproj/project.pbxproj 2011-04-29 15:35:23 UTC (rev 9730)
+++ trunk/xcode/CUPS.xcodeproj/project.pbxproj 2011-04-29 22:45:35 UTC (rev 9731)
@@ -14,8 +14,9 @@
);
dependencies = (
726AD704135E8AA1002C930D /* PBXTargetDependency */,
+ 273BF6DE1333B6370022CAAB /* PBXTargetDependency */,
+ 278C58D6136B641D00836530 /* PBXTargetDependency */,
270CCDB2135E3CDE00007BE2 /* PBXTargetDependency */,
- 273BF6DE1333B6370022CAAB /* PBXTargetDependency */,
);
name = Tests;
productName = Tests;
@@ -210,6 +211,23 @@
276683FD1337F7B8000D33D0 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; \
fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; }; 2766840F1337FA38000D33D0 \
/* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = \
72220EAE1333047D00FCA411 /* libcups.dylib */; }; 276684111337FA7C000D33D0 /* \
cupsaddsmb.c in Sources */ = {isa = PBXBuildFile; fileRef = 276684101337FA7C000D33D0 \
/* cupsaddsmb.c */; }; + 278C58D9136B645C00836530 /* libcups_static.a in Frameworks \
*/ = {isa = PBXBuildFile; fileRef = 72F75A4C1336F31B004BB496 /* libcups_static.a */; \
}; + 278C58DE136B645C00836530 /* CoreFoundation.framework in Frameworks */ = {isa = \
PBXBuildFile; fileRef = 278C58DA136B645C00836530 /* CoreFoundation.framework */; }; \
+ 278C58DF136B645C00836530 /* Kerberos.framework in Frameworks */ = {isa = \
PBXBuildFile; fileRef = 278C58DB136B645C00836530 /* Kerberos.framework */; }; \
+ 278C58E0136B645C00836530 /* libresolv.dylib in Frameworks */ = {isa = \
PBXBuildFile; fileRef = 278C58DC136B645C00836530 /* libresolv.dylib */; }; \
+ 278C58E1136B645C00836530 /* SystemConfiguration.framework in Frameworks */ = {isa \
= PBXBuildFile; fileRef = 278C58DD136B645C00836530 /* SystemConfiguration.framework \
*/; }; + 278C58E3136B647200836530 /* testhttp.c in Sources */ = {isa = PBXBuildFile; \
fileRef = 278C58E2136B647200836530 /* testhttp.c */; }; + 278C58E4136B649200836530 \
/* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = \
72F75A4C1336F31B004BB496 /* libcups_static.a */; }; + 278C58E9136B64B000836530 /* \
CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = \
278C58E5136B64AF00836530 /* CoreFoundation.framework */; }; \
+ 278C58EA136B64B000836530 /* Kerberos.framework in Frameworks */ = {isa = \
PBXBuildFile; fileRef = 278C58E6136B64B000836530 /* Kerberos.framework */; }; \
+ 278C58EB136B64B000836530 /* Security.framework in Frameworks */ = {isa = \
PBXBuildFile; fileRef = 278C58E7136B64B000836530 /* Security.framework */; }; \
+ 278C58EC136B64B000836530 /* SystemConfiguration.framework in Frameworks */ = {isa \
= PBXBuildFile; fileRef = 278C58E8136B64B000836530 /* SystemConfiguration.framework \
*/; }; + 278C58EF136B64C400836530 /* libresolv.dylib in Frameworks */ = {isa = \
PBXBuildFile; fileRef = 278C58ED136B64C300836530 /* libresolv.dylib */; }; \
+ 278C58F0136B64C400836530 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; \
fileRef = 278C58EE136B64C400836530 /* libz.dylib */; }; + 278C58F2136B64FE00836530 \
/* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = \
278C58F1136B64FD00836530 /* libiconv.dylib */; }; + 278C58F5136B652300836530 /* \
libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = \
278C58F3136B652300836530 /* libiconv.dylib */; }; + 278C58F6136B652300836530 /* \
Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = \
278C58F4136B652300836530 /* Security.framework */; }; + 278C58F8136B653800836530 /* \
libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58F7136B653800836530 \
/* libz.dylib */; }; 720DD6CD1358FD720064AA82 /* libcups.dylib in Frameworks */ = \
{isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; }; \
720DD6D31358FDDE0064AA82 /* snmp.c in Sources */ = {isa = PBXBuildFile; fileRef = \
720DD6D21358FDDE0064AA82 /* snmp.c */; }; 720DD6D413590AB90064AA82 /* ieee1284.c in \
Sources */ = {isa = PBXBuildFile; fileRef = 724379CA1334000E009631B9 /* ieee1284.c \
*/; }; @@ -699,6 +717,20 @@
remoteGlobalIDString = 276684031337FA1D000D33D0;
remoteInfo = cupsaddsmb;
};
+ 278C58D5136B641D00836530 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 278C58CA136B640300836530;
+ remoteInfo = testhttp;
+ };
+ 278C58D7136B642F00836530 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 274FF6891333B1C400317ECB;
+ remoteInfo = libcups_static;
+ };
720DD6CE1358FD790064AA82 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
@@ -1007,6 +1039,15 @@
);
runOnlyForDeploymentPostprocessing = 1;
};
+ 278C58C9136B640300836530 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = /usr/share/man/man1/;
+ dstSubfolderSpec = 0;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
720DD6C01358FD5F0064AA82 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@@ -1164,6 +1205,22 @@
276683F91337F7A9000D33D0 /* ipptool.c */ = {isa = PBXFileReference; fileEncoding = \
4; lastKnownFileType = sourcecode.c.c; name = ipptool.c; path = ../test/ipptool.c; \
sourceTree = "<group>"; }; 276684041337FA1D000D33D0 /* cupsaddsmb */ = {isa = \
PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = \
0; path = cupsaddsmb; sourceTree = BUILT_PRODUCTS_DIR; }; 276684101337FA7C000D33D0 \
/* cupsaddsmb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = \
sourcecode.c.c; name = cupsaddsmb.c; path = ../systemv/cupsaddsmb.c; sourceTree = \
"<group>"; }; + 278C58CB136B640300836530 /* testhttp */ = {isa = PBXFileReference; \
explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testhttp; \
sourceTree = BUILT_PRODUCTS_DIR; }; + 278C58DA136B645C00836530 /* \
CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = \
wrapper.framework; name = CoreFoundation.framework; path = \
SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = \
DEVELOPER_DIR; }; + 278C58DB136B645C00836530 /* Kerberos.framework */ = {isa = \
PBXFileReference; lastKnownFileType = wrapper.framework; name = Kerberos.framework; \
path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kerberos.framework; sourceTree = \
DEVELOPER_DIR; }; + 278C58DC136B645C00836530 /* libresolv.dylib */ = {isa = \
PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = \
libresolv.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libresolv.dylib; sourceTree = \
DEVELOPER_DIR; }; + 278C58DD136B645C00836530 /* SystemConfiguration.framework */ = \
{isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = \
SystemConfiguration.framework; path = \
SDKs/MacOSX10.6.sdk/System/Library/Frameworks/SystemConfiguration.framework; \
sourceTree = DEVELOPER_DIR; }; + 278C58E2136B647200836530 /* testhttp.c */ = {isa = \
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = \
testhttp.c; path = ../cups/testhttp.c; sourceTree = "<group>"; }; \
+ 278C58E5136B64AF00836530 /* CoreFoundation.framework */ = {isa = PBXFileReference; \
lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = \
../../../../../System/Library/Frameworks/CoreFoundation.framework; sourceTree = \
"<group>"; }; + 278C58E6136B64B000836530 /* Kerberos.framework */ = {isa = \
PBXFileReference; lastKnownFileType = wrapper.framework; name = Kerberos.framework; \
path = ../../../../../System/Library/Frameworks/Kerberos.framework; sourceTree = \
"<group>"; }; + 278C58E7136B64B000836530 /* Security.framework */ = {isa = \
PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; \
path = ../../../../../System/Library/Frameworks/Security.framework; sourceTree = \
"<group>"; }; + 278C58E8136B64B000836530 /* SystemConfiguration.framework */ = {isa \
= PBXFileReference; lastKnownFileType = wrapper.framework; name = \
SystemConfiguration.framework; path = \
../../../../../System/Library/Frameworks/SystemConfiguration.framework; sourceTree = \
"<group>"; }; + 278C58ED136B64C300836530 /* libresolv.dylib */ = {isa = \
PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = \
libresolv.dylib; path = ../../../../../usr/lib/libresolv.dylib; sourceTree = \
"<group>"; }; + 278C58EE136B64C400836530 /* libz.dylib */ = {isa = PBXFileReference; \
lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = \
../../../../../usr/lib/libz.dylib; sourceTree = "<group>"; }; \
+ 278C58F1136B64FD00836530 /* libiconv.dylib */ = {isa = PBXFileReference; \
lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = \
../../../../../usr/lib/libiconv.dylib; sourceTree = "<group>"; }; \
+ 278C58F3136B652300836530 /* libiconv.dylib */ = {isa = PBXFileReference; \
lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = \
SDKs/MacOSX10.6.sdk/usr/lib/libiconv.dylib; sourceTree = DEVELOPER_DIR; }; \
+ 278C58F4136B652300836530 /* Security.framework */ = {isa = PBXFileReference; \
lastKnownFileType = wrapper.framework; name = Security.framework; path = \
SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Security.framework; sourceTree = \
DEVELOPER_DIR; }; + 278C58F7136B653800836530 /* libz.dylib */ = {isa = \
PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; \
path = SDKs/MacOSX10.6.sdk/usr/lib/libz.dylib; sourceTree = DEVELOPER_DIR; }; \
27D3037C134148CB00F022B1 /* libcups_s.exp */ = {isa = PBXFileReference; \
lastKnownFileType = sourcecode.exports; name = libcups_s.exp; path = \
../cups/libcups_s.exp; sourceTree = "<group>"; }; 27D3037D134148CB00F022B1 /* \
libcups2.def */ = {isa = PBXFileReference; lastKnownFileType = text; name = \
libcups2.def; path = ../cups/libcups2.def; sourceTree = "<group>"; }; \
720DD6C21358FD5F0064AA82 /* snmp */ = {isa = PBXFileReference; explicitFileType = \
"compiled.mach-o.executable"; includeInIndex = 0; path = snmp; sourceTree = \
BUILT_PRODUCTS_DIR; }; @@ -1341,8 +1398,15 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 278C58E9136B64B000836530 /* CoreFoundation.framework in Frameworks */,
+ 278C58EA136B64B000836530 /* Kerberos.framework in Frameworks */,
+ 278C58EB136B64B000836530 /* Security.framework in Frameworks */,
+ 278C58EC136B64B000836530 /* SystemConfiguration.framework in Frameworks */,
270CCDB9135E3D0900007BE2 /* libcups_static.a in Frameworks */,
270CCDBA135E3D0900007BE2 /* libcupsmime.dylib in Frameworks */,
+ 278C58F2136B64FE00836530 /* libiconv.dylib in Frameworks */,
+ 278C58EF136B64C400836530 /* libresolv.dylib in Frameworks */,
+ 278C58F0136B64C400836530 /* libz.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1350,6 +1414,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 278C58E4136B649200836530 /* libcups_static.a in Frameworks */,
273BF6CE1333B5950022CAAB /* CoreFoundation.framework in Frameworks */,
273BF6D31333B5C30022CAAB /* Kerberos.framework in Frameworks */,
273BF6D41333B5C30022CAAB /* Security.framework in Frameworks */,
@@ -1500,6 +1565,21 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 278C58C8136B640300836530 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 278C58DE136B645C00836530 /* CoreFoundation.framework in Frameworks */,
+ 278C58DF136B645C00836530 /* Kerberos.framework in Frameworks */,
+ 278C58F6136B652300836530 /* Security.framework in Frameworks */,
+ 278C58E1136B645C00836530 /* SystemConfiguration.framework in Frameworks */,
+ 278C58D9136B645C00836530 /* libcups_static.a in Frameworks */,
+ 278C58F5136B652300836530 /* libiconv.dylib in Frameworks */,
+ 278C58E0136B645C00836530 /* libresolv.dylib in Frameworks */,
+ 278C58F8136B653800836530 /* libz.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
720DD6BF1358FD5F0064AA82 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -1639,8 +1719,9 @@
273BF6B81333B4A90022CAAB /* tests */ = {
isa = PBXGroup;
children = (
+ 273BF6C61333B5370022CAAB /* testcups.c */,
+ 278C58E2136B647200836530 /* testhttp.c */,
270CCDBB135E3D3E00007BE2 /* testmime.c */,
- 273BF6C61333B5370022CAAB /* testcups.c */,
);
name = tests;
sourceTree = "<group>";
@@ -1740,6 +1821,7 @@
720DD6C21358FD5F0064AA82 /* snmp */,
270CCDA7135E3C9E00007BE2 /* testmime */,
726AD6F7135E88F0002C930D /* ippserver */,
+ 278C58CB136B640300836530 /* testhttp */,
);
name = Products;
sourceTree = "<group>";
@@ -1903,7 +1985,6 @@
72220FB113330B4A00FCA411 /* Frameworks */ = {
isa = PBXGroup;
children = (
- 72F75A4C1336F31B004BB496 /* libcups_static.a */,
72220FAC13330B2200FCA411 /* libcupsmime.dylib */,
72220EAE1333047D00FCA411 /* libcups.dylib */,
72F75A611336F9A3004BB496 /* libcupsimage.dylib */,
@@ -1969,6 +2050,21 @@
72BF96351333042100B1EAD7 = {
isa = PBXGroup;
children = (
+ 278C58F7136B653800836530 /* libz.dylib */,
+ 278C58F3136B652300836530 /* libiconv.dylib */,
+ 278C58F4136B652300836530 /* Security.framework */,
+ 278C58F1136B64FD00836530 /* libiconv.dylib */,
+ 278C58ED136B64C300836530 /* libresolv.dylib */,
+ 278C58EE136B64C400836530 /* libz.dylib */,
+ 278C58E5136B64AF00836530 /* CoreFoundation.framework */,
+ 278C58E6136B64B000836530 /* Kerberos.framework */,
+ 278C58E7136B64B000836530 /* Security.framework */,
+ 278C58E8136B64B000836530 /* SystemConfiguration.framework */,
+ 72F75A4C1336F31B004BB496 /* libcups_static.a */,
+ 278C58DA136B645C00836530 /* CoreFoundation.framework */,
+ 278C58DB136B645C00836530 /* Kerberos.framework */,
+ 278C58DC136B645C00836530 /* libresolv.dylib */,
+ 278C58DD136B645C00836530 /* SystemConfiguration.framework */,
72220FB113330B4A00FCA411 /* Frameworks */,
72220F45133305D000FCA411 /* Public Headers */,
72220F461333060C00FCA411 /* Private Headers */,
@@ -2424,6 +2520,24 @@
productReference = 276684041337FA1D000D33D0 /* cupsaddsmb */;
productType = "com.apple.product-type.tool";
};
+ 278C58CA136B640300836530 /* testhttp */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 278C58D3136B640300836530 /* Build configuration list for \
PBXNativeTarget "testhttp" */; + buildPhases = (
+ 278C58C7136B640300836530 /* Sources */,
+ 278C58C8136B640300836530 /* Frameworks */,
+ 278C58C9136B640300836530 /* CopyFiles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 278C58D8136B642F00836530 /* PBXTargetDependency */,
+ );
+ name = testhttp;
+ productName = testhttp;
+ productReference = 278C58CB136B640300836530 /* testhttp */;
+ productType = "com.apple.product-type.tool";
+ };
720DD6C11358FD5F0064AA82 /* snmp */ = {
isa = PBXNativeTarget;
buildConfigurationList = 720DD6CB1358FD600064AA82 /* Build configuration list for \
PBXNativeTarget "snmp" */; @@ -2670,6 +2784,7 @@
};
buildConfigurationList = 72BF963A1333042100B1EAD7 /* Build configuration list for \
PBXProject "CUPS" */; compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
@@ -2710,6 +2825,7 @@
720DD6C11358FD5F0064AA82 /* snmp */,
7243792F1333FB85009631B9 /* socket */,
273BF6BC1333B5000022CAAB /* testcups */,
+ 278C58CA136B640300836530 /* testhttp */,
270CCDA6135E3C9E00007BE2 /* testmime */,
7243795A1333FF1D009631B9 /* usb */,
);
@@ -2926,6 +3042,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 278C58C7136B640300836530 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 278C58E3136B647200836530 /* testhttp.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
720DD6BE1358FD5F0064AA82 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -3346,6 +3470,16 @@
target = 276684031337FA1D000D33D0 /* cupsaddsmb */;
targetProxy = 276684121337FA8D000D33D0 /* PBXContainerItemProxy */;
};
+ 278C58D6136B641D00836530 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 278C58CA136B640300836530 /* testhttp */;
+ targetProxy = 278C58D5136B641D00836530 /* PBXContainerItemProxy */;
+ };
+ 278C58D8136B642F00836530 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 274FF6891333B1C400317ECB /* libcups_static */;
+ targetProxy = 278C58D7136B642F00836530 /* PBXContainerItemProxy */;
+ };
720DD6CF1358FD790064AA82 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 72220EAD1333047D00FCA411 /* libcups */;
@@ -4178,6 +4312,46 @@
};
name = Release;
};
+ 278C58D1136B640300836530 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.6;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ };
+ name = Debug;
+ };
+ 278C58D2136B640300836530 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ MACOSX_DEPLOYMENT_TARGET = 10.6;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
720DD6C91358FD5F0064AA82 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -4897,6 +5071,14 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ 278C58D3136B640300836530 /* Build configuration list for PBXNativeTarget \
"testhttp" */ = { + isa = XCConfigurationList;
+ buildConfigurations = (
+ 278C58D1136B640300836530 /* Debug */,
+ 278C58D2136B640300836530 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
720DD6CB1358FD600064AA82 /* Build configuration list for PBXNativeTarget "snmp" */ \
= { isa = XCConfigurationList;
buildConfigurations = (
_______________________________________________
cups-commit mailing list
cups-commit@easysw.com
http://lists.easysw.com/mailman/listinfo/cups-commit
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic