2016-02-22 18:09:13

by Steve Dickson

[permalink] [raw]
Subject: [PATCH] nfsd: use correct byte order on rdma port.

The returned port from getservbyname() is in
network order. Convert the port to host order
before writing it to the portlist file.

Reported-by: Chuck Lever <[email protected]>
Signed-off-by: Steve Dickson <[email protected]>
---
utils/nfsd/nfssvc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
index e8efd06..dcb430a 100644
--- a/utils/nfsd/nfssvc.c
+++ b/utils/nfsd/nfssvc.c
@@ -282,7 +282,7 @@ nfssvc_set_rdmaport(const char *port)
int fd;

if (sv)
- nport = sv->s_port;
+ nport = ntohs(sv->s_port);
else {
char *ep;
nport = strtol(port, &ep, 10);
--
2.5.0



2016-02-22 18:33:33

by Chuck Lever III

[permalink] [raw]
Subject: Re: [PATCH] nfsd: use correct byte order on rdma port.


> On Feb 22, 2016, at 1:09 PM, Steve Dickson <[email protected]> wrote:
>
> The returned port from getservbyname() is in
> network order. Convert the port to host order
> before writing it to the portlist file.

Reviewed-by: Chuck Lever <[email protected]>

/etc/services has:

nfsrdma 20049/tcp
nfsrdma 20049/udp
nfsrdma 20049/sctp

which RFC 5666 defines, but I couldn't find in the
IANA protocols registry.

struct servent *sv = getservbyname("nfsrdma", "tcp");

Is weird.


> Reported-by: Chuck Lever <[email protected]>
> Signed-off-by: Steve Dickson <[email protected]>
> ---
> utils/nfsd/nfssvc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
> index e8efd06..dcb430a 100644
> --- a/utils/nfsd/nfssvc.c
> +++ b/utils/nfsd/nfssvc.c
> @@ -282,7 +282,7 @@ nfssvc_set_rdmaport(const char *port)
> int fd;
>
> if (sv)
> - nport = sv->s_port;
> + nport = ntohs(sv->s_port);
> else {
> char *ep;
> nport = strtol(port, &ep, 10);
> --
> 2.5.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

--
Chuck Lever





2016-02-22 18:53:39

by Tom Talpey

[permalink] [raw]
Subject: Re: [PATCH] nfsd: use correct byte order on rdma port.

On 2/22/2016 10:33 AM, Chuck Lever wrote:
>
>> On Feb 22, 2016, at 1:09 PM, Steve Dickson <[email protected]> wrote:
>>
>> The returned port from getservbyname() is in
>> network order. Convert the port to host order
>> before writing it to the portlist file.
>
> Reviewed-by: Chuck Lever <[email protected]>
>
> /etc/services has:
>
> nfsrdma 20049/tcp
> nfsrdma 20049/udp
> nfsrdma 20049/sctp
>
> which RFC 5666 defines, but I couldn't find in the
> IANA protocols registry.

They're there:

http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt

nfsrdma 20049 tcp Network File System (NFS)

[RFC5666]
over RDMA
nfsrdma 20049 udp Network File System (NFS)

[RFC5666]
over RDMA
nfsrdma 20049 sctp Network File System (NFS)

[RFC5666]
over RDMA


>
> struct servent *sv = getservbyname("nfsrdma", "tcp");
>
> Is weird.
>
>
>> Reported-by: Chuck Lever <[email protected]>
>> Signed-off-by: Steve Dickson <[email protected]>
>> ---
>> utils/nfsd/nfssvc.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
>> index e8efd06..dcb430a 100644
>> --- a/utils/nfsd/nfssvc.c
>> +++ b/utils/nfsd/nfssvc.c
>> @@ -282,7 +282,7 @@ nfssvc_set_rdmaport(const char *port)
>> int fd;
>>
>> if (sv)
>> - nport = sv->s_port;
>> + nport = ntohs(sv->s_port);
>> else {
>> char *ep;
>> nport = strtol(port, &ep, 10);
>> --
>> 2.5.0
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> Chuck Lever
>
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>

2016-03-01 17:30:15

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] nfsd: use correct byte order on rdma port.



On 02/22/2016 01:09 PM, Steve Dickson wrote:
> The returned port from getservbyname() is in
> network order. Convert the port to host order
> before writing it to the portlist file.
>
> Reported-by: Chuck Lever <[email protected]>
> Signed-off-by: Steve Dickson <[email protected]>
Committed..

steved.

> ---
> utils/nfsd/nfssvc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
> index e8efd06..dcb430a 100644
> --- a/utils/nfsd/nfssvc.c
> +++ b/utils/nfsd/nfssvc.c
> @@ -282,7 +282,7 @@ nfssvc_set_rdmaport(const char *port)
> int fd;
>
> if (sv)
> - nport = sv->s_port;
> + nport = ntohs(sv->s_port);
> else {
> char *ep;
> nport = strtol(port, &ep, 10);
>