162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Resolve DNS hostnames into valid ip addresses
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci#ifndef __LINUX_FS_NFS_DNS_RESOLVE_H
662306a36Sopenharmony_ci#define __LINUX_FS_NFS_DNS_RESOLVE_H
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#define NFS_DNS_HOSTNAME_MAXLEN	(128)
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#ifdef CONFIG_NFS_USE_KERNEL_DNS
1262306a36Sopenharmony_cistatic inline int nfs_dns_resolver_init(void)
1362306a36Sopenharmony_ci{
1462306a36Sopenharmony_ci	return 0;
1562306a36Sopenharmony_ci}
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cistatic inline void nfs_dns_resolver_destroy(void)
1862306a36Sopenharmony_ci{}
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cistatic inline int nfs_dns_resolver_cache_init(struct net *net)
2162306a36Sopenharmony_ci{
2262306a36Sopenharmony_ci	return 0;
2362306a36Sopenharmony_ci}
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_cistatic inline void nfs_dns_resolver_cache_destroy(struct net *net)
2662306a36Sopenharmony_ci{}
2762306a36Sopenharmony_ci#else
2862306a36Sopenharmony_ciextern int nfs_dns_resolver_init(void);
2962306a36Sopenharmony_ciextern void nfs_dns_resolver_destroy(void);
3062306a36Sopenharmony_ciextern int nfs_dns_resolver_cache_init(struct net *net);
3162306a36Sopenharmony_ciextern void nfs_dns_resolver_cache_destroy(struct net *net);
3262306a36Sopenharmony_ci#endif
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciextern ssize_t nfs_dns_resolve_name(struct net *net, char *name,
3562306a36Sopenharmony_ci		size_t namelen,	struct sockaddr_storage *sa, size_t salen);
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci#endif
38