X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=utils%2Fmount%2Fnetwork.c;h=7d9accd19f56ead4410906fb7394edc20a142b87;hb=9889b48572e672f4535ca9dafd98d81146b7b834;hp=d4ecbc947c47e99911ba1dd3c39fec64b0a99954;hpb=1af166179c3f28fa9943f7844e03032f3bdae7ea;p=nfs-utils.git diff --git a/utils/mount/network.c b/utils/mount/network.c index d4ecbc9..7d9accd 100644 --- a/utils/mount/network.c +++ b/utils/mount/network.c @@ -172,9 +172,9 @@ static const unsigned long probe_mnt3_first[] = { 0, }; -inline const unsigned int *set_default_proto(void); +static const unsigned int *nfs_default_proto(void); #ifdef MOUNT_CONFIG -inline const unsigned int *set_default_proto() +static const unsigned int *nfs_default_proto() { extern unsigned long config_default_proto; /* @@ -187,14 +187,24 @@ inline const unsigned int *set_default_proto() return probe_tcp_first; } #else -inline const unsigned int *set_default_proto() +static const unsigned int *nfs_default_proto() { return probe_tcp_first; } #endif /* MOUNT_CONFIG */ -static int nfs_lookup(const char *hostname, const sa_family_t family, - struct sockaddr *sap, socklen_t *salen) +/** + * nfs_lookup - resolve hostname to an IPv4 or IPv6 socket address + * @hostname: pointer to C string containing DNS hostname to resolve + * @family: address family hint + * @sap: pointer to buffer to fill with socket address + * @len: IN: size of buffer to fill; OUT: size of socket address + * + * Returns 1 and places a socket address at @sap if successful; + * otherwise zero. + */ +int nfs_lookup(const char *hostname, const sa_family_t family, + struct sockaddr *sap, socklen_t *salen) { struct addrinfo *gai_results; struct addrinfo gai_hint = { @@ -633,7 +643,7 @@ static int nfs_probe_nfsport(const struct sockaddr *sap, const socklen_t salen, if (nfs_mount_data_version >= 4) { const unsigned int *probe_proto; - probe_proto = set_default_proto(); + probe_proto = nfs_default_proto(); return nfs_probe_port(sap, salen, pmap, probe_nfs3_first, probe_proto); @@ -1289,6 +1299,7 @@ nfs_nfs_version(struct mount_options *options, unsigned long *version) int nfs_nfs_protocol(struct mount_options *options, unsigned long *protocol) { + sa_family_t family; char *option; switch (po_rightmost(options, nfs_transport_opttbl)) { @@ -1300,17 +1311,8 @@ nfs_nfs_protocol(struct mount_options *options, unsigned long *protocol) return 1; case 2: /* proto */ option = po_get(options, "proto"); - if (option) { - if (strcmp(option, "tcp") == 0) { - *protocol = IPPROTO_TCP; - return 1; - } - if (strcmp(option, "udp") == 0) { - *protocol = IPPROTO_UDP; - return 1; - } - return 0; - } + if (option != NULL) + return nfs_get_proto(option, &family, protocol); } /* @@ -1419,20 +1421,12 @@ nfs_mount_version(struct mount_options *options, unsigned long *version) static int nfs_mount_protocol(struct mount_options *options, unsigned long *protocol) { + sa_family_t family; char *option; option = po_get(options, "mountproto"); - if (option) { - if (strcmp(option, "tcp") == 0) { - *protocol = IPPROTO_TCP; - return 1; - } - if (strcmp(option, "udp") == 0) { - *protocol = IPPROTO_UDP; - return 1; - } - return 0; - } + if (option != NULL) + return nfs_get_proto(option, &family, protocol); /* * MNT transport protocol wasn't specified. If the NFS