diff options
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | include/libc-symbols.h | 18 | ||||
-rw-r--r-- | include/resolv.h | 38 | ||||
-rw-r--r-- | resolv/base64.c | 9 | ||||
-rw-r--r-- | resolv/gethnamaddr.c | 8 | ||||
-rw-r--r-- | resolv/ns_name.c | 2 | ||||
-rw-r--r-- | resolv/ns_netint.c | 3 | ||||
-rw-r--r-- | resolv/res_comp.c | 15 | ||||
-rw-r--r-- | resolv/res_data.c | 7 | ||||
-rw-r--r-- | resolv/res_debug.c | 31 | ||||
-rw-r--r-- | resolv/res_mkquery.c | 1 | ||||
-rw-r--r-- | resolv/res_query.c | 6 | ||||
-rw-r--r-- | resolv/res_send.c | 3 |
13 files changed, 136 insertions, 21 deletions
@@ -1,3 +1,19 @@ +2004-10-17 Ulrich Drepper <drepper@redhat.com> + + * include/libc-symbols.h: Define libresolv_hidden_proto and friends. + * include/resolv.h: Add libresolv_hidden_proto for symbols defined, + used, and exported in libresolv. + * resolv/base64.c: Add libresolv_hidden_def. + * resolv/gethnamaddr.c: Likewise. + * resolv/ns_name.c: Likewise. + * resolv/ns_netint.c: Likewise. + * resolv/res_comp.c: Likewise. + * resolv/res_data.c: Likewise. + * resolv/res_debug.c: Likewise. + * resolv/res_mkquery.c: Likewise. + * resolv/res_query.c: Likewise. + * resolv/res_send.c: Likewise. + 2004-10-15 Jakub Jelinek <jakub@redhat.com> * elf/dl-minimal.c (__chk_fail): New. Add rtld_hidden_def. diff --git a/include/libc-symbols.h b/include/libc-symbols.h index 9cc72b261a..e7880b6c46 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -744,6 +744,24 @@ for linking") # define libm_hidden_data_ver(local, name) #endif +#if defined NOT_IN_libc && defined IS_IN_libresolv +# define libresolv_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) +# define libresolv_hidden_def(name) hidden_def (name) +# define libresolv_hidden_weak(name) hidden_weak (name) +# define libresolv_hidden_ver(local, name) hidden_ver (local, name) +# define libresolv_hidden_data_def(name) hidden_data_def (name) +# define libresolv_hidden_data_weak(name) hidden_data_weak (name) +# define libresolv_hidden_data_ver(local, name) hidden_data_ver (local, name) +#else +# define libresolv_hidden_proto(name, attrs...) +# define libresolv_hidden_def(name) +# define libresolv_hidden_weak(name) +# define libresolv_hidden_ver(local, name) +# define libresolv_hidden_data_def(name) +# define libresolv_hidden_data_weak(name) +# define libresolv_hidden_data_ver(local, name) +#endif + #ifdef HAVE_BUILTIN_REDIRECTION # define libc_hidden_builtin_proto(name, attrs...) libc_hidden_proto (name, ##attrs) # define libc_hidden_builtin_def(name) libc_hidden_def (name) diff --git a/include/resolv.h b/include/resolv.h index d62a8ff1e5..6f1c343b4a 100644 --- a/include/resolv.h +++ b/include/resolv.h @@ -60,6 +60,44 @@ int __libc_res_nsend (res_state, const u_char *, int, u_char *, int, u_char **) attribute_hidden; +libresolv_hidden_proto (_sethtent) +libresolv_hidden_proto (_gethtent) +libresolv_hidden_proto (_gethtbyaddr) +libresolv_hidden_proto (_gethtbyname2) +libresolv_hidden_proto (__dn_expand) +libresolv_hidden_proto (__dn_comp) +libresolv_hidden_proto (__dn_skipname) +libresolv_hidden_proto (__res_hnok) +libresolv_hidden_proto (__res_dnok) +libresolv_hidden_proto (__putlong) +libresolv_hidden_proto (__putshort) +libresolv_hidden_proto (__p_cdnname) +libresolv_hidden_proto (__p_fqnname) +libresolv_hidden_proto (__p_option) +libresolv_hidden_proto (__sym_ntos) +libresolv_hidden_proto (__p_rcode) +libresolv_hidden_proto (__p_class) +libresolv_hidden_proto (__p_type) +libresolv_hidden_proto (__loc_ntoa) +libresolv_hidden_proto (__fp_nquery) +libresolv_hidden_proto (__fp_query) +libresolv_hidden_proto (__hostalias) +libresolv_hidden_proto (__res_nmkquery) +libresolv_hidden_proto (__libc_res_nquery) +libresolv_hidden_proto (__res_nquery) +libresolv_hidden_proto (__res_nquerydomain) +libresolv_hidden_proto (__res_hostalias) +libresolv_hidden_proto (__libc_res_nsearch) +libresolv_hidden_proto (__res_nsearch) +libresolv_hidden_proto (__res_nameinquery) +libresolv_hidden_proto (__res_queriesmatch) +libresolv_hidden_proto (__res_nsend) +libresolv_hidden_proto (__b64_ntop) +libresolv_hidden_proto (__ns_name_ntop) +libresolv_hidden_proto (__ns_name_unpack) +libresolv_hidden_proto (__ns_get16) +libresolv_hidden_proto (__ns_get32) + #endif #endif diff --git a/resolv/base64.c b/resolv/base64.c index b7c7d1c1b8..ea584ed357 100644 --- a/resolv/base64.c +++ b/resolv/base64.c @@ -112,9 +112,9 @@ static const char Pad64 = '='; end of the data is performed using the '=' character. Since all base64 input is an integral number of octets, only the - ------------------------------------------------- + ------------------------------------------------- following cases can arise: - + (1) the final quantum of encoding input is an integral multiple of 24 bits; here, the final unit of encoded output will be an integral multiple of 4 characters @@ -156,14 +156,14 @@ b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) { target[datalength++] = Base64[output[2]]; target[datalength++] = Base64[output[3]]; } - + /* Now we worry about padding. */ if (0 != srclength) { /* Get what's left. */ input[0] = input[1] = input[2] = '\0'; for (i = 0; i < srclength; i++) input[i] = *src++; - + output[0] = input[0] >> 2; output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4); output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6); @@ -186,6 +186,7 @@ b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) { target[datalength] = '\0'; /* Returned value doesn't count \0. */ return (datalength); } +libresolv_hidden_def (b64_ntop) /* skips all whitespace anywhere. converts characters, four at a time, starting at (or after) diff --git a/resolv/gethnamaddr.c b/resolv/gethnamaddr.c index 1a4b08ecdc..3698e4b841 100644 --- a/resolv/gethnamaddr.c +++ b/resolv/gethnamaddr.c @@ -487,6 +487,9 @@ getanswer(answer, anslen, qname, qtype) return (NULL); } +extern struct hostent *gethostbyname2(const char *name, int af); +libresolv_hidden_proto (gethostbyname2) + struct hostent * gethostbyname(name) const char *name; @@ -637,6 +640,7 @@ gethostbyname2(name, af) free (buf.buf); return ret; } +libresolv_hidden_def (gethostbyname2) struct hostent * gethostbyaddr(addr, len, af) @@ -795,6 +799,7 @@ _sethtent(f) rewind(hostf); stayopen = f; } +libresolv_hidden_def (_sethtent) void _endhtent() @@ -869,6 +874,7 @@ _gethtent() __set_h_errno (NETDB_SUCCESS); return (&host); } +libresolv_hidden_def (_gethtent) struct hostent * _gethtbyname(name) @@ -907,6 +913,7 @@ _gethtbyname2(name, af) _endhtent(); return (p); } +libresolv_hidden_def (_gethtbyname2) struct hostent * _gethtbyaddr(addr, len, af) @@ -923,6 +930,7 @@ _gethtbyaddr(addr, len, af) _endhtent(); return (p); } +libresolv_hidden_def (_gethtbyaddr) static void map_v4v6_address(src, dst) diff --git a/resolv/ns_name.c b/resolv/ns_name.c index b96a1fe8ab..ed361915d8 100644 --- a/resolv/ns_name.c +++ b/resolv/ns_name.c @@ -145,6 +145,7 @@ ns_name_ntop(const u_char *src, char *dst, size_t dstsiz) { *dn++ = '\0'; return (dn - dst); } +libresolv_hidden_def (ns_name_ntop) /* * ns_name_pton(src, dst, dstsiz) @@ -421,6 +422,7 @@ ns_name_unpack(const u_char *msg, const u_char *eom, const u_char *src, len = srcp - src; return (len); } +libresolv_hidden_def (ns_name_unpack) /* * ns_name_pack(src, dst, dstsiz, dnptrs, lastdnptr) diff --git a/resolv/ns_netint.c b/resolv/ns_netint.c index ff24128cd6..20ecf626d8 100644 --- a/resolv/ns_netint.c +++ b/resolv/ns_netint.c @@ -22,6 +22,7 @@ static const char rcsid[] = "$BINDId: ns_netint.c,v 8.4 1999/10/13 16:39:35 vixi /* Import. */ #include <arpa/nameser.h> +#include <resolv.h> /* Public. */ @@ -32,6 +33,7 @@ ns_get16(const u_char *src) { NS_GET16(dst, src); return (dst); } +libresolv_hidden_def (ns_get16) u_long ns_get32(const u_char *src) { @@ -40,6 +42,7 @@ ns_get32(const u_char *src) { NS_GET32(dst, src); return (dst); } +libresolv_hidden_def (ns_get32) void ns_put16(u_int src, u_char *dst) { diff --git a/resolv/res_comp.c b/resolv/res_comp.c index f227c4d163..8157b97566 100644 --- a/resolv/res_comp.c +++ b/resolv/res_comp.c @@ -1,7 +1,7 @@ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,7 +13,7 @@ * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -29,14 +29,14 @@ /* * Portions Copyright (c) 1993 by Digital Equipment Corporation. - * + * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies, and that * the name of Digital Equipment Corporation not be used in advertising or * publicity pertaining to distribution of the document or software without * specific, written prior permission. - * + * * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT @@ -96,6 +96,7 @@ dn_expand(const u_char *msg, const u_char *eom, const u_char *src, dst[0] = '\0'; return (n); } +libresolv_hidden_def (dn_expand) /* * Pack domain name 'exp_dn' in presentation form into 'comp_dn'. @@ -110,6 +111,7 @@ dn_comp(const char *src, u_char *dst, int dstsiz, (const u_char **)dnptrs, (const u_char **)lastdnptr)); } +libresolv_hidden_def (dn_comp) /* * Skip over a compressed domain name. Return the size or -1. @@ -122,6 +124,7 @@ dn_skipname(const u_char *ptr, const u_char *eom) { return (-1); return (ptr - saveptr); } +libresolv_hidden_def (dn_skipname) /* * Verify that a domain name uses an acceptable character set. @@ -170,6 +173,7 @@ res_hnok(const char *dn) { } return (1); } +libresolv_hidden_def (res_hnok) /* * hostname-like (A, MX, WKS) owners can have "*" as their first label @@ -227,6 +231,7 @@ res_dnok(const char *dn) { return (0); return (1); } +libresolv_hidden_def (res_dnok) #ifdef BIND_4_COMPAT /* @@ -238,7 +243,9 @@ res_dnok(const char *dn) { * Note that one _ comes from C and the others come from us. */ void __putlong(u_int32_t src, u_char *dst) { ns_put32(src, dst); } +libresolv_hidden_def (__putlong) void __putshort(u_int16_t src, u_char *dst) { ns_put16(src, dst); } +libresolv_hidden_def (__putshort) #ifndef __ultrix__ u_int32_t _getlong(const u_char *src) { return (ns_get32(src)); } u_int16_t _getshort(const u_char *src) { return (ns_get16(src)); } diff --git a/resolv/res_data.c b/resolv/res_data.c index 2183e022c8..438f815605 100644 --- a/resolv/res_data.c +++ b/resolv/res_data.c @@ -39,7 +39,7 @@ static const char rcsid[] = "$BINDId: res_data.c,v 8.17 1999/10/13 17:11:31 vixi #include <string.h> #include <unistd.h> -const char *_res_opcodes[] = { +const char *_res_opcodes[] attribute_hidden = { "QUERY", "IQUERY", "CQUERYM", @@ -59,7 +59,7 @@ const char *_res_opcodes[] = { }; #ifdef BIND_UPDATE -const char *_res_sectioncodes[] = { +const char *_res_sectioncodes[] attribute_hidden = { "ZONE", "PREREQUISITES", "UPDATE", @@ -138,6 +138,7 @@ void fp_query(const u_char *msg, FILE *file) { fp_nquery(msg, PACKETSZ, file); } +libresolv_hidden_def (fp_query) void fp_nquery(const u_char *msg, int len, FILE *file) { @@ -146,6 +147,7 @@ fp_nquery(const u_char *msg, int len, FILE *file) { res_pquery(&_res, msg, len, file); } +libresolv_hidden_def (fp_nquery) int res_mkquery(int op, /* opcode of query */ @@ -295,6 +297,7 @@ hostalias(const char *name) { return (res_hostalias(&_res, name, abuf, sizeof abuf)); } +libresolv_hidden_def (hostalias) #ifdef ultrix int diff --git a/resolv/res_debug.c b/resolv/res_debug.c index bd1fd3388f..6b719d1f2d 100644 --- a/resolv/res_debug.c +++ b/resolv/res_debug.c @@ -118,8 +118,8 @@ static const char rcsid[] = "$BINDId: res_debug.c,v 8.34 2000/02/29 05:30:55 vix # define SPRINTF(x) sprintf x #endif -extern const char *_res_opcodes[]; -extern const char *_res_sectioncodes[]; +extern const char *_res_opcodes[] attribute_hidden; +extern const char *_res_sectioncodes[] attribute_hidden; /* * Print the current options. @@ -298,6 +298,7 @@ p_cdnname(const u_char *cp, const u_char *msg, int len, FILE *file) { fputs(name, file); return (cp + n); } +libresolv_hidden_def (p_cdnname) const u_char * p_cdname(const u_char *cp, const u_char *msg, FILE *file) { @@ -327,6 +328,7 @@ p_fqnname(cp, msg, msglen, name, namelen) } return (cp + n); } +libresolv_hidden_def (p_fqnname) /* XXX: the rest of these functions need to become length-limited, too. */ @@ -347,7 +349,7 @@ p_fqname(const u_char *cp, const u_char *msg, FILE *file) { * that C_ANY is a qclass but not a class. (You can ask for records of class * C_ANY, but you can't have any records of that class in the database.) */ -const struct res_sym __p_class_syms[] = { +const struct res_sym __p_class_syms[] attribute_hidden = { {C_IN, "IN"}, {C_CHAOS, "CHAOS"}, {C_HS, "HS"}, @@ -360,7 +362,7 @@ const struct res_sym __p_class_syms[] = { /* * Names of message sections. */ -const struct res_sym __p_default_section_syms[] = { +const struct res_sym __p_default_section_syms[] attribute_hidden = { {ns_s_qd, "QUERY"}, {ns_s_an, "ANSWER"}, {ns_s_ns, "AUTHORITY"}, @@ -368,7 +370,7 @@ const struct res_sym __p_default_section_syms[] = { {0, (char *)0} }; -const struct res_sym __p_update_section_syms[] = { +const struct res_sym __p_update_section_syms[] attribute_hidden = { {S_ZONE, "ZONE"}, {S_PREREQ, "PREREQUISITE"}, {S_UPDATE, "UPDATE"}, @@ -376,7 +378,7 @@ const struct res_sym __p_update_section_syms[] = { {0, (char *)0} }; -const struct res_sym __p_key_syms[] = { +const struct res_sym __p_key_syms[] attribute_hidden = { {NS_ALG_MD5RSA, "RSA", "RSA KEY with MD5 hash"}, {NS_ALG_DH, "DH", "Diffie Hellman"}, {NS_ALG_DSA, "DSA", "Digital Signature Algorithm"}, @@ -385,7 +387,7 @@ const struct res_sym __p_key_syms[] = { {0, NULL, NULL} }; -const struct res_sym __p_cert_syms[] = { +const struct res_sym __p_cert_syms[] attribute_hidden = { {cert_t_pkix, "PKIX", "PKIX (X.509v3) Certificate"}, {cert_t_spki, "SPKI", "SPKI certificate"}, {cert_t_pgp, "PGP", "PGP certificate"}, @@ -399,7 +401,7 @@ const struct res_sym __p_cert_syms[] = { * that T_ANY is a qtype but not a type. (You can ask for records of type * T_ANY, but you can't have any records of that type in the database.) */ -const struct res_sym __p_type_syms[] = { +const struct res_sym __p_type_syms[] attribute_hidden = { {ns_t_a, "A", "address"}, {ns_t_ns, "NS", "name server"}, {ns_t_md, "MD", "mail destination (deprecated)"}, @@ -450,7 +452,7 @@ const struct res_sym __p_type_syms[] = { /* * Names of DNS rcodes. */ -const struct res_sym __p_rcode_syms[] = { +const struct res_sym __p_rcode_syms[] attribute_hidden = { {ns_r_noerror, "NOERROR", "no error"}, {ns_r_formerr, "FORMERR", "format error"}, {ns_r_servfail, "SERVFAIL", "server failed"}, @@ -500,6 +502,7 @@ sym_ntos(const struct res_sym *syms, int number, int *success) { *success = 0; return (unname); } +libresolv_hidden_def (sym_ntos) const char * sym_ntop(const struct res_sym *syms, int number, int *success) { @@ -525,6 +528,7 @@ const char * p_type(int type) { return (sym_ntos(__p_type_syms, type, (int *)0)); } +libresolv_hidden_def (p_type) /* * Return a string for the type. @@ -551,6 +555,7 @@ const char * p_class(int class) { return (sym_ntos(__p_class_syms, class, (int *)0)); } +libresolv_hidden_def (p_class) /* * Return a mnemonic for an option @@ -581,6 +586,7 @@ p_option(u_long option) { return (nbuf); } } +libresolv_hidden_def (p_option) /* * Return a mnemonic for a time to live. @@ -601,6 +607,7 @@ const char * p_rcode(int rcode) { return (sym_ntos(__p_rcode_syms, rcode, (int *)0)); } +libresolv_hidden_def (p_rcode) /* * routines to convert between on-the-wire RR format and zone file format. @@ -608,8 +615,9 @@ p_rcode(int rcode) { * by 60*60*1000 for that. */ -static unsigned int poweroften[10] = {1, 10, 100, 1000, 10000, 100000, - 1000000,10000000,100000000,1000000000}; +static const unsigned int poweroften[10]= + { 1, 10, 100, 1000, 10000, 100000, + 1000000,10000000,100000000,1000000000}; /* takes an XeY precision/size value, returns a string representation. */ static const char * @@ -988,6 +996,7 @@ loc_ntoa(binary, ascii) return (ascii); } +libresolv_hidden_def (loc_ntoa) /* Return the number of DNS hierarchy levels in the name. */ diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c index 9825ae0fa3..875d495b72 100644 --- a/resolv/res_mkquery.c +++ b/resolv/res_mkquery.c @@ -219,3 +219,4 @@ res_nmkquery(res_state statp, } return (cp - buf); } +libresolv_hidden_def (res_nmkquery) diff --git a/resolv/res_query.c b/resolv/res_query.c index d2ef3b5e93..0feba6687a 100644 --- a/resolv/res_query.c +++ b/resolv/res_query.c @@ -190,6 +190,7 @@ __libc_res_nquery(res_state statp, } return (n); } +libresolv_hidden_def (__libc_res_nquery) int res_nquery(res_state statp, @@ -201,6 +202,7 @@ res_nquery(res_state statp, return __libc_res_nquery(statp, name, class, type, answer, anslen, NULL); } +libresolv_hidden_def (res_nquery) /* * Formulate a normal query, send, and retrieve answer in supplied buffer. @@ -365,6 +367,7 @@ __libc_res_nsearch(res_state statp, RES_SET_H_ERRNO(statp, TRY_AGAIN); return (-1); } +libresolv_hidden_def (__libc_res_nsearch) int res_nsearch(res_state statp, @@ -376,6 +379,7 @@ res_nsearch(res_state statp, return __libc_res_nsearch(statp, name, class, type, answer, anslen, NULL); } +libresolv_hidden_def (res_nsearch) /* * Perform a call on res_query on the concatenation of name and domain, @@ -439,6 +443,7 @@ res_nquerydomain(res_state statp, return __libc_res_nquerydomain(statp, name, domain, class, type, answer, anslen, NULL); } +libresolv_hidden_def (res_nquerydomain) const char * res_hostalias(const res_state statp, const char *name, char *dst, size_t siz) { @@ -476,3 +481,4 @@ res_hostalias(const res_state statp, const char *name, char *dst, size_t siz) { fclose(fp); return (NULL); } +libresolv_hidden_def (res_hostalias) diff --git a/resolv/res_send.c b/resolv/res_send.c index 44d8cb0fee..7773a2f522 100644 --- a/resolv/res_send.c +++ b/resolv/res_send.c @@ -312,6 +312,7 @@ res_nameinquery(const char *name, int type, int class, } return (0); } +libresolv_hidden_def (res_nameinquery) /* int * res_queriesmatch(buf1, eom1, buf2, eom2) @@ -361,6 +362,7 @@ res_queriesmatch(const u_char *buf1, const u_char *eom1, } return (1); } +libresolv_hidden_def (res_queriesmatch) int __libc_res_nsend(res_state statp, const u_char *buf, int buflen, @@ -689,6 +691,7 @@ res_nsend(res_state statp, { return __libc_res_nsend(statp, buf, buflen, ans, anssiz, NULL); } +libresolv_hidden_def (res_nsend) /* Private */ |