Can the unset or unregister calls be called with "wildcards" for
program and version number?
I am still trying to collect evidence as to how it happens. There are
no relevant messages in syslog and it happens very rarely. I thought
I would try checking net experience along with other research.
Thank you.
not that I know of... from the rpc rfc (rfc1057) :
program PMAP_PROG {
version PMAP_VERS {
void
PMAPPROC_NULL(void) = 0;
bool
PMAPPROC_SET(mapping) = 1;
bool
PMAPPROC_UNSET(mapping) = 2;
[ ... ]
}
struct mapping {
unsigned int prog;
unsigned int vers;
unsigned int prot;
unsigned int port;
};
PMAPPROC_SET:
When a program first becomes available on a machine, it registers
itself with the port mapper program on the same machine. The program
passes its program number "prog", version number "vers", transport
protocol number "prot", and the port "port" on which it awaits
service request. The procedure returns a boolean reply whose value
is "TRUE" if the procedure successfully established the mapping and
"FALSE" otherwise. The procedure refuses to establish a mapping if
one already exists for the tuple "(prog, vers, prot)".
PMAPPROC_UNSET:
When a program becomes unavailable, it should unregister itself with
the port mapper program on the same machine. The parameters and
results have meanings identical to those of "PMAPPROC_SET". The
protocol and port number fields of the argument are ignored.
>I am still trying to collect evidence as to how it happens. There are
>no relevant messages in syslog and it happens very rarely. I thought
>I would try checking net experience along with other research.
Does the portmapper get restarted? (check start time... not that I know
of any good reason why it would). If strace/trace/truss exists on your
system, you might want to attach it to the portmapper to see if it gets
UDP packets just before dropping the registrations, and from where.
Authentification on (de)registration is rather weak, but you do need
root to send from a priv. port, in order to unregister an RPC server
which is itself running on a priv. port... so an ordinary non-root
troublemaker couldn't normally unregister most of your services.
--
Roger Espel Llima
es...@llaic.univ-bpclermont.fr, es...@unix.bigots.org
http://www.eleves.ens.fr:8080/home/espel/index.html