diff options
author | cvs2svn <> | 2008-09-05 00:26:21 +0400 |
---|---|---|
committer | cvs2svn <> | 2008-09-05 00:26:21 +0400 |
commit | 07b4b67a88f386ce4716a14e0ff2c2bce992b985 (patch) | |
tree | 2d367e3f5c271ef2cdf093f175039cd701237bc7 /newlib/libc/sys/linux/net/res_hconf.c | |
parent | cfef0dc52cc4eab69ddeab566fa31790a2328b6a (diff) |
This commit was manufactured by cvs2svn to create tag 'newlib-1_16_0'.newlib-1_16_0
Sprout from binutils-arc-20080908-branch 2008-09-04 20:26:19 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'binutils-'
Cherrypick from master 2007-12-19 22:36:48 UTC Jeff Johnston <jjohnstn@redhat.com> '':
ChangeLog
MAINTAINERS
Makefile.def
Makefile.in
Makefile.tpl
config.guess
config.rpath
config.sub
config/ChangeLog
config/acinclude.m4
config/acx.m4
config/confsubdir.m4
config/mh-i370pic
config/mh-ia64pic
config/mh-mingw
config/mh-ppc-darwin
config/mh-s390pic
config/mh-sparcpic
config/mt-mips-elfoabi
config/mt-spu
config/tls.m4
configure
configure.ac
libgloss/ChangeLog
libgloss/arm/configure
libgloss/arm/crt0.S
libgloss/arm/redboot-syscalls.c
libgloss/bfin/Makefile.in
libgloss/bfin/configure
libgloss/bfin/syscalls.c
libgloss/configure
libgloss/cris/configure
libgloss/cris/gensyscalls
libgloss/crx/configure
libgloss/d30v/configure
libgloss/doc/configure
libgloss/fr30/configure
libgloss/fr30/syscalls.c
libgloss/frv/configure
libgloss/frv/crt0.S
libgloss/frv/isatty.c
libgloss/hp74x/configure
libgloss/i386/configure
libgloss/i960/configure
libgloss/iq2000/configure
libgloss/iq2000/crt0.S
libgloss/iq2000/isatty.c
libgloss/libnosys/configure
libgloss/libnosys/configure.in
libgloss/libnosys/isatty.c
libgloss/m32c/configure
libgloss/m32c/exit.S
libgloss/m32r/configure
libgloss/m32r/isatty.c
libgloss/m68hc11/configure
libgloss/m68k/cf-crt1.c
libgloss/m68k/configure
libgloss/mcore/configure
libgloss/mep/configure
libgloss/mips/configure
libgloss/mn10200/configure
libgloss/mn10200/isatty.c
libgloss/mn10300/configure
libgloss/mn10300/crt0.S
libgloss/mn10300/isatty.c
libgloss/mt/configure
libgloss/pa/configure
libgloss/rs6000/configure
libgloss/sparc/configure
libgloss/sparc/libsys/configure
libgloss/spu/Makefile.in
libgloss/spu/configure
libgloss/spu/readlink.c
libgloss/spu/sbrk.c
libgloss/spu/syscalls.c
libgloss/wince/configure
libgloss/xstormy16/configure
libtool.m4
ltsugar.m4
newlib/ChangeLog
newlib/Makefile.am
newlib/Makefile.in
newlib/configure.host
newlib/libc/argz/argz_count.c
newlib/libc/argz/argz_extract.c
newlib/libc/argz/argz_stringify.c
newlib/libc/ctype/ctype_.c
newlib/libc/ctype/isalnum.c
newlib/libc/ctype/isalpha.c
newlib/libc/ctype/iscntrl.c
newlib/libc/ctype/isdigit.c
newlib/libc/ctype/islower.c
newlib/libc/ctype/isprint.c
newlib/libc/ctype/ispunct.c
newlib/libc/ctype/isspace.c
newlib/libc/ctype/isupper.c
newlib/libc/ctype/isxdigit.c
newlib/libc/include/_ansi.h
newlib/libc/include/_syslist.h
newlib/libc/include/assert.h
newlib/libc/include/ctype.h
newlib/libc/include/getopt.h
newlib/libc/include/machine/_default_types.h
newlib/libc/include/machine/ieeefp.h
newlib/libc/include/machine/setjmp.h
newlib/libc/include/math.h
newlib/libc/include/reent.h
newlib/libc/include/stdint.h
newlib/libc/include/stdio.h
newlib/libc/include/string.h
newlib/libc/include/sys/_default_fcntl.h
newlib/libc/include/sys/reent.h
newlib/libc/include/sys/stat.h
newlib/libc/include/sys/unistd.h
newlib/libc/libc.texinfo
newlib/libc/machine/arm/setjmp.S
newlib/libc/machine/configure
newlib/libc/machine/i386/memchr.S
newlib/libc/machine/i386/memset.S
newlib/libc/machine/i386/strchr.S
newlib/libc/machine/i386/strlen.S
newlib/libc/machine/m68k/memcpy.S
newlib/libc/machine/m68k/memset.S
newlib/libc/machine/m68k/setjmp.S
newlib/libc/machine/mips/strncpy.c
newlib/libc/machine/mn10300/memset.S
newlib/libc/machine/powerpc/vfprintf.c
newlib/libc/machine/spu/Makefile.am
newlib/libc/machine/spu/Makefile.in
newlib/libc/machine/spu/fprintf.S
newlib/libc/machine/spu/fscanf.S
newlib/libc/machine/spu/mk_syscalls
newlib/libc/machine/spu/printf.S
newlib/libc/machine/spu/scanf.S
newlib/libc/machine/spu/setjmp.S
newlib/libc/machine/spu/snprintf.S
newlib/libc/machine/spu/sprintf.S
newlib/libc/machine/spu/sscanf.S
newlib/libc/machine/spu/stack_reg_va.S
newlib/libc/machine/spu/strcat.c
newlib/libc/machine/spu/strcpy.c
newlib/libc/machine/spu/strlen.c
newlib/libc/machine/spu/strncat.c
newlib/libc/machine/spu/strncmp.c
newlib/libc/machine/spu/strncpy.c
newlib/libc/machine/spu/sys/dirent.h
newlib/libc/machine/spu/sys/errno.h
newlib/libc/machine/spu/sys/sched.h
newlib/libc/machine/spu/sys/syscall.h
newlib/libc/posix/Makefile.am
newlib/libc/posix/Makefile.in
newlib/libc/posix/isatty.c
newlib/libc/reent/Makefile.am
newlib/libc/reent/Makefile.in
newlib/libc/search/hash.h
newlib/libc/stdio/Makefile.am
newlib/libc/stdio/Makefile.in
newlib/libc/stdio/asiprintf.c
newlib/libc/stdio/asniprintf.c
newlib/libc/stdio/asnprintf.c
newlib/libc/stdio/asprintf.c
newlib/libc/stdio/dprintf.c
newlib/libc/stdio/fflush.c
newlib/libc/stdio/freopen.c
newlib/libc/stdio/ftell.c
newlib/libc/stdio/local.h
newlib/libc/stdio/makebuf.c
newlib/libc/stdio/rget.c
newlib/libc/stdio/siprintf.c
newlib/libc/stdio/siscanf.c
newlib/libc/stdio/sniprintf.c
newlib/libc/stdio/snprintf.c
newlib/libc/stdio/sprintf.c
newlib/libc/stdio/sscanf.c
newlib/libc/stdio/vasiprintf.c
newlib/libc/stdio/vasniprintf.c
newlib/libc/stdio/vasnprintf.c
newlib/libc/stdio/vasprintf.c
newlib/libc/stdio/vdiprintf.c
newlib/libc/stdio/vdprintf.c
newlib/libc/stdio/vfprintf.c
newlib/libc/stdio/vfscanf.c
newlib/libc/stdio/vsiprintf.c
newlib/libc/stdio/vsiscanf.c
newlib/libc/stdio/vsniprintf.c
newlib/libc/stdio/vsnprintf.c
newlib/libc/stdio/vsprintf.c
newlib/libc/stdio/vsscanf.c
newlib/libc/stdio64/ftello64.c
newlib/libc/stdlib/envlock.h
newlib/libc/stdlib/gdtoa-hexnan.c
newlib/libc/stdlib/getopt.c
newlib/libc/stdlib/mprec.h
newlib/libc/stdlib/strtod.c
newlib/libc/stdlib/wcsrtombs.c
newlib/libc/string/Makefile.am
newlib/libc/string/Makefile.in
newlib/libc/string/memchr.c
newlib/libc/string/memset.c
newlib/libc/string/strcasestr.c
newlib/libc/string/strchr.c
newlib/libc/string/strings.tex
newlib/libc/string/strlen.c
newlib/libc/string/strstr.c
newlib/libc/sys/a29khif/_isatty.S
newlib/libc/sys/arc/isatty.c
newlib/libc/sys/arm/syscalls.c
newlib/libc/sys/configure
newlib/libc/sys/d10v/syscalls.c
newlib/libc/sys/h8300hms/syscalls.c
newlib/libc/sys/h8500hms/syscalls.c
newlib/libc/sys/linux/Makefile.am
newlib/libc/sys/linux/Makefile.in
newlib/libc/sys/linux/bits/libc-lock.h
newlib/libc/sys/linux/iconv/iconvconfig.c
newlib/libc/sys/linux/iconv/strtab.c
newlib/libc/sys/linux/include/arpa/nameser.h
newlib/libc/sys/linux/include/hesiod.h
newlib/libc/sys/linux/include/libc_private.h
newlib/libc/sys/linux/include/net/ethernet.h
newlib/libc/sys/linux/include/net/if_atm.h
newlib/libc/sys/linux/include/net/if_media.h
newlib/libc/sys/linux/include/net/if_ppp.h
newlib/libc/sys/linux/include/net/if_pppvar.h
newlib/libc/sys/linux/include/netdb.h
newlib/libc/sys/linux/include/netinet/if_atm.h
newlib/libc/sys/linux/include/netinet/if_ether.h
newlib/libc/sys/linux/include/netinet/ip_flow.h
newlib/libc/sys/linux/include/nsswitch.h
newlib/libc/sys/linux/include/resolv.h
newlib/libc/sys/linux/include/sched.h
newlib/libc/sys/linux/include/stdint.h
newlib/libc/sys/linux/intl/locale.alias
newlib/libc/sys/linux/libc-symbols.h
newlib/libc/sys/linux/machine/i386/get_clockfreq.c
newlib/libc/sys/linux/machine/i386/include/endian.h
newlib/libc/sys/linux/machine/i386/include/param.h
newlib/libc/sys/linux/net/Makefile.am
newlib/libc/sys/linux/net/Makefile.in
newlib/libc/sys/linux/net/addr2ascii.3
newlib/libc/sys/linux/net/base64.c
newlib/libc/sys/linux/net/bindresvport.c
newlib/libc/sys/linux/net/byteorder.3
newlib/libc/sys/linux/net/ether_addr.c
newlib/libc/sys/linux/net/ethers.3
newlib/libc/sys/linux/net/getaddrinfo.3
newlib/libc/sys/linux/net/getaddrinfo.c
newlib/libc/sys/linux/net/gethostbydns.c
newlib/libc/sys/linux/net/gethostbyht.c
newlib/libc/sys/linux/net/gethostbyname.3
newlib/libc/sys/linux/net/gethostbynis.c
newlib/libc/sys/linux/net/gethostnamadr.c
newlib/libc/sys/linux/net/getifaddrs.3
newlib/libc/sys/linux/net/getifaddrs.c
newlib/libc/sys/linux/net/getipnodebyname.3
newlib/libc/sys/linux/net/getnameinfo.3
newlib/libc/sys/linux/net/getnameinfo.c
newlib/libc/sys/linux/net/getnetbydns.c
newlib/libc/sys/linux/net/getnetbyht.c
newlib/libc/sys/linux/net/getnetbynis.c
newlib/libc/sys/linux/net/getnetent.3
newlib/libc/sys/linux/net/getnetnamadr.c
newlib/libc/sys/linux/net/getproto.c
newlib/libc/sys/linux/net/getprotoent.3
newlib/libc/sys/linux/net/getprotoent.c
newlib/libc/sys/linux/net/getprotoname.c
newlib/libc/sys/linux/net/getservbyname.c
newlib/libc/sys/linux/net/getservbyport.c
newlib/libc/sys/linux/net/getservent.3
newlib/libc/sys/linux/net/getservent.c
newlib/libc/sys/linux/net/herror.c
newlib/libc/sys/linux/net/hesiod.3
newlib/libc/sys/linux/net/hesiod.c
newlib/libc/sys/linux/net/if_indextoname.3
newlib/libc/sys/linux/net/inet.3
newlib/libc/sys/linux/net/inet6_option_space.3
newlib/libc/sys/linux/net/inet6_rthdr_space.3
newlib/libc/sys/linux/net/inet_lnaof.c
newlib/libc/sys/linux/net/inet_makeaddr.c
newlib/libc/sys/linux/net/inet_net.3
newlib/libc/sys/linux/net/inet_netof.c
newlib/libc/sys/linux/net/inet_network.c
newlib/libc/sys/linux/net/inet_ntoa.c
newlib/libc/sys/linux/net/innetgr-stub.c
newlib/libc/sys/linux/net/ip6opt.c
newlib/libc/sys/linux/net/iso_addr.3
newlib/libc/sys/linux/net/iso_addr.c
newlib/libc/sys/linux/net/linkaddr.3
newlib/libc/sys/linux/net/linkaddr.c
newlib/libc/sys/linux/net/map_v4v6.c
newlib/libc/sys/linux/net/name6.c
newlib/libc/sys/linux/net/namespace.h
newlib/libc/sys/linux/net/ns.3
newlib/libc/sys/linux/net/ns_addr.c
newlib/libc/sys/linux/net/ns_name.c
newlib/libc/sys/linux/net/ns_netint.c
newlib/libc/sys/linux/net/ns_ntoa.c
newlib/libc/sys/linux/net/ns_parse.c
newlib/libc/sys/linux/net/ns_print.c
newlib/libc/sys/linux/net/ns_ttl.c
newlib/libc/sys/linux/net/nsap_addr.c
newlib/libc/sys/linux/net/nsdispatch.3
newlib/libc/sys/linux/net/nsdispatch.c
newlib/libc/sys/linux/net/nslexer.c
newlib/libc/sys/linux/net/nslexer.l
newlib/libc/sys/linux/net/nsparser.c
newlib/libc/sys/linux/net/nsparser.h
newlib/libc/sys/linux/net/nsparser.y
newlib/libc/sys/linux/net/rcmd.3
newlib/libc/sys/linux/net/rcmd.c
newlib/libc/sys/linux/net/rcmdsh.3
newlib/libc/sys/linux/net/res_comp.c
newlib/libc/sys/linux/net/res_config.h
newlib/libc/sys/linux/net/res_data.c
newlib/libc/sys/linux/net/res_debug.c
newlib/libc/sys/linux/net/res_init.c
newlib/libc/sys/linux/net/res_mkquery.c
newlib/libc/sys/linux/net/res_mkupdate.c
newlib/libc/sys/linux/net/res_query.c
newlib/libc/sys/linux/net/res_send.c
newlib/libc/sys/linux/net/res_update.c
newlib/libc/sys/linux/net/resolver.3
newlib/libc/sys/linux/net/rthdr.c
newlib/libc/sys/linux/net/send.c
newlib/libc/sys/linux/net/vars.c
newlib/libc/sys/linux/stdlib/COPYRIGHT
newlib/libc/sys/linux/stdlib/Makefile.am
newlib/libc/sys/linux/stdlib/Makefile.in
newlib/libc/sys/linux/stdlib/cclass.h
newlib/libc/sys/linux/stdlib/cname.h
newlib/libc/sys/linux/stdlib/collate.c
newlib/libc/sys/linux/stdlib/collate.h
newlib/libc/sys/linux/stdlib/collcmp.c
newlib/libc/sys/linux/stdlib/engine.c
newlib/libc/sys/linux/stdlib/fnmatch.3
newlib/libc/sys/linux/stdlib/fnmatch.c
newlib/libc/sys/linux/stdlib/glob.3
newlib/libc/sys/linux/stdlib/glob.c
newlib/libc/sys/linux/stdlib/reallocf.c
newlib/libc/sys/linux/stdlib/regcomp.c
newlib/libc/sys/linux/stdlib/regerror.c
newlib/libc/sys/linux/stdlib/regex.3
newlib/libc/sys/linux/stdlib/regex2.h
newlib/libc/sys/linux/stdlib/regexec.c
newlib/libc/sys/linux/stdlib/regfree.c
newlib/libc/sys/linux/stdlib/utils.h
newlib/libc/sys/linux/stdlib/wordexp.c
newlib/libc/sys/linux/stdlib/wordfree.c
newlib/libc/sys/linux/sys/ioctl.h
newlib/libc/sys/linux/sys/socket.h
newlib/libc/sys/linux/sys/types.h
newlib/libc/sys/linux/sys/unistd.h
newlib/libc/sys/mmixware/isatty.c
newlib/libc/sys/sh/syscalls.c
newlib/libc/sys/sysnecv850/crt0.S
newlib/libc/sys/sysnecv850/isatty.c
newlib/libc/syscalls/Makefile.am
newlib/libc/syscalls/Makefile.in
newlib/libc/syscalls/sysclose.c
newlib/libc/syscalls/sysexecve.c
newlib/libc/syscalls/sysfcntl.c
newlib/libc/syscalls/sysfork.c
newlib/libc/syscalls/sysfstat.c
newlib/libc/syscalls/sysgetpid.c
newlib/libc/syscalls/sysgettod.c
newlib/libc/syscalls/syskill.c
newlib/libc/syscalls/syslink.c
newlib/libc/syscalls/syslseek.c
newlib/libc/syscalls/sysopen.c
newlib/libc/syscalls/sysread.c
newlib/libc/syscalls/syssbrk.c
newlib/libc/syscalls/sysstat.c
newlib/libc/syscalls/systimes.c
newlib/libc/syscalls/sysunlink.c
newlib/libc/syscalls/syswait.c
newlib/libc/syscalls/syswrite.c
newlib/libc/time/mktime.c
newlib/libm/libm.texinfo
newlib/libm/machine/spu/configure
newlib/libm/machine/spu/headers/acosd2.h
newlib/libm/machine/spu/headers/acosf4.h
newlib/libm/machine/spu/headers/acoshd2.h
newlib/libm/machine/spu/headers/acoshf4.h
newlib/libm/machine/spu/headers/asind2.h
newlib/libm/machine/spu/headers/asinf4.h
newlib/libm/machine/spu/headers/asinhd2.h
newlib/libm/machine/spu/headers/asinhf4.h
newlib/libm/machine/spu/headers/atan2d2.h
newlib/libm/machine/spu/headers/atan2f4.h
newlib/libm/machine/spu/headers/atand2.h
newlib/libm/machine/spu/headers/atanf4.h
newlib/libm/machine/spu/headers/atanhd2.h
newlib/libm/machine/spu/headers/atanhf4.h
newlib/libm/machine/spu/headers/cbrt.h
newlib/libm/machine/spu/headers/cbrtf.h
newlib/libm/machine/spu/headers/cos_sin.h
newlib/libm/machine/spu/headers/cosd2.h
newlib/libm/machine/spu/headers/cosf4.h
newlib/libm/machine/spu/headers/coshd2.h
newlib/libm/machine/spu/headers/coshf4.h
newlib/libm/machine/spu/headers/divd2.h
newlib/libm/machine/spu/headers/divf4.h
newlib/libm/machine/spu/headers/erf_utils.h
newlib/libm/machine/spu/headers/erfcd2.h
newlib/libm/machine/spu/headers/erfcf4.h
newlib/libm/machine/spu/headers/erfd2.h
newlib/libm/machine/spu/headers/erff4.h
newlib/libm/machine/spu/headers/exp2d2.h
newlib/libm/machine/spu/headers/exp2f4.h
newlib/libm/machine/spu/headers/expd2.h
newlib/libm/machine/spu/headers/expf4.h
newlib/libm/machine/spu/headers/expm1d2.h
newlib/libm/machine/spu/headers/expm1f4.h
newlib/libm/machine/spu/headers/floord2.h
newlib/libm/machine/spu/headers/floorf4.h
newlib/libm/machine/spu/headers/hypotd2.h
newlib/libm/machine/spu/headers/hypotf4.h
newlib/libm/machine/spu/headers/isnand2.h
newlib/libm/machine/spu/headers/isnanf4.h
newlib/libm/machine/spu/headers/ldexpd2.h
newlib/libm/machine/spu/headers/ldexpf4.h
newlib/libm/machine/spu/headers/lgammad2.h
newlib/libm/machine/spu/headers/lgammaf4.h
newlib/libm/machine/spu/headers/log10d2.h
newlib/libm/machine/spu/headers/log1pd2.h
newlib/libm/machine/spu/headers/log1pf4.h
newlib/libm/machine/spu/headers/log2d2.h
newlib/libm/machine/spu/headers/log2f4.h
newlib/libm/machine/spu/headers/logbf4.h
newlib/libm/machine/spu/headers/logd2.h
newlib/libm/machine/spu/headers/logf4.h
newlib/libm/machine/spu/headers/nearbyintf4.h
newlib/libm/machine/spu/headers/nextafterd2.h
newlib/libm/machine/spu/headers/nextafterf4.h
newlib/libm/machine/spu/headers/powd2.h
newlib/libm/machine/spu/headers/powf4.h
newlib/libm/machine/spu/headers/recipd2.h
newlib/libm/machine/spu/headers/recipf4.h
newlib/libm/machine/spu/headers/rintf4.h
newlib/libm/machine/spu/headers/scalbnf4.h
newlib/libm/machine/spu/headers/signbitd2.h
newlib/libm/machine/spu/headers/simdmath.h
newlib/libm/machine/spu/headers/sincosd2.h
newlib/libm/machine/spu/headers/sincosf4.h
newlib/libm/machine/spu/headers/sind2.h
newlib/libm/machine/spu/headers/sinf4.h
newlib/libm/machine/spu/headers/sinhd2.h
newlib/libm/machine/spu/headers/sinhf4.h
newlib/libm/machine/spu/headers/sqrtd2.h
newlib/libm/machine/spu/headers/sqrtf4.h
newlib/libm/machine/spu/headers/tand2.h
newlib/libm/machine/spu/headers/tanf4.h
newlib/libm/machine/spu/headers/tanhd2.h
newlib/libm/machine/spu/headers/tanhf4.h
newlib/libm/machine/spu/headers/tgammad2.h
newlib/libm/machine/spu/headers/tgammaf4.h
newlib/libm/machine/spu/headers/truncd2.h
newlib/libm/machine/spu/headers/truncf4.h
src-release
Cherrypick from cygnus 1999-05-03 07:29:06 UTC Richard Henderson <rth@redhat.com> '19990502 sourceware import':
config/mh-armpic
config/mh-elfalphapic
config/mh-m68kpic
config/mh-papic
config/mh-ppcpic
config/mh-x86pic
Delete:
config/extensions.m4
config/futex.m4
config/mh-pa
config/mh-pa-hpux10
config/mt-mips-gnu
config/mt-mips16-compat
config/override.m4
config/proginstall.m4
config/tcl.m4
libgloss/bfin/basiccrt.S
libgloss/bfin/bf522.ld
libgloss/bfin/bf523.ld
libgloss/bfin/bf524.ld
libgloss/bfin/bf525.ld
libgloss/bfin/bf526.ld
libgloss/bfin/bf527.ld
libgloss/bfin/bf531.ld
libgloss/bfin/bf532.ld
libgloss/bfin/bf533.ld
libgloss/bfin/bf534.ld
libgloss/bfin/bf536.ld
libgloss/bfin/bf537.ld
libgloss/bfin/bf538.ld
libgloss/bfin/bf539.ld
libgloss/bfin/bf542.ld
libgloss/bfin/bf544.ld
libgloss/bfin/bf547.ld
libgloss/bfin/bf548.ld
libgloss/bfin/bf549.ld
libgloss/bfin/bf561.ld
libgloss/bfin/bf561a.ld
libgloss/bfin/bf561b.ld
libgloss/bfin/bf561m.ld
libgloss/bfin/bfin-common-mc.ld
libgloss/bfin/bfin-common-sc.ld
libgloss/bfin/include/blackfin.h
libgloss/bfin/include/cdefBF522.h
libgloss/bfin/include/cdefBF525.h
libgloss/bfin/include/cdefBF527.h
libgloss/bfin/include/cdefBF52x_base.h
libgloss/bfin/include/cdefBF531.h
libgloss/bfin/include/cdefBF532.h
libgloss/bfin/include/cdefBF533.h
libgloss/bfin/include/cdefBF534.h
libgloss/bfin/include/cdefBF535.h
libgloss/bfin/include/cdefBF536.h
libgloss/bfin/include/cdefBF537.h
libgloss/bfin/include/cdefBF538.h
libgloss/bfin/include/cdefBF539.h
libgloss/bfin/include/cdefBF53x.h
libgloss/bfin/include/cdefBF541.h
libgloss/bfin/include/cdefBF542.h
libgloss/bfin/include/cdefBF544.h
libgloss/bfin/include/cdefBF547.h
libgloss/bfin/include/cdefBF548.h
libgloss/bfin/include/cdefBF549.h
libgloss/bfin/include/cdefBF54x_base.h
libgloss/bfin/include/cdefBF561.h
libgloss/bfin/include/cdef_LPBlackfin.h
libgloss/bfin/include/cdefblackfin.h
libgloss/bfin/include/cplb.h
libgloss/bfin/include/cplbtab.h
libgloss/bfin/include/defBF522.h
libgloss/bfin/include/defBF525.h
libgloss/bfin/include/defBF527.h
libgloss/bfin/include/defBF52x_base.h
libgloss/bfin/include/defBF531.h
libgloss/bfin/include/defBF532.h
libgloss/bfin/include/defBF533.h
libgloss/bfin/include/defBF534.h
libgloss/bfin/include/defBF535.h
libgloss/bfin/include/defBF536.h
libgloss/bfin/include/defBF537.h
libgloss/bfin/include/defBF538.h
libgloss/bfin/include/defBF539.h
libgloss/bfin/include/defBF541.h
libgloss/bfin/include/defBF542.h
libgloss/bfin/include/defBF544.h
libgloss/bfin/include/defBF547.h
libgloss/bfin/include/defBF548.h
libgloss/bfin/include/defBF549.h
libgloss/bfin/include/defBF54x_base.h
libgloss/bfin/include/defBF561.h
libgloss/bfin/include/def_LPBlackfin.h
libgloss/bfin/include/defblackfin.h
libgloss/bfin/include/sys/_adi_platform.h
libgloss/bfin/include/sys/anomaly_macros_rtl.h
libgloss/bfin/include/sys/excause.h
libgloss/bfin/include/sys/exception.h
libgloss/bfin/include/sys/mc_typedef.h
libgloss/bfin/include/sys/platform.h
libgloss/bfin/include/sys/pll.h
libgloss/bfin/include/sysreg.h
libgloss/spu/linux_syscalls.c
libgloss/xstormy16/isatty.c
newlib/libc/machine/m68k/m68kasm.h
newlib/libc/machine/spu/assert.c
newlib/libc/machine/spu/impure.c
newlib/libc/machine/spu/include/spu_timer.h
newlib/libc/machine/spu/memcmp.c
newlib/libc/machine/spu/spu_clock_stop.c
newlib/libc/machine/spu/spu_clock_svcs.c
newlib/libc/machine/spu/spu_timebase.c
newlib/libc/machine/spu/spu_timer_flih.S
newlib/libc/machine/spu/spu_timer_free.c
newlib/libc/machine/spu/spu_timer_internal.h
newlib/libc/machine/spu/spu_timer_slih.c
newlib/libc/machine/spu/spu_timer_slih_reg.c
newlib/libc/machine/spu/spu_timer_stop.c
newlib/libc/machine/spu/spu_timer_svcs.c
newlib/libc/machine/spu/straddr.h
newlib/libc/machine/spu/strcpy.h
newlib/libc/machine/spu/strncmp.h
newlib/libc/machine/spu/sys/linux_syscalls.h
newlib/libc/posix/_isatty.c
newlib/libc/reent/isattyr.c
newlib/libc/string/memmem.c
newlib/libc/string/str-two-way.h
newlib/libc/sys/linux/isatty.c
newlib/libc/sys/linux/machine/i386/atomic.h
newlib/libc/sys/linux/net/XXX-lookup.c
newlib/libc/sys/linux/net/alias-lookup.c
newlib/libc/sys/linux/net/aliases.h
newlib/libc/sys/linux/net/check_pf.c
newlib/libc/sys/linux/net/databases.def
newlib/libc/sys/linux/net/digits_dots.c
newlib/libc/sys/linux/net/ether_aton.c
newlib/libc/sys/linux/net/ether_aton_r.c
newlib/libc/sys/linux/net/ether_hton.c
newlib/libc/sys/linux/net/ether_line.c
newlib/libc/sys/linux/net/ether_ntoa.c
newlib/libc/sys/linux/net/ether_ntoa_r.c
newlib/libc/sys/linux/net/ether_ntoh.c
newlib/libc/sys/linux/net/etherent.h
newlib/libc/sys/linux/net/ethers-lookup.c
newlib/libc/sys/linux/net/function.def
newlib/libc/sys/linux/net/getXXbyYY.c
newlib/libc/sys/linux/net/getXXbyYY_r.c
newlib/libc/sys/linux/net/getXXent.c
newlib/libc/sys/linux/net/getXXent_r.c
newlib/libc/sys/linux/net/getaliasent.c
newlib/libc/sys/linux/net/getaliasent_r.c
newlib/libc/sys/linux/net/getaliasname.c
newlib/libc/sys/linux/net/getaliasname_r.c
newlib/libc/sys/linux/net/gethstbyad.c
newlib/libc/sys/linux/net/gethstbyad_r.c
newlib/libc/sys/linux/net/gethstbynm.c
newlib/libc/sys/linux/net/gethstbynm2.c
newlib/libc/sys/linux/net/gethstbynm2_r.c
newlib/libc/sys/linux/net/gethstbynm_r.c
newlib/libc/sys/linux/net/gethstent.c
newlib/libc/sys/linux/net/gethstent_r.c
newlib/libc/sys/linux/net/getnetbyad.c
newlib/libc/sys/linux/net/getnetbyad_r.c
newlib/libc/sys/linux/net/getnetbynm.c
newlib/libc/sys/linux/net/getnetbynm_r.c
newlib/libc/sys/linux/net/getnetent.c
newlib/libc/sys/linux/net/getnetent_r.c
newlib/libc/sys/linux/net/getnetgrent.c
newlib/libc/sys/linux/net/getnetgrent_r.c
newlib/libc/sys/linux/net/getnssent.c
newlib/libc/sys/linux/net/getnssent_r.c
newlib/libc/sys/linux/net/getproto_r.c
newlib/libc/sys/linux/net/getprtent.c
newlib/libc/sys/linux/net/getprtent_r.c
newlib/libc/sys/linux/net/getprtname.c
newlib/libc/sys/linux/net/getprtname_r.c
newlib/libc/sys/linux/net/getrpcbyname.c
newlib/libc/sys/linux/net/getrpcbyname_r.c
newlib/libc/sys/linux/net/getrpcbynumber.c
newlib/libc/sys/linux/net/getrpcbynumber_r.c
newlib/libc/sys/linux/net/getrpcent.c
newlib/libc/sys/linux/net/getrpcent_r.c
newlib/libc/sys/linux/net/getservent_r.c
newlib/libc/sys/linux/net/getsrvbynm.c
newlib/libc/sys/linux/net/getsrvbynm_r.c
newlib/libc/sys/linux/net/getsrvbypt.c
newlib/libc/sys/linux/net/getsrvbypt_r.c
newlib/libc/sys/linux/net/grp-lookup.c
newlib/libc/sys/linux/net/herrno.c
newlib/libc/sys/linux/net/hosts-lookup.c
newlib/libc/sys/linux/net/ifaddrs.h
newlib/libc/sys/linux/net/ifreq.c
newlib/libc/sys/linux/net/ifreq.h
newlib/libc/sys/linux/net/in6_addr.c
newlib/libc/sys/linux/net/inet6_option.c
newlib/libc/sys/linux/net/inet_mkadr.c
newlib/libc/sys/linux/net/inet_net.c
newlib/libc/sys/linux/net/key-lookup.c
newlib/libc/sys/linux/net/local.h
newlib/libc/sys/linux/net/netgroup.h
newlib/libc/sys/linux/net/netgrp-lookup.c
newlib/libc/sys/linux/net/network-lookup.c
newlib/libc/sys/linux/net/not-cancel.h
newlib/libc/sys/linux/net/ns_samedomain.c
newlib/libc/sys/linux/net/nscd-types.h
newlib/libc/sys/linux/net/nscd/nscd-client.h
newlib/libc/sys/linux/net/nscd/nscd_proto.h
newlib/libc/sys/linux/net/nss.h
newlib/libc/sys/linux/net/nsswitch.c
newlib/libc/sys/linux/net/nsswitch.h
newlib/libc/sys/linux/net/opensock.c
newlib/libc/sys/linux/net/proto-lookup.c
newlib/libc/sys/linux/net/pwd-lookup.c
newlib/libc/sys/linux/net/res_debug.h
newlib/libc/sys/linux/net/res_hconf.c
newlib/libc/sys/linux/net/res_hconf.h
newlib/libc/sys/linux/net/res_libc.c
newlib/libc/sys/linux/net/rexec.c
newlib/libc/sys/linux/net/rpc-lookup.c
newlib/libc/sys/linux/net/ruserpass.c
newlib/libc/sys/linux/net/service-lookup.c
newlib/libc/sys/linux/net/spwd-lookup.c
newlib/libc/sys/linux/shlib-compat.h
newlib/libc/syscalls/sysisatty.c
newlib/testsuite/newlib.stdlib/size_max.c
newlib/testsuite/newlib.stdlib/stdlib.exp
Diffstat (limited to 'newlib/libc/sys/linux/net/res_hconf.c')
-rw-r--r-- | newlib/libc/sys/linux/net/res_hconf.c | 676 |
1 files changed, 0 insertions, 676 deletions
diff --git a/newlib/libc/sys/linux/net/res_hconf.c b/newlib/libc/sys/linux/net/res_hconf.c deleted file mode 100644 index ad1594040..000000000 --- a/newlib/libc/sys/linux/net/res_hconf.c +++ /dev/null @@ -1,676 +0,0 @@ -/* Copyright (C) 1993, 1995-2003, 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger (davidm@azstarnet.com). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* This file provides a Linux /etc/host.conf compatible front end to - the various name resolvers (/etc/hosts, named, NIS server, etc.). - Though mostly compatibly, the following differences exist compared - to the original implementation: - - - new command "spoof" takes an arguments like RESOLV_SPOOF_CHECK - environment variable (i.e., `off', `nowarn', or `warn'). - - - line comments can appear anywhere (not just at the beginning of - a line) -*/ - -#include <assert.h> -#include <errno.h> -#include <ctype.h> -#include <libintl.h> -#include <memory.h> -#include <stdio.h> -#include <stdio_ext.h> -#include <stdlib.h> -#include <string.h> -#include <net/if.h> -#include <sys/ioctl.h> -#include <unistd.h> -#include <netinet/in.h> -#define _IO_MTSAFE_IO -#include <bits/libc-lock.h> -#include "ifreq.h" -#include "res_hconf.h" -#include "local.h" -#ifdef USE_IN_LIBIO -# include <wchar.h> -#endif - -#define _PATH_HOSTCONF "/etc/host.conf" - -/* Environment vars that all user to override default behavior: */ -#define ENV_HOSTCONF "RESOLV_HOST_CONF" -#define ENV_SERVORDER "RESOLV_SERV_ORDER" -#define ENV_SPOOF "RESOLV_SPOOF_CHECK" -#define ENV_TRIM_OVERR "RESOLV_OVERRIDE_TRIM_DOMAINS" -#define ENV_TRIM_ADD "RESOLV_ADD_TRIM_DOMAINS" -#define ENV_MULTI "RESOLV_MULTI" -#define ENV_REORDER "RESOLV_REORDER" - -static const char *arg_service_list (const char *, int, const char *, - unsigned int); -static const char *arg_trimdomain_list (const char *, int, const char *, - unsigned int); -static const char *arg_spoof (const char *, int, const char *, unsigned int); -static const char *arg_bool (const char *, int, const char *, unsigned int); - -static struct cmd -{ - const char *name; - const char *(*parse_args) (const char * filename, int line_num, - const char * args, unsigned int arg); - unsigned int arg; -} cmd[] = -{ - {"order", arg_service_list, 0}, - {"trim", arg_trimdomain_list, 0}, - {"spoof", arg_spoof, 0}, - {"multi", arg_bool, HCONF_FLAG_MULTI}, - {"nospoof", arg_bool, HCONF_FLAG_SPOOF}, - {"spoofalert", arg_bool, HCONF_FLAG_SPOOFALERT}, - {"reorder", arg_bool, HCONF_FLAG_REORDER} -}; - -/* Structure containing the state. */ -struct hconf _res_hconf; - -/* Skip white space. */ -static const char * -skip_ws (const char *str) -{ - while (isspace (*str)) ++str; - return str; -} - - -/* Skip until whitespace, comma, end of line, or comment character. */ -static const char * -skip_string (const char *str) -{ - while (*str && !isspace (*str) && *str != '#' && *str != ',') - ++str; - return str; -} - - -static const char * -arg_service_list (const char *fname, int line_num, const char *args, - unsigned int arg) -{ - enum Name_Service service; - const char *start; - size_t len; - size_t i; - static struct - { - const char * name; - enum Name_Service service; - } svcs[] = - { - {"bind", SERVICE_BIND}, - {"hosts", SERVICE_HOSTS}, - {"nis", SERVICE_NIS}, - }; - - do - { - start = args; - args = skip_string (args); - len = args - start; - - service = SERVICE_NONE; - for (i = 0; i < sizeof (svcs) / sizeof (svcs[0]); ++i) - { - if (strncasecmp (start, svcs[i].name, len) == 0 - && len == strlen (svcs[i].name)) - { - service = svcs[i].service; - break; - } - } - if (service == SERVICE_NONE) - { - char *buf; - - if (asprintf (&buf, - _("%s: line %d: expected service, found `%s'\n"), - fname, line_num, start) < 0) - return 0; - -#ifdef USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else -#endif - fputs (buf, stderr); - - free (buf); - return 0; - } - if (_res_hconf.num_services >= SERVICE_MAX) - { - char *buf; - - if (asprintf (&buf, _("\ -%s: line %d: cannot specify more than %d services"), - fname, line_num, SERVICE_MAX) < 0) - return 0; - -#ifdef USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else -#endif - fputs (buf, stderr); - - free (buf); - return 0; - } - _res_hconf.service[_res_hconf.num_services++] = service; - - args = skip_ws (args); - switch (*args) - { - case ',': - case ';': - case ':': - args = skip_ws (++args); - if (!*args || *args == '#') - { - char *buf; - - if (asprintf (&buf, _("\ -%s: line %d: list delimiter not followed by keyword"), - fname, line_num) < 0) - return 0; - -#ifdef USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else -#endif - fputs (buf, stderr); - - free (buf); - return 0; - } - default: - break; - } - } - while (*args && *args != '#'); - return args; -} - - -static const char * -arg_trimdomain_list (const char *fname, int line_num, const char *args, - unsigned int flag) -{ - const char * start; - size_t len; - - do - { - start = args; - args = skip_string (args); - len = args - start; - - if (_res_hconf.num_trimdomains >= TRIMDOMAINS_MAX) - { - char *buf; - - if (asprintf (&buf, _("\ -%s: line %d: cannot specify more than %d trim domains"), - fname, line_num, TRIMDOMAINS_MAX) < 0) - return 0; - -#ifdef USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else -#endif - fputs (buf, stderr); - - free (buf); - return 0; - } - _res_hconf.trimdomain[_res_hconf.num_trimdomains++] = - strndup (start, len); - args = skip_ws (args); - switch (*args) - { - case ',': case ';': case ':': - args = skip_ws (++args); - if (!*args || *args == '#') - { - char *buf; - - if (asprintf (&buf, _("\ -%s: line %d: list delimiter not followed by domain"), - fname, line_num) < 0) - return 0; - -#ifdef USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else -#endif - fputs (buf, stderr); - - free (buf); - return 0; - } - default: - break; - } - } - while (*args && *args != '#'); - return args; -} - - -static const char * -arg_spoof (const char *fname, int line_num, const char *args, unsigned flag) -{ - const char *start = args; - size_t len; - - args = skip_string (args); - len = args - start; - - if (len == 3 && strncasecmp (start, "off", len) == 0) - _res_hconf.flags &= ~(HCONF_FLAG_SPOOF | HCONF_FLAG_SPOOFALERT); - else - { - _res_hconf.flags |= (HCONF_FLAG_SPOOF | HCONF_FLAG_SPOOFALERT); - if ((len == 6 && strncasecmp (start, "nowarn", len) == 0) - || !(len == 4 && strncasecmp (start, "warn", len) == 0)) - _res_hconf.flags &= ~HCONF_FLAG_SPOOFALERT; - } - return args; -} - - -static const char * -arg_bool (const char *fname, int line_num, const char *args, unsigned flag) -{ - if (strncasecmp (args, "on", 2) == 0) - { - args += 2; - _res_hconf.flags |= flag; - } - else if (strncasecmp (args, "off", 3) == 0) - { - args += 3; - _res_hconf.flags &= ~flag; - } - else - { - char *buf; - - if (asprintf (&buf, - _("%s: line %d: expected `on' or `off', found `%s'\n"), - fname, line_num, args) < 0) - return 0; - -#ifdef USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else -#endif - fputs (buf, stderr); - - free (buf); - return 0; - } - return args; -} - - -static void -parse_line (const char *fname, int line_num, const char *str) -{ - const char *start; - struct cmd *c = 0; - size_t len; - size_t i; - - str = skip_ws (str); - - /* skip line comment and empty lines: */ - if (*str == '\0' || *str == '#') return; - - start = str; - str = skip_string (str); - len = str - start; - - for (i = 0; i < sizeof (cmd) / sizeof (cmd[0]); ++i) - { - if (strncasecmp (start, cmd[i].name, len) == 0 - && strlen (cmd[i].name) == len) - { - c = &cmd[i]; - break; - } - } - if (c == NULL) - { - char *buf; - - if (asprintf (&buf, _("%s: line %d: bad command `%s'\n"), - fname, line_num, start) < 0) - return; - -#ifdef USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else -#endif - fputs (buf, stderr); - - free (buf); - return; - } - - /* process args: */ - str = skip_ws (str); - str = (*c->parse_args) (fname, line_num, str, c->arg); - if (!str) - return; - - /* rest of line must contain white space or comment only: */ - while (*str) - { - if (!isspace (*str)) { - if (*str != '#') - { - char *buf; - - if (asprintf (&buf, - _("%s: line %d: ignoring trailing garbage `%s'\n"), - fname, line_num, str) < 0) - break; - -#ifdef USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else -#endif - fputs (buf, stderr); - - free (buf); - } - break; - } - ++str; - } -} - - -static void -do_init (void) -{ - const char *hconf_name; - int line_num = 0; - char buf[256], *envval; - FILE *fp; - - memset (&_res_hconf, '\0', sizeof (_res_hconf)); - - hconf_name = getenv (ENV_HOSTCONF); - if (hconf_name == NULL) - hconf_name = _PATH_HOSTCONF; - - fp = fopen (hconf_name, "rc"); - if (!fp) - /* make up something reasonable: */ - _res_hconf.service[_res_hconf.num_services++] = SERVICE_BIND; - else - { - /* No threads using this stream. */ - __fsetlocking (fp, FSETLOCKING_BYCALLER); - - while (fgets (buf, sizeof (buf), fp)) - { - char *tmp; - ++line_num; - tmp = strchr (buf, '\n'); - if (tmp != NULL) - *tmp = '\0'; - parse_line (hconf_name, line_num, buf); - } - fclose (fp); - } - - envval = getenv (ENV_SERVORDER); - if (envval) - { - _res_hconf.num_services = 0; - arg_service_list (ENV_SERVORDER, 1, envval, 0); - } - - envval = getenv (ENV_SPOOF); - if (envval) - arg_spoof (ENV_SPOOF, 1, envval, 0); - - envval = getenv (ENV_MULTI); - if (envval) - arg_bool (ENV_MULTI, 1, envval, HCONF_FLAG_MULTI); - - envval = getenv (ENV_REORDER); - if (envval) - arg_bool (ENV_REORDER, 1, envval, HCONF_FLAG_REORDER); - - envval = getenv (ENV_TRIM_ADD); - if (envval) - arg_trimdomain_list (ENV_TRIM_ADD, 1, envval, 0); - - envval = getenv (ENV_TRIM_OVERR); - if (envval) - { - _res_hconf.num_trimdomains = 0; - arg_trimdomain_list (ENV_TRIM_OVERR, 1, envval, 0); - } - - _res_hconf.initialized = 1; -} - - -/* Initialize hconf datastructure by reading host.conf file and - environment variables. */ -void -_res_hconf_init (void) -{ - __libc_once_define (static, once); - - __libc_once (once, do_init); -} - - -/* List of known interfaces. */ -libc_freeres_ptr ( -static struct netaddr -{ - int addrtype; - union - { - struct - { - u_int32_t addr; - u_int32_t mask; - } ipv4; - } u; -} *ifaddrs); - -/* We need to protect the dynamic buffer handling. */ -__libc_lock_define_initialized (static, lock); - -/* Reorder addresses returned in a hostent such that the first address - is an address on the local subnet, if there is such an address. - Otherwise, nothing is changed. - - Note that this function currently only handles IPv4 addresses. */ - -void -_res_hconf_reorder_addrs (struct hostent *hp) -{ -#if defined SIOCGIFCONF && defined SIOCGIFNETMASK - int i, j; - /* Number of interfaces. */ - static int num_ifs = -1; - - /* Only reorder if we're supposed to. */ - if ((_res_hconf.flags & HCONF_FLAG_REORDER) == 0) - return; - - /* Can't deal with anything but IPv4 for now... */ - if (hp->h_addrtype != AF_INET) - return; - - if (num_ifs <= 0) - { - struct ifreq *ifr, *cur_ifr; - int sd, num, i; - /* Save errno. */ - int save = errno; - - /* Initialize interface table. */ - - num_ifs = 0; - - /* The SIOCGIFNETMASK ioctl will only work on an AF_INET socket. */ - sd = socket (AF_INET, SOCK_DGRAM, 0); - if (sd < 0) - return; - - /* Get lock. */ - __libc_lock_lock (lock); - - /* Get a list of interfaces. */ - __ifreq (&ifr, &num, sd); - if (!ifr) - goto cleanup; - - ifaddrs = malloc (num * sizeof (ifaddrs[0])); - if (!ifaddrs) - goto cleanup1; - - /* Copy usable interfaces in ifaddrs structure. */ - for (cur_ifr = ifr, i = 0; i < num; cur_ifr = __if_nextreq (cur_ifr), ++i) - { - if (cur_ifr->ifr_addr.sa_family != AF_INET) - continue; - - ifaddrs[num_ifs].addrtype = AF_INET; - ifaddrs[num_ifs].u.ipv4.addr = - ((struct sockaddr_in *) &cur_ifr->ifr_addr)->sin_addr.s_addr; - - if (ioctl (sd, SIOCGIFNETMASK, cur_ifr) < 0) - continue; - - ifaddrs[num_ifs].u.ipv4.mask = - ((struct sockaddr_in *) &cur_ifr->ifr_netmask)->sin_addr.s_addr; - - /* Now we're committed to this entry. */ - ++num_ifs; - } - /* Just keep enough memory to hold all the interfaces we want. */ - ifaddrs = realloc (ifaddrs, num_ifs * sizeof (ifaddrs[0])); - assert (ifaddrs != NULL); - - cleanup1: - __if_freereq (ifr, num); - - cleanup: - /* Release lock, preserve error value, and close socket. */ - save = errno; - __libc_lock_unlock (lock); - close (sd); - } - - if (num_ifs == 0) - return; - - /* Find an address for which we have a direct connection. */ - for (i = 0; hp->h_addr_list[i]; ++i) - { - struct in_addr *haddr = (struct in_addr *) hp->h_addr_list[i]; - - for (j = 0; j < num_ifs; ++j) - { - u_int32_t if_addr = ifaddrs[j].u.ipv4.addr; - u_int32_t if_netmask = ifaddrs[j].u.ipv4.mask; - - if (((haddr->s_addr ^ if_addr) & if_netmask) == 0) - { - void *tmp; - - tmp = hp->h_addr_list[i]; - hp->h_addr_list[i] = hp->h_addr_list[0]; - hp->h_addr_list[0] = tmp; - return; - } - } - } -#endif /* defined(SIOCGIFCONF) && ... */ -} - - -/* If HOSTNAME has a postfix matching any of the trimdomains, trim away - that postfix. Notice that HOSTNAME is modified inplace. Also, the - original code applied all trimdomains in order, meaning that the - same domainname could be trimmed multiple times. I believe this - was unintentional. */ -void -_res_hconf_trim_domain (char *hostname) -{ - size_t hostname_len, trim_len; - int i; - - hostname_len = strlen (hostname); - - for (i = 0; i < _res_hconf.num_trimdomains; ++i) - { - const char *trim = _res_hconf.trimdomain[i]; - - trim_len = strlen (trim); - if (hostname_len > trim_len - && strcasecmp (&hostname[hostname_len - trim_len], trim) == 0) - { - hostname[hostname_len - trim_len] = '\0'; - break; - } - } -} - - -/* Trim all hostnames/aliases in HP according to the trimdomain list. - Notice that HP is modified inplace! */ -void -_res_hconf_trim_domains (struct hostent *hp) -{ - int i; - - if (_res_hconf.num_trimdomains == 0) - return; - - _res_hconf_trim_domain (hp->h_name); - for (i = 0; hp->h_aliases[i]; ++i) - _res_hconf_trim_domain (hp->h_aliases[i]); -} |