I am writing a straightforward RPC (specifically Sun's TI-RPC using the
loopback /dev/ticots device) application that shows some strange behavior.
Basically, the server side
(1) create a SVCXPRT handle using
svc_tli_create(RPC_ANYFD, nconf, NULL, 0, 0);
where nconf->nc_semantics == NC_TPI_COTS,
nconf->nc_protofmly is NC_LOOPBACK and
nconf->nc_proto is NC_NOPROTO, and
(2) registers the service using svc_reg() (the dispatcher routine registered
is very simple and supports NULLPROC)
After svc_reg(), the service indeed shows up with rpcinfo(1). However,
when the client side tries to create a CLIENT handle to the service
using clnt_tli_create() (first using rpcb_getaddr to find out the server
address), the call simply blocks there and never returns.
So does anyone know if it is some common mistake that I made which causes
this kind of behavior? Also, does anyone know where to look for references/
examples of callback RPC applications using Sun's TI-RPC (preferably examples
on using the loopback interfaces such as /dev/ticots)?
Thanks in advance,