no name services! rpc_ns_binding_xxx() is blank!

Tatsukawa, Seiichi stat at rational.com
Thu Oct 18 21:49:02 GMT 2001


NSI (Naming Service Independent) API was removed (along with the security)
from PD-DCE-RPC tar ball. Thus, it  supported the explicit binding only.
(Without CDS server, it was useless. Windows has the builtin support for
CDS, but it requires nsid (? the actual process name escapes me) running in
DCE environment because it's NSI over RPC.)

The Name Service stores more persistent information than the Endpoint
Mapper, i.e., the RPC binding without the endpoint. The multiple servers
(e.g., different IP addresses) may register their bindings at the same name
service entry or the single server may register the multi-transports (e.g.,
TCP/IP, UDP/IP, DECNet, etc.) at the single name service entry, etc. You
call rpc_ns_binding_*() to enumerate the bindings available (offering the
service your are interested), pick one (or more), then call
rpc_ep_resolve_binding() (talk to the endpoint mapper on the target host) to
find the current endpoint. (This is somewhat analogous to DNS returning the
multiple IP addresses for the popular web server and the browser picking one
of them.)
 
The endpoint could change often because of the server process restart,
multiple server processes, etc. Of course, if the service uses the
well-known endpoint (e.g., TCP port 135, \PIPE\ntsvcs, etc.), you don't need
to call rpc_ep_resolve_binding(). The interface's well-known endpoint is
defined in the IDL file.

---  Seiichi




More information about the samba-technical mailing list