Project

General

Profile

Bug #1982

Make rpcbind_getaddr() work with all versions of rpcbind protocol

Added by Dan Kruchinin about 8 years ago. Updated about 8 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
kernel
Start date:
2012-01-13
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

For now rpcbind_getaddr() works with RPCBIND version 3 protocol only.
If server doesn't support version 3 and especially if it supports old PORTMAP protocol only (see RFC1833 section 3), the caller of rpcbind_getaddr() won't get
the port of remote program because of versions incompatibility.
For example, it doesn't work with old linux machines having portmap (instead of rpcbind) on the board.

It'd be better to make rpcbind_getaddr() semantically equal to its user-space counterpart - rpcb_getaddr() which
have an ability work with all available versions of RPCBIND and PORTMAP protocols.

rpcbind_getaddr() should try to get the port of a remote program using PORTMAP version 2 (possible only for IPv4) at first.
If it fails it should try to use RPCBIND protocol version 4 then. Finally, if version 4 call fails, it should try RPCBINDv3.

History

#1

Updated by Eric Schrock about 8 years ago

  • Status changed from New to Resolved

changeset: 13569:954bbadc2ca4
tag: tip
user: Dan Kruchinin <>
date: Mon Jan 23 07:43:36 2012 -0800

description:
1982 Make rpcbind_getaddr() work with all versions of rpcbind protocol
Reviewed by: Gordon Ross <>
Reviewed by: Dan McDonald <>
Approved by: Eric Schrock <>

modified:
usr/src/uts/common/rpc/rpc_subr.c

Also available in: Atom PDF