X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fmount%2Fstropts.c;h=09fca86d1e1705a72e8a6bfb805a9d861f8fdfb8;hp=e4a440890e89ad01b628b4d8aebd4e865e1c8e1f;hb=8508942e7244017325690e2d0c17429fa0cb9873;hpb=8e158aa65577b96494eaa94c4983eed1449116dc diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c index e4a4408..09fca86 100644 --- a/utils/mount/stropts.c +++ b/utils/mount/stropts.c @@ -353,6 +353,17 @@ static struct mount_options *nfs_rewrite_mount_options(char *str) option = po_get(options, "mountvers"); if (option) mnt_server.pmap.pm_vers = atoi(option); + option = po_get(options, "mountproto"); + if (option) { + if (strcmp(option, "tcp") == 0) { + mnt_server.pmap.pm_prot = IPPROTO_TCP; + po_remove_all(options, "mountproto"); + } + if (strcmp(option, "udp") == 0) { + mnt_server.pmap.pm_prot = IPPROTO_UDP; + po_remove_all(options, "mountproto"); + } + } option = po_get(options, "port"); if (option) { @@ -421,6 +432,20 @@ static struct mount_options *nfs_rewrite_mount_options(char *str) } + if (mnt_server.pmap.pm_prot == IPPROTO_TCP) + snprintf(new_option, sizeof(new_option) - 1, + "mountproto=tcp"); + else + snprintf(new_option, sizeof(new_option) - 1, + "mountproto=udp"); + if (po_append(options, new_option) == PO_FAILED) + goto err; + + snprintf(new_option, sizeof(new_option) - 1, + "mountport=%lu", mnt_server.pmap.pm_port); + if (po_append(options, new_option) == PO_FAILED) + goto err; + errno = 0; return options;