$NetBSD: patch-aa,v 1.2 2010/07/20 07:24:10 sbd Exp $

--- mDNSPosix/nss_mdns.c.orig	2008-11-04 20:06:20.000000000 +0000
+++ 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
@@ -584,7 +588,7 @@ mdns_lookup_callback_t
 	void				*context
 );
 
-mdns_lookup_callback_t mdns_lookup_callback;
+static mdns_lookup_callback_t mdns_lookup_callback;
 
 
 static int
@@ -1054,7 +1058,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,
@@ -1684,14 +1688,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",
@@ -1721,7 +1725,7 @@ typedef struct
 	domain_entry_t * domains;
 } config_t;
 
-const config_t k_empty_config =
+static const config_t k_empty_config =
 	{
 		NULL
 	};
@@ -1770,7 +1774,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
@@ -1789,7 +1793,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)
@@ -1862,7 +1866,7 @@ init_config ()
 }
 
 
-int
+static int
 config_is_mdns_suffix (const char * name)
 {
 	int errcode = init_config ();
@@ -2018,7 +2022,7 @@ get_next_word (char * input, char **next
 	char * curr = input;
 	char * result;
 	
-	while (isspace (*curr))
+	while (isspace ((unsigned)*curr))
 	{
 		curr ++;
 	}
@@ -2029,7 +2033,7 @@ get_next_word (char * input, char **next
 	}
 	
 	result = curr;
-	while (*curr && ! isspace (*curr))
+	while (*curr && ! isspace ((unsigned)*curr))
 	{
 		curr++;
 	}
@@ -2247,7 +2251,7 @@ table_index_value (const table_entry_t t
 //----------
 // Util functions
 
-int
+static int
 count_dots (const char * name)
 {
 	int count = 0;
@@ -2262,14 +2266,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)
@@ -2286,7 +2290,7 @@ rr_to_af (ns_type_t rrtype)
 }
 
 
-ns_type_t
+static ns_type_t
 af_to_rr (int af)
 {
 	switch (af)
@@ -2304,7 +2308,7 @@ af_to_rr (int af)
 }
 
 
-int
+static int
 str_to_af (const char * str)
 {
 	int result =
@@ -2316,7 +2320,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)
@@ -2324,7 +2328,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)
@@ -2332,7 +2336,7 @@ str_to_ns_type (const char * str)
 }
 
 
-const char *
+static const char *
 af_to_str (int in)
 {
 	int result =
@@ -2344,7 +2348,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)
@@ -2354,7 +2358,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)
@@ -2364,7 +2368,7 @@ ns_type_to_str (ns_type_t in)
 }
 
 
-char *
+static char *
 format_reverse_addr_in (
 	const struct in_addr * addr,
 	int prefixlen,
@@ -2395,7 +2399,7 @@ format_reverse_addr_in (
 }
 
 
-char *
+static char *
 format_reverse_addr_in6 (
 	const struct in6_addr * addr,
 	int prefixlen,
@@ -2437,7 +2441,7 @@ format_reverse_addr_in6 (
 }
 
 
-char *
+static char *
 format_reverse_addr (
 	int af,
 	const void * addr,
@@ -2467,7 +2471,7 @@ format_reverse_addr (
 }
 
 
-int
+static int
 cmp_dns_suffix (const char * name, const char * domain)
 {
 	const char * nametail;
@@ -2527,7 +2531,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--;
@@ -2558,7 +2562,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;
