a proposal for Samba 3.5

Luke Kenneth Casson Leighton lkcl at lkcl.net
Fri Apr 9 00:05:37 GMT 2004

> ...
> It should be relatively easy to replace most uses of RPC in Samba3.5
> with the Samba4 RPC library, except perhaps for the rpcclient tool.
> I would suggest removing the rpcclient tool in Samba3.5, and instead
> work towards writing a new tool with equivalent functionality
> (possibly even basing the new tool on Tim's python or perl
> interfaces
> to the library).
> ...

rpcclient was initially a test-tool that turned into something useful,
like smbclient was.

it was always intended as the client-side of the bootstrap
network-reverse-engineering effort [watch network, test your client
against other server, observe response, code response into your server,
get other client to test against your server, observe next request].

however, its usefulness is limited by not being "compatible" - i.e.
a bridge - to the _real_ APIs that microsoft uses to create the
same kind of network traffic that NT does.

in other words, rpcclient (or more specifically the APIs that it
calls) is not Win32-API-compliant.

therefore, as i have mentioned a couple of times before, a more
useful goal would be to create a networked version of the appropriate
Win32 APIs.

if that is done, then with very little more effort (combining
wine with samba) you get a test suite for free - the wine
test suite.

and incidentally, any applications that run under Wine such
as regedit.exe can also be used to test - and encourage - 
further development.

development of what i would call "proper" functionality behind
the win32 APIs is not always quite a direct correspondance between
the Win32 API and what ends up on-the-wire.

whilst RegCreateKey and friends are very obvious direct descendants
of the original regedit.idl, NetUserGetInfo info level 3 is most
definitely _not_ an obvious fit for SamUserGetInfo level 21, and
the reason is because of indirection APIs.

however, for all practical intents and purposes, that's not
samba's problem to deal with, it's the wine team's problem.

by providing SamUserGetInfo (etc.) it is up to the wine team to
then use that in NetUserGetInfo.

btw if you're looking for test code for the Sam* functions, take
a look at razor.bindview.com.


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 mailing list