afe34b3f16
mDNSResponder. (NetBSD-3.x only for now.)
411 lines
8.4 KiB
Text
411 lines
8.4 KiB
Text
$NetBSD: patch-aa,v 1.1.1.1 2006/07/10 17:35:30 drochner Exp $
|
|
|
|
--- mDNSPosix/nss_mdns.c.orig 2006-07-10 13:43:18.000000000 +0200
|
|
+++ mDNSPosix/nss_mdns.c
|
|
@@ -96,7 +96,7 @@ b. in the case of services:
|
|
/*
|
|
Count the number of dots in a name string.
|
|
*/
|
|
-int
|
|
+static int
|
|
count_dots (const char * name);
|
|
|
|
|
|
@@ -107,7 +107,7 @@ count_dots (const char * name);
|
|
1 if name ends with ".local" or ".local."
|
|
0 otherwise
|
|
*/
|
|
-int
|
|
+static int
|
|
islocal (const char * name);
|
|
|
|
|
|
@@ -126,7 +126,7 @@ islocal (const char * name);
|
|
Pointer to (first character of) output buffer,
|
|
or NULL on error.
|
|
*/
|
|
-char *
|
|
+static char *
|
|
format_reverse_addr (int af, const void * addr, int prefixlen, char * buf);
|
|
|
|
|
|
@@ -145,7 +145,7 @@ format_reverse_addr (int af, const void
|
|
Pointer to (first character of) output buffer,
|
|
or NULL on error.
|
|
*/
|
|
-char *
|
|
+static char *
|
|
format_reverse_addr_in (
|
|
const struct in_addr * addr,
|
|
int prefixlen,
|
|
@@ -168,7 +168,7 @@ format_reverse_addr_in (
|
|
Pointer to (first character of) output buffer,
|
|
or NULL on error.
|
|
*/
|
|
-char *
|
|
+static char *
|
|
format_reverse_addr_in6 (
|
|
const struct in6_addr * addr,
|
|
int prefixlen,
|
|
@@ -189,7 +189,7 @@ format_reverse_addr_in6 (
|
|
0 on failure (no match)
|
|
< 0 on error
|
|
*/
|
|
-int
|
|
+static int
|
|
cmp_dns_suffix (const char * name, const char * domain);
|
|
enum
|
|
{
|
|
@@ -213,7 +213,7 @@ typedef int ns_class_t;
|
|
Appropriate AF code (from socket.h), or AF_UNSPEC if an appropriate
|
|
mapping couldn't be determined
|
|
*/
|
|
-int
|
|
+static int
|
|
rr_to_af (ns_type_t rrtype);
|
|
|
|
|
|
@@ -227,7 +227,7 @@ rr_to_af (ns_type_t rrtype);
|
|
Appropriate RR code (from nameser.h), or ns_t_invalid if an appropriate
|
|
mapping couldn't be determined
|
|
*/
|
|
-ns_type_t
|
|
+static ns_type_t
|
|
af_to_rr (int af);
|
|
|
|
|
|
@@ -237,7 +237,7 @@ af_to_rr (int af);
|
|
Returns
|
|
Matching AF code, or AF_UNSPEC if no match found.
|
|
*/
|
|
-int
|
|
+static int
|
|
str_to_af (const char * str);
|
|
|
|
|
|
@@ -247,7 +247,7 @@ str_to_af (const char * str);
|
|
Returns
|
|
Matching ns_class_t, or ns_c_invalid if no match found.
|
|
*/
|
|
-ns_class_t
|
|
+static ns_class_t
|
|
str_to_ns_class (const char * str);
|
|
|
|
|
|
@@ -257,7 +257,7 @@ str_to_ns_class (const char * str);
|
|
Returns
|
|
Matching ns_type_t, or ns_t_invalid if no match found.
|
|
*/
|
|
-ns_type_t
|
|
+static ns_type_t
|
|
str_to_ns_type (const char * str);
|
|
|
|
|
|
@@ -268,7 +268,7 @@ str_to_ns_type (const char * str);
|
|
String representation of AF,
|
|
or NULL if address family unrecognised or invalid.
|
|
*/
|
|
-const char *
|
|
+static const char *
|
|
af_to_str (int in);
|
|
|
|
|
|
@@ -279,7 +279,7 @@ af_to_str (int in);
|
|
String representation of ns_class_t,
|
|
or NULL if ns_class_t unrecognised or invalid.
|
|
*/
|
|
-const char *
|
|
+static const char *
|
|
ns_class_to_str (ns_class_t in);
|
|
|
|
|
|
@@ -290,7 +290,7 @@ ns_class_to_str (ns_class_t in);
|
|
String representation of ns_type_t,
|
|
or NULL if ns_type_t unrecognised or invalid.
|
|
*/
|
|
-const char *
|
|
+static const char *
|
|
ns_type_to_str (ns_type_t in);
|
|
|
|
|
|
@@ -320,7 +320,7 @@ ns_type_to_str (ns_type_t in);
|
|
< 0 on error.
|
|
A return of 0 implies the empty domain.
|
|
*/
|
|
-int
|
|
+static int
|
|
dns_rdata_to_name (const char * rdata, int rdlen, char * name, int name_len);
|
|
enum
|
|
{
|
|
@@ -359,7 +359,7 @@ typedef int errcode_t;
|
|
0 failure
|
|
-1 error, check errno
|
|
*/
|
|
-int
|
|
+static int
|
|
config_is_mdns_suffix (const char * name);
|
|
|
|
|
|
@@ -373,13 +373,17 @@ config_is_mdns_suffix (const char * name
|
|
0 configuration ready
|
|
non-zero configuration error code
|
|
*/
|
|
-errcode_t
|
|
-init_config ();
|
|
+static errcode_t
|
|
+init_config (void);
|
|
|
|
#define ENTNAME hostent
|
|
#define DATABASE "hosts"
|
|
|
|
+#ifdef __NetBSD__
|
|
+#include "netbsd.h"
|
|
+#else
|
|
#include <nss.h>
|
|
+#endif
|
|
// For nss_status
|
|
#include <netdb.h>
|
|
// For hostent
|
|
@@ -600,7 +604,7 @@ mdns_lookup_callback_t
|
|
void *context
|
|
);
|
|
|
|
-mdns_lookup_callback_t mdns_lookup_callback;
|
|
+static mdns_lookup_callback_t mdns_lookup_callback;
|
|
|
|
|
|
static int
|
|
@@ -1070,7 +1074,7 @@ handle_events (DNSServiceRef sdref, resu
|
|
Examine incoming data and add to relevant fields in result structure.
|
|
This routine is called from DNSServiceProcessResult where appropriate.
|
|
*/
|
|
-void
|
|
+static void
|
|
mdns_lookup_callback
|
|
(
|
|
DNSServiceRef sdref,
|
|
@@ -1700,14 +1704,14 @@ is_applicable_addr (
|
|
//----------
|
|
// Types and Constants
|
|
|
|
-const char * k_conf_file = "/etc/nss_mdns.conf";
|
|
+static const char * k_conf_file = "/etc/nss_mdns.conf";
|
|
#define CONF_LINE_SIZE 1024
|
|
|
|
-const char k_comment_char = '#';
|
|
+static const char k_comment_char = '#';
|
|
|
|
-const char * k_keyword_domain = "domain";
|
|
+static const char * k_keyword_domain = "domain";
|
|
|
|
-const char * k_default_domains [] =
|
|
+static const char * k_default_domains [] =
|
|
{
|
|
"local",
|
|
"254.169.in-addr.arpa",
|
|
@@ -1731,7 +1735,7 @@ typedef struct
|
|
domain_entry_t * domains;
|
|
} config_t;
|
|
|
|
-const config_t k_empty_config =
|
|
+static const config_t k_empty_config =
|
|
{
|
|
NULL
|
|
};
|
|
@@ -1780,7 +1784,7 @@ contains_domain_suffix (const config_t *
|
|
static config_t * g_config = NULL;
|
|
// Configuration info
|
|
|
|
-pthread_mutex_t g_config_mutex =
|
|
+static pthread_mutex_t g_config_mutex =
|
|
#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
|
|
PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
|
|
#else
|
|
@@ -1799,7 +1803,7 @@ pthread_mutex_t g_config_mutex =
|
|
0 success
|
|
non-zero error code on failure
|
|
*/
|
|
-errcode_t
|
|
+static errcode_t
|
|
init_config ()
|
|
{
|
|
if (g_config)
|
|
@@ -1872,7 +1876,7 @@ init_config ()
|
|
}
|
|
|
|
|
|
-int
|
|
+static int
|
|
config_is_mdns_suffix (const char * name)
|
|
{
|
|
int errcode = init_config ();
|
|
@@ -2025,7 +2029,7 @@ get_next_word (char * input, char **next
|
|
char * curr = input;
|
|
char * result;
|
|
|
|
- while (isspace (*curr))
|
|
+ while (isspace ((unsigned)*curr))
|
|
{
|
|
curr ++;
|
|
}
|
|
@@ -2036,7 +2040,7 @@ get_next_word (char * input, char **next
|
|
}
|
|
|
|
result = curr;
|
|
- while (*curr && ! isspace (*curr))
|
|
+ while (*curr && ! isspace ((unsigned)*curr))
|
|
{
|
|
curr++;
|
|
}
|
|
@@ -2254,7 +2258,7 @@ table_index_value (const table_entry_t t
|
|
//----------
|
|
// Util functions
|
|
|
|
-int
|
|
+static int
|
|
count_dots (const char * name)
|
|
{
|
|
int count = 0;
|
|
@@ -2269,14 +2273,14 @@ count_dots (const char * name)
|
|
}
|
|
|
|
|
|
-int
|
|
+static int
|
|
islocal (const char * name)
|
|
{
|
|
return cmp_dns_suffix (name, k_local_suffix) > 0;
|
|
}
|
|
|
|
|
|
-int
|
|
+static int
|
|
rr_to_af (ns_type_t rrtype)
|
|
{
|
|
switch (rrtype)
|
|
@@ -2293,7 +2297,7 @@ rr_to_af (ns_type_t rrtype)
|
|
}
|
|
|
|
|
|
-ns_type_t
|
|
+static ns_type_t
|
|
af_to_rr (int af)
|
|
{
|
|
switch (af)
|
|
@@ -2311,7 +2315,7 @@ af_to_rr (int af)
|
|
}
|
|
|
|
|
|
-int
|
|
+static int
|
|
str_to_af (const char * str)
|
|
{
|
|
int result =
|
|
@@ -2323,7 +2327,7 @@ str_to_af (const char * str)
|
|
}
|
|
|
|
|
|
-ns_class_t
|
|
+static ns_class_t
|
|
str_to_ns_class (const char * str)
|
|
{
|
|
return (ns_class_t)
|
|
@@ -2331,7 +2335,7 @@ str_to_ns_class (const char * str)
|
|
}
|
|
|
|
|
|
-ns_type_t
|
|
+static ns_type_t
|
|
str_to_ns_type (const char * str)
|
|
{
|
|
return (ns_type_t)
|
|
@@ -2339,7 +2343,7 @@ str_to_ns_type (const char * str)
|
|
}
|
|
|
|
|
|
-const char *
|
|
+static const char *
|
|
af_to_str (int in)
|
|
{
|
|
int result =
|
|
@@ -2351,7 +2355,7 @@ af_to_str (int in)
|
|
}
|
|
|
|
|
|
-const char *
|
|
+static const char *
|
|
ns_class_to_str (ns_class_t in)
|
|
{
|
|
if (in < k_table_ns_class_size)
|
|
@@ -2361,7 +2365,7 @@ ns_class_to_str (ns_class_t in)
|
|
}
|
|
|
|
|
|
-const char *
|
|
+static const char *
|
|
ns_type_to_str (ns_type_t in)
|
|
{
|
|
if (in < k_table_ns_type_size)
|
|
@@ -2371,7 +2375,7 @@ ns_type_to_str (ns_type_t in)
|
|
}
|
|
|
|
|
|
-char *
|
|
+static char *
|
|
format_reverse_addr_in (
|
|
const struct in_addr * addr,
|
|
int prefixlen,
|
|
@@ -2402,7 +2406,7 @@ format_reverse_addr_in (
|
|
}
|
|
|
|
|
|
-char *
|
|
+static char *
|
|
format_reverse_addr_in6 (
|
|
const struct in6_addr * addr,
|
|
int prefixlen,
|
|
@@ -2444,7 +2448,7 @@ format_reverse_addr_in6 (
|
|
}
|
|
|
|
|
|
-char *
|
|
+static char *
|
|
format_reverse_addr (
|
|
int af,
|
|
const void * addr,
|
|
@@ -2474,7 +2478,7 @@ format_reverse_addr (
|
|
}
|
|
|
|
|
|
-int
|
|
+static int
|
|
cmp_dns_suffix (const char * name, const char * domain)
|
|
{
|
|
const char * nametail;
|
|
@@ -2534,7 +2538,7 @@ cmp_dns_suffix (const char * name, const
|
|
while (
|
|
nametail >= name
|
|
&& domaintail >= domain
|
|
- && tolower(*nametail) == tolower(*domaintail))
|
|
+ && tolower((unsigned)*nametail) == tolower((unsigned)*domaintail))
|
|
{
|
|
nametail--;
|
|
domaintail--;
|
|
@@ -2565,7 +2569,7 @@ cmp_dns_suffix (const char * name, const
|
|
}
|
|
|
|
|
|
-int
|
|
+static int
|
|
dns_rdata_to_name (const char * rdata, int rdlen, char * name, int name_len)
|
|
{
|
|
int i = 0;
|
|
@@ -2573,7 +2577,7 @@ dns_rdata_to_name (const char * rdata, i
|
|
const char * rdata_curr = rdata;
|
|
|
|
// drop any leading whitespace rubbish
|
|
- while (isspace (*rdata_curr))
|
|
+ while (isspace ((unsigned)*rdata_curr))
|
|
{
|
|
rdata_curr ++;
|
|
if (rdata_curr > rdata + rdlen)
|