This patch introduces a new config directive 'UCLIBC_HAS_RESOLVER_SUPPORT' and adds the new symbols conditionally.
Signed-off-by: Daniel Mack <[email protected]> --- extra/Configs/Config.in | 10 ++++++++++ libc/inet/Makefile.in | 2 ++ libc/inet/ns_netint.c | 8 ++++++++ libc/inet/resolv.c | 26 ++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 0 deletions(-) create mode 100644 libc/inet/ns_netint.c diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index eebd154..3e2042a 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -1264,6 +1264,16 @@ config UCLIBC_HAS_EXTRA_COMPAT_RES_STATE Answer Y if selecting UCLIBC_HAS_COMPAT_RES_STATE is not enough. As far as I can say, this should never be needed. +config UCLIBC_HAS_RESOLVER_SUPPORT + bool "DNS resolver functions" + select UCLIBC_HAS_COMPAT_RES_STATE + help + Provide implementations for DNS resolver functions. + In particular, the following functions will be added to the + library: + + ns_get16, ns_get32, ns_put16, ns_put32 + config UCLIBC_HAS_LIBRESOLV_STUB bool "Provide libresolv stub" help diff --git a/libc/inet/Makefile.in b/libc/inet/Makefile.in index d588220..6c2c576 100644 --- a/libc/inet/Makefile.in +++ b/libc/inet/Makefile.in @@ -40,6 +40,8 @@ CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \ CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \ res_init.c res_query.c res_comp.c ns_name.c \ _res_state.c +CSRC-$(findstring y,$(UCLIBC_HAS_RESOLVER_SUPPORT)) += \ + ns_netint.c ## # unused ATM ## CSRC-y += encodep.c decodep.c formquery.c diff --git a/libc/inet/ns_netint.c b/libc/inet/ns_netint.c new file mode 100644 index 0000000..acf88dc --- /dev/null +++ b/libc/inet/ns_netint.c @@ -0,0 +1,8 @@ +/* + * Copyright (C) 2000-2006 Erik Andersen <[email protected]> + * + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + */ + +#define L_ns_netint +#include RESOLVER diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c index 9f5d118..a347ca5 100644 --- a/libc/inet/resolv.c +++ b/libc/inet/resolv.c @@ -3326,6 +3326,32 @@ int res_querydomain(const char *name, const char *domain, int class, int type, libc_hidden_def(res_querydomain) #endif /* L_res_query */ +#ifdef L_ns_netint +unsigned int ns_get16(const unsigned char *src) +{ + unsigned int dst; + NS_GET16(dst, src); + return dst; +} + +unsigned long ns_get32(const unsigned char *src) +{ + unsigned long dst; + NS_GET32(dst, src); + return dst; +} + +void ns_put16(unsigned int src, unsigned char *dst) +{ + NS_PUT16(src, dst); +} + +void ns_put32(unsigned long src, unsigned char *dst) +{ + NS_PUT32(src, dst); +} +#endif /* L_ns_netint */ + /* Unimplemented: */ /* res_mkquery */ /* res_send */ -- 1.7.5.4 _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
