status of rpcclient / msrpc code

Luke Leighton lkcl at
Tue Nov 30 00:20:30 GMT 1999

1) implemented equivalent of nt "NetUseAdd" and "NetUseDel" in

2) automatically hidden MSRPC client connections behind an API in
rpc_client/cli_connect.c.  MSRPC connections can reuse SMB client
connections, and later on i will get them to reuse SMB file handles.
maybe.  maybe not.  hmm... no, doesn't sound like a good idea.

there are two ways in which the cli_connect api are used.  one is to
establish a connection to \\server_name with user credentials (user,
domain, pass).  the other is to do this and _then_ associate the MSRPC
connection with a policy handle.  when the policy handle is freed, then
the connection is "unlinked".  that means that NetUseDel is called.  that
means that the usage count on the SMB client connection is reduced by one.
when the count gets to zero, the SMB connection is automatically dropped.

that's the theory, anyway.

at the moment, i have lots of free SMB connections hanging about.  this
makes for fast connections after the first rpcclient command to a server
is issued, but it means that SMB connections are hanging about, and they
may not be servicing SMB session keepalives, which means that they die,
which means that they will need to be closed and reestablished.

and i haven't added code to do that.  yet. :-)

a little bit more to do.  a little bit more debugging.  then this
total-nightmare-reshuffle is over.  i hope.

can people please download the latest cvs (into a separate directory),
play with it (esp if you have purify handy) and get back to me?

suggest ./configure.developer; make bin/rpcclient.

remember, rpcclient can now issue the command "rpcclient" without quitting
rpcclient. it can be used to change, for example, the target server
(rpcclient -S another_nt_box).  any parameters _not_ specified do _not_
get reset to default values: they are left as-is.  except, of course, when
you run rpcclient the first time, from a unix command-prompt.

hmmm... maybe i will rename the rpcclient rpcclient command to "set".


More information about the samba-technical mailing list