a proposal for Samba 3.5
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Fri Apr 9 00:29:13 GMT 2004
> Even if "net" was/became a full replacement of rpcclient, the removal
> of rpcclient would break a lot of existing (CUPS) installations, if
> Samba was upgraded.
i created a series of commands from the base rpcclient functionality.
net, lsa, rpcclient, samedit, regedit, cmdat - you get the picture.
each of these commands was a subset of the base rpcclient capability,
where each command pretty much looked after testing of a single
DCE/RPC pipe - samedit looked after \PIPE\samr for example.
i presume that the net command under discussion is not the same
"net" command as the one created in 1999 / 2000.
there are a number of reasons why rpcclient should go.
1) it relies on hand-crafted DCE/RPC system calls that were part of
a learning process for the development of DCE/RPC (client
_and_ server) in samba.
beyond a certain point (about 10,000 lines of code), that
hand-crafting should never have got any further than it did.
it continued because the codebase for the reference dce/rpc 1.1 was
in itself a massive 250,000 lines of code: by comparison at the time,
way too daunting and way too steep a learning curve, and also,
it was not clear how to fit NT security into that ref.
implementation [i'll leave it at that].
if that hand-crafted code goes away, then the reason to keep
rpcclient around also goes away: it becomes a maintenance
2) the function names of the libraries that rpcclient use do not
conform to the Win32 API (or to the IDL files on which the
majority of those Win32 APIs are based).
3) the calling conventions of the libraries used by rpcclient do not
fit the DCE/RPC environment's calling conventions.
i.e. even if those functions had the same names as their IDL
equivalents, they still couldn't be used in Wine because they
would leak memory like a sieve or crash the client application
expecting email to be received and understood is a bit like
picking up the telephone and immediately dialing without
checking for a dial-tone; speaking immediately without listening
for either an answer or ring-tone; hanging up immediately and
believing that you have actually started a conversation.
<a href="http://lkcl.net"> lkcl.net </a> <br />
<a href="mailto:lkcl at lkcl.net"> lkcl at lkcl.net </a> <br />
More information about the samba-technical