Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/apache2/mDNSResponder/dist resolve conflicts
details: https://anonhg.NetBSD.org/src/rev/5a1986856baa
branches: trunk
changeset: 829017:5a1986856baa
user: christos <christos%NetBSD.org@localhost>
date: Sun Jan 14 20:04:55 2018 +0000
description:
resolve conflicts
diffstat:
external/apache2/mDNSResponder/dist/Clients/dns-sd.c | 849 ++-
external/apache2/mDNSResponder/dist/mDNSCore/DNSCommon.c | 261 +-
external/apache2/mDNSResponder/dist/mDNSCore/DNSDigest.c | 3 +-
external/apache2/mDNSResponder/dist/mDNSCore/mDNS.c | 3134 +++++----
external/apache2/mDNSResponder/dist/mDNSCore/mDNSEmbeddedAPI.h | 468 +-
external/apache2/mDNSResponder/dist/mDNSCore/uDNS.c | 1010 ++-
external/apache2/mDNSResponder/dist/mDNSPosix/PosixDaemon.c | 11 +-
external/apache2/mDNSResponder/dist/mDNSPosix/mDNSPosix.c | 225 +-
external/apache2/mDNSResponder/dist/mDNSPosix/mDNSUNP.c | 56 +-
external/apache2/mDNSResponder/dist/mDNSShared/PlatformCommon.c | 24 +-
external/apache2/mDNSResponder/dist/mDNSShared/dns-sd.1 | 2 +-
external/apache2/mDNSResponder/dist/mDNSShared/dns_sd.h | 236 +-
external/apache2/mDNSResponder/dist/mDNSShared/dnssd_clientlib.c | 4 +-
external/apache2/mDNSResponder/dist/mDNSShared/dnssd_clientstub.c | 206 +-
external/apache2/mDNSResponder/dist/mDNSShared/dnssd_ipc.h | 8 +-
external/apache2/mDNSResponder/dist/mDNSShared/uds_daemon.c | 1454 ++--
16 files changed, 4554 insertions(+), 3397 deletions(-)
diffs (truncated from 15486 to 300 lines):
diff -r 9ba3aaed4cc1 -r 5a1986856baa external/apache2/mDNSResponder/dist/Clients/dns-sd.c
--- a/external/apache2/mDNSResponder/dist/Clients/dns-sd.c Sun Jan 14 19:59:51 2018 +0000
+++ b/external/apache2/mDNSResponder/dist/Clients/dns-sd.c Sun Jan 14 20:04:55 2018 +0000
@@ -1,8 +1,8 @@
/* -*- Mode: C; tab-width: 4 -*-
*
- * Copyright (c) 2002-2013 Apple Inc. All rights reserved.
+ * Copyright (c) 2002-2015 Apple Inc. All rights reserved.
*
- * Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc.
+ * Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc.
* ("Apple") in consideration of your agreement to the following terms, and your
* use, installation, modification or redistribution of this Apple software
* constitutes acceptance of these terms. If you do not agree with these terms,
@@ -16,7 +16,7 @@
* the Apple Software in its entirety and without modifications, you must retain
* this notice and the following text and disclaimers in all such redistributions of
* the Apple Software. Neither the name, trademarks, service marks or logos of
- * Apple Computer, Inc. may be used to endorse or promote products derived from the
+ * Apple Inc. may be used to endorse or promote products derived from the
* Apple Software without specific prior written permission from Apple. Except as
* expressly stated in this notice, no other rights or licenses, express or implied,
* are granted by Apple herein, including but not limited to any patent rights that
@@ -57,14 +57,6 @@
// aren't in the system's /usr/lib/libSystem.dylib.
//#define TEST_NEW_CLIENTSTUB 1
-// When building mDNSResponder for Mac OS X 10.4 and earlier, /usr/lib/libSystem.dylib is built using its own private
-// copy of dnssd_clientstub.c, which is old and doesn't have all the entry points defined in the latest version, so
-// when we're building dns-sd.c on Mac OS X 10.4 or earlier, we automatically set TEST_NEW_CLIENTSTUB so that we'll
-// embed a copy of the latest dnssd_clientstub.c instead of trying to link to the incomplete version in libSystem.dylib
-#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ <= 1040
-#define TEST_NEW_CLIENTSTUB 1
-#endif
-
#include <ctype.h>
#include <stdio.h> // For stdout, stderr
#include <stdlib.h> // For exit()
@@ -173,6 +165,7 @@
#undef _DNS_SD_LIBDISPATCH
#endif
#include "dns_sd.h"
+#include "dns_sd_internal.h"
#include "ClientCommon.h"
#if TEST_NEW_CLIENTSTUB
@@ -185,14 +178,6 @@
#include <dispatch/private.h>
#endif
-// The "+0" is to cope with the case where _DNS_SD_H is defined but empty (e.g. on Mac OS X 10.4 and earlier)
-#if _DNS_SD_H+0 >= 116
-#define HAS_NAT_PMP_API 1
-#define HAS_ADDRINFO_API 1
-#else
-#define kDNSServiceFlagsReturnIntermediates 0
-#endif
-
//*************************************************************************************************************
// Globals
@@ -336,18 +321,70 @@
{
switch (rr_type)
{
- case kDNSServiceType_A: return("Addr");
- case kDNSServiceType_NS: return("NS");
- case kDNSServiceType_MX: return("MX");
- case kDNSServiceType_CNAME: return("CNAME");
- case kDNSServiceType_SOA: return("SOA");
- case kDNSServiceType_PTR: return("PTR");
- case kDNSServiceType_AAAA: return("AAAA");
- case kDNSServiceType_NSEC: return("NSEC");
- case kDNSServiceType_TSIG: return("TSIG");
- case kDNSServiceType_RRSIG: return("RRSIG");
- case kDNSServiceType_DNSKEY: return("DNSKEY");
- case kDNSServiceType_DS: return("DS");
+ case kDNSServiceType_A: return("Addr");
+ case kDNSServiceType_NS: return("NS");
+ case kDNSServiceType_MD: return("MD");
+ case kDNSServiceType_MF: return("MF");
+ case kDNSServiceType_CNAME: return("CNAME");
+ case kDNSServiceType_SOA: return("SOA");
+ case kDNSServiceType_MB: return("MB");
+ case kDNSServiceType_MG: return("MG");
+ case kDNSServiceType_MR: return("MR");
+ case kDNSServiceType_NULL: return("NULL");
+ case kDNSServiceType_WKS: return("WKS");
+ case kDNSServiceType_PTR: return("PTR");
+ case kDNSServiceType_HINFO: return("HINFO");
+ case kDNSServiceType_MINFO: return("MINFO");
+ case kDNSServiceType_MX: return("MX");
+ case kDNSServiceType_TXT: return("TXT");
+ case kDNSServiceType_RP: return("RP");
+ case kDNSServiceType_AFSDB: return("AFSDB");
+ case kDNSServiceType_X25: return("X25");
+ case kDNSServiceType_ISDN: return("ISDN");
+ case kDNSServiceType_RT: return("RT");
+ case kDNSServiceType_NSAP: return("NSAP");
+ case kDNSServiceType_NSAP_PTR: return("NSAP_PTR");
+ case kDNSServiceType_SIG: return("SIG");
+ case kDNSServiceType_KEY: return("KEY");
+ case kDNSServiceType_PX: return("PX");
+ case kDNSServiceType_GPOS: return("GPOS");
+ case kDNSServiceType_AAAA: return("AAAA");
+ case kDNSServiceType_LOC: return("LOC");
+ case kDNSServiceType_NXT: return("NXT");
+ case kDNSServiceType_EID: return("EID");
+ case kDNSServiceType_NIMLOC: return("NIMLOC");
+ case kDNSServiceType_SRV: return("SRV");
+ case kDNSServiceType_ATMA: return("ATMA");
+ case kDNSServiceType_NAPTR: return("NAPTR");
+ case kDNSServiceType_KX: return("KX");
+ case kDNSServiceType_CERT: return("CERT");
+ case kDNSServiceType_A6: return("A6");
+ case kDNSServiceType_DNAME: return("DNAME");
+ case kDNSServiceType_SINK: return("SINK");
+ case kDNSServiceType_OPT: return("OPT");
+ case kDNSServiceType_APL: return("APL");
+ case kDNSServiceType_DS: return("DS");
+ case kDNSServiceType_SSHFP: return("SSHFP");
+ case kDNSServiceType_IPSECKEY: return("IPSECKEY");
+ case kDNSServiceType_RRSIG: return("RRSIG");
+ case kDNSServiceType_NSEC: return("NSEC");
+ case kDNSServiceType_DNSKEY: return("DNSKEY");
+ case kDNSServiceType_DHCID: return("DHCID");
+ case kDNSServiceType_NSEC3: return("NSEC3");
+ case kDNSServiceType_NSEC3PARAM: return("NSEC3PARAM");
+ case kDNSServiceType_HIP: return("HIP");
+ case kDNSServiceType_SPF: return("SPF");
+ case kDNSServiceType_UINFO: return("UINFO");
+ case kDNSServiceType_UID: return("UID");
+ case kDNSServiceType_GID: return("GID");
+ case kDNSServiceType_UNSPEC: return("UNSPEC");
+ case kDNSServiceType_TKEY: return("TKEY");
+ case kDNSServiceType_TSIG: return("TSIG");
+ case kDNSServiceType_IXFR: return("IXFR");
+ case kDNSServiceType_AXFR: return("AXFR");
+ case kDNSServiceType_MAILB: return("MAILB");
+ case kDNSServiceType_MAILA: return("MAILA");
+ case kDNSServiceType_ANY: return("ANY");
default:
{
static char buffer[RR_TYPE_SIZE];
@@ -421,7 +458,6 @@
#endif //_DNS_SD_LIBDISPATCH
}
-#if HAS_NAT_PMP_API | HAS_ADDRINFO_API
static DNSServiceProtocol GetProtocol(const char *s)
{
if (!strcasecmp(s, "v4" )) return(kDNSServiceProtocol_IPv4);
@@ -434,13 +470,14 @@
else if (!strcasecmp(s, "tcpudp" )) return(kDNSServiceProtocol_UDP | kDNSServiceProtocol_TCP);
else return(atoi(s));
}
-#endif
//*************************************************************************************************************
// Sample callback functions for each of the operation types
-static void printtimestamp(void)
+#define printtimestamp() printtimestamp_F(stdout)
+
+static void printtimestamp_F(FILE *outstream)
{
struct tm tm;
int ms;
@@ -461,10 +498,10 @@
strftime(new_date, sizeof(new_date), "%a %d %b %Y", &tm);
if (strncmp(date, new_date, sizeof(new_date)))
{
- printf("DATE: ---%s---\n", new_date); //display date only if it has changed
+ fprintf(outstream, "DATE: ---%s---\n", new_date); //display date only if it has changed
strncpy(date, new_date, sizeof(date));
}
- printf("%2d:%02d:%02d.%03d ", tm.tm_hour, tm.tm_min, tm.tm_sec, ms);
+ fprintf(outstream, "%2d:%02d:%02d.%03d ", tm.tm_hour, tm.tm_min, tm.tm_sec, ms);
}
// formating time to RFC 4034 format
@@ -485,45 +522,50 @@
static void print_usage(const char *arg0, int print_all)
{
+ // Print the commonly used command line options. These are listed in "the order they have been in historically".
fprintf(stderr, "%s -E (Enumerate recommended registration domains)\n", arg0);
fprintf(stderr, "%s -F (Enumerate recommended browsing domains)\n", arg0);
fprintf(stderr, "%s -R <Name> <Type> <Domain> <Port> [<TXT>...] (Register a service)\n", arg0);
- fprintf(stderr, "%s -B <Type> <Domain> (Browse for services instances)\n", arg0);
- fprintf(stderr, "%s -L <Name> <Type> <Domain> (Look up a service instance)\n", arg0);
- fprintf(stderr, "%s -P <Name> <Type> <Domain> <Port> <Host> <IP> [<TXT>...] (Proxy)\n", arg0);
- fprintf(stderr, "%s -q <name> <rrtype> <rrclass> (Generic query for any record type)\n", arg0);
- fprintf(stderr, "%s -D <name> <rrtype> <rrclass>(Validate query for any record type with DNSSEC)\n", arg0);
+ fprintf(stderr, "%s -B <Type> <Domain> (Browse for service instances)\n", arg0);
+ fprintf(stderr, "%s -L <Name> <Type> <Domain> (Resolve a service instance)\n", arg0);
+ fprintf(stderr, "%s -Q <name> <rrtype> <rrclass> (Generic query for any record type)\n", arg0);
fprintf(stderr, "%s -Z <Type> <Domain> (Output results in Zone File format)\n", arg0);
-#if HAS_ADDRINFO_API
fprintf(stderr, "%s -G v4/v6/v4v6 <name> (Get address information for hostname)\n", arg0);
- fprintf(stderr, "%s -g v4/v6/v4v6 <name> (Validate address info for hostname with DNSSEC)\n", arg0);
-#endif
+ fprintf(stderr, "%s -H (Print usage for complete command list)\n", arg0);
fprintf(stderr, "%s -V (Get version of currently running daemon / system service)\n", arg0);
- if (print_all) //Print all available options for dns-sd tool
+ if (print_all) // Print all available options for dns-sd tool. Keep these in alphabetical order for easier maintenance.
{
+ fprintf(stderr, "\n");
+ fprintf(stderr, "%s -A (Test Adding/Updating/Deleting a record)\n", arg0);
fprintf(stderr, "%s -C <FQDN> <rrtype> <rrclass> (Query; reconfirming each result)\n", arg0);
-#if HAS_NAT_PMP_API
- fprintf(stderr, "%s -X udp/tcp/udptcp <IntPort> <ExtPort> <TTL> (NAT Port Mapping)\n", arg0);
-#endif
- fprintf(stderr, "%s -A (Test Adding/Updating/Deleting a record)\n", arg0);
+ fprintf(stderr, "%s -D <name> <rrtype> <rrclass>(Validate query for any record type with DNSSEC)\n", arg0);
+ fprintf(stderr, "%s -I (Test registering and then immediately updating TXT record)\n", arg0);
+ fprintf(stderr, "%s -N (Test adding a large NULL record)\n", arg0);
+ fprintf(stderr, "%s -M (Test creating a registration with multiple TXT records)\n", arg0);
+ fprintf(stderr, "%s -P <Name> <Type> <Domain> <Port> <Host> <IP> [<TXT>...] (Proxy)\n", arg0);
+ fprintf(stderr, "%s -S (Test multiple operations on a shared socket)\n", arg0);
+ fprintf(stderr, "%s -T (Test creating a large TXT record)\n", arg0);
fprintf(stderr, "%s -U (Test updating a TXT record)\n", arg0);
- fprintf(stderr, "%s -N (Test adding a large NULL record)\n", arg0);
- fprintf(stderr, "%s -T (Test creating a large TXT record)\n", arg0);
- fprintf(stderr, "%s -M (Test creating a registration with multiple TXT records)\n", arg0);
- fprintf(stderr, "%s -I (Test registering and then immediately updating TXT record)\n", arg0);
- fprintf(stderr, "%s -S (Test multiple operations on a shared socket)\n", arg0);
+ fprintf(stderr, "%s -X udp/tcp/udptcp <IntPort> <ExtPort> <TTL> (NAT Port Mapping)\n", arg0);
+ fprintf(stderr, "%s -ble (Use kDNSServiceInterfaceIndexBLE)\n", arg0);
+ fprintf(stderr, "%s -g v4/v6/v4v6 <name> (Validate address info for hostname with DNSSEC)\n", arg0);
fprintf(stderr, "%s -i <Interface> (Run dns-sd cmd on a specific interface (en0/en1)\n", arg0);
- fprintf(stderr, "%s -lo (Run dns-sd cmd using local only interface)\n", arg0);
- fprintf(stderr, "%s -p2p (Use kDNSServiceInterfaceIndexP2P)\n", arg0);
fprintf(stderr, "%s -includep2p (Set kDNSServiceFlagsIncludeP2P flag)\n", arg0);
fprintf(stderr, "%s -includeAWDL (Set kDNSServiceFlagsIncludeAWDL flag)\n", arg0);
+ fprintf(stderr, "%s -intermediates (Set kDNSServiceFlagsReturnIntermediates flag)\n", arg0);
+ fprintf(stderr, "%s -ku (Set kDNSServiceFlagsKnownUnique flag)\n", arg0);
+ fprintf(stderr, "%s -lo (Run dns-sd cmd using local only interface)\n", arg0);
fprintf(stderr, "%s -optional (Set kDNSServiceFlagsValidateOptional flag)\n", arg0);
+ fprintf(stderr, "%s -p2p (Use kDNSServiceInterfaceIndexP2P)\n", arg0);
+ fprintf(stderr, "%s -q <name> <rrtype> <rrclass> (Equivalent to -Q with kDNSServiceFlagsSuppressUnusable set)\n", arg0);
fprintf(stderr, "%s -tc (Set kDNSServiceFlagsBackgroundTrafficClass flag)\n", arg0);
- fprintf(stderr, "%s -unicastResponse (Set kDNSServiceFlagsUnicastResponse flag)\n", arg0);
+ fprintf(stderr, "%s -test (Run basic API input range tests)\n", arg0);
fprintf(stderr, "%s -t1 (Set kDNSServiceFlagsThresholdOne flag)\n", arg0);
fprintf(stderr, "%s -tFinder (Set kDNSServiceFlagsThresholdFinder flag)\n", arg0);
fprintf(stderr, "%s -timeout (Set kDNSServiceFlagsTimeout flag)\n", arg0);
+ fprintf(stderr, "%s -unicastResponse (Set kDNSServiceFlagsUnicastResponse flag)\n", arg0);
+ fprintf(stderr, "%s -autoTrigger (Set kDNSServiceFlagsAutoTrigger flag)\n", arg0);
}
}
@@ -753,17 +795,20 @@
(void)context; // Unused
EXIT_IF_LIBDISPATCH_FATAL_ERROR(errorCode);
- if (errorCode)
- printf("Error code %d\n", errorCode);
- else
- {
- printtimestamp();
- printf("%s can be reached at %s:%u (interface %d)", fullname, hosttarget, PortAsNumber, ifIndex);
- if (flags) printf(" Flags: %X", flags);
- // Don't show degenerate TXT records containing nothing but a single empty string
- if (txtLen > 1) { printf("\n"); ShowTXTRecord(txtLen, txtRecord); }
- printf("\n");
- }
+ printtimestamp();
+
+ printf("%s ", fullname);
+
+ if (errorCode == kDNSServiceErr_NoSuchRecord) printf("No Such Record");
+ else if (errorCode) printf("error code %d\n", errorCode);
+ else printf("can be reached at %s:%u (interface %d)", hosttarget, PortAsNumber, ifIndex);
+
+ if (flags) printf(" Flags: %X", flags);
+
+ // Don't show degenerate TXT records containing nothing but a single empty string
+ if (!errorCode && txtLen > 1) { printf("\n"); ShowTXTRecord(txtLen, txtRecord); }
+
+ printf("\n");
if (!(flags & kDNSServiceFlagsMoreComing)) fflush(stdout);
}
@@ -798,6 +843,7 @@
{
if (updatetest[1] != 'Z') updatetest[1]++;
else updatetest[1] = 'A';
+ // The following line toggles the string length between 1 and 2 characters.
updatetest[0] = 3 - updatetest[0];
updatetest[2] = updatetest[1];
printtimestamp();
@@ -1041,15 +1087,15 @@
case kDNSServiceType_CNAME:
case kDNSServiceType_PTR:
case kDNSServiceType_DNAME:
- p += snprintd(p, sizeof(rdb), &rd);
+ snprintd(p, sizeof(rdb), &rd);
Home |
Main Index |
Thread Index |
Old Index