lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <AANLkTinFOhtSe8nXu1pHbD+vbyFzgsgOqqz7SJ_70bT9@mail.gmail.com>
Date:	Wed, 11 Aug 2010 11:01:19 -0500
From:	Steve French <smfrench@...il.com>
To:	David Howells <dhowells@...hat.com>
Cc:	torvalds@...l.org, akpm@...ux-foundation.org,
	linux-afs@...ts.infradead.org, linux-kernel@...r.kernel.org,
	linux-cifs@...r.kernel.org, linux-nfs@...r.kernel.org,
	Bryan Schumaker <bjschuma@...app.com>,
	Trond Myklebust <Trond.Myklebust@...app.com>
Subject: Re: [PATCH 1/3] NFS: Use kernel DNS resolver [ver #2]

Patches 1 - 3 of this series now in cifs-2.6.git

On Wed, Aug 11, 2010 at 3:37 AM, David Howells <dhowells@...hat.com> wrote:
> From: Bryan Schumaker <bjschuma@...app.com>
>
> Use the kernel DNS resolver to translate hostnames to IP addresses.  Create a
> new config option to choose between the legacy DNS resolver and the new
> resolver.
>
> Signed-off-by: Bryan Schumaker <bjschuma@...app.com>
> Acked-by: Trond Myklebust <Trond.Myklebust@...app.com>
> Signed-off-by: David Howells <dhowells@...hat.com>
> ---
>
>  fs/nfs/Kconfig       |   16 ++++++++++++++++
>  fs/nfs/dns_resolve.c |   24 ++++++++++++++++++++++++
>  fs/nfs/dns_resolve.h |   12 ++++++++++++
>  3 files changed, 52 insertions(+), 0 deletions(-)
>
> diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
> index cc1bb33..c5bbdca 100644
> --- a/fs/nfs/Kconfig
> +++ b/fs/nfs/Kconfig
> @@ -100,3 +100,19 @@ config NFS_FSCACHE
>        help
>          Say Y here if you want NFS data to be cached locally on disc through
>          the general filesystem cache manager
> +
> +config NFS_USE_LEGACY_DNS
> +       bool "Use the legacy NFS DNS resolver"
> +       depends on NFS_V4
> +       help
> +         The kernel now provides a method for translating a host name into an
> +         IP address.  Select Y here if you would rather use your own DNS
> +         resolver script.
> +
> +         If unsure, say N
> +
> +config NFS_USE_KERNEL_DNS
> +       bool
> +       depends on NFS_V4 && !NFS_USE_LEGACY_DNS
> +       select DNS_RESOLVER
> +       default y
> diff --git a/fs/nfs/dns_resolve.c b/fs/nfs/dns_resolve.c
> index 76fd235..dba50a5 100644
> --- a/fs/nfs/dns_resolve.c
> +++ b/fs/nfs/dns_resolve.c
> @@ -6,6 +6,29 @@
>  * Resolves DNS hostnames into valid ip addresses
>  */
>
> +#ifdef CONFIG_NFS_USE_KERNEL_DNS
> +
> +#include <linux/sunrpc/clnt.h>
> +#include <linux/dns_resolver.h>
> +
> +ssize_t nfs_dns_resolve_name(char *name, size_t namelen,
> +               struct sockaddr *sa, size_t salen)
> +{
> +       ssize_t ret;
> +       char *ip_addr = NULL;
> +       int ip_len;
> +
> +       ip_len = dns_query(NULL, name, namelen, NULL, &ip_addr, NULL);
> +       if (ip_len > 0)
> +               ret = rpc_pton(ip_addr, ip_len, sa, salen);
> +       else
> +               ret = -ESRCH;
> +       kfree(ip_addr);
> +       return ret;
> +}
> +
> +#else
> +
>  #include <linux/hash.h>
>  #include <linux/string.h>
>  #include <linux/kmod.h>
> @@ -346,3 +369,4 @@ void nfs_dns_resolver_destroy(void)
>        nfs_cache_unregister(&nfs_dns_resolve);
>  }
>
> +#endif
> diff --git a/fs/nfs/dns_resolve.h b/fs/nfs/dns_resolve.h
> index a3f0938..199bb55 100644
> --- a/fs/nfs/dns_resolve.h
> +++ b/fs/nfs/dns_resolve.h
> @@ -6,8 +6,20 @@
>
>  #define NFS_DNS_HOSTNAME_MAXLEN        (128)
>
> +
> +#ifdef CONFIG_NFS_USE_KERNEL_DNS
> +static inline int nfs_dns_resolver_init(void)
> +{
> +       return 0;
> +}
> +
> +static inline void nfs_dns_resolver_destroy(void)
> +{}
> +#else
>  extern int nfs_dns_resolver_init(void);
>  extern void nfs_dns_resolver_destroy(void);
> +#endif
> +
>  extern ssize_t nfs_dns_resolve_name(char *name, size_t namelen,
>                struct sockaddr *sa, size_t salen);
>
>
>



-- 
Thanks,

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ