the client

Andrew Tridgell tridge at
Thu Aug 20 02:20:04 GMT 1998

We need to work out what we are going to do about smbclient.

Right now we have several code sets:

1) the head branch. The code is very messy and badly designed but does
   generally work. It uses clientutil.c as its "library", although it
   does most SMB stuff inline by writing into a packet buffer.

2) the ntdom branch in sambaold. This one was done primarily by
   Luke. It is nicely structured. It splits the client code into
   sections and uses Lukes varient of clientgen.c. It has the nt rpc
   client stuff, which allows you to do all sorts of nice stuff with
   pipes. It has not been autoconf converted and many bugs we have
   fixed in the main branch are not fixed here.

3) clientgen.c in the head branch. This was my attempt at a set of
   basic SMB client functions in a library-like format. All the head
   branch client calls are made via this code _except_ for those from
   smbclient! My plan at the time was to convert smbclient to use this
   code. I never got around to it.

4) the 1.9.18 branch in sambaold. This has some bug fixes from

As I see it we have a number of choices:

1) dump the head branch client code and replace it with Lukes
   code. This is harder than it sounds because it means reconciling
   the differences in clientgen.c between the two versions. It also
   means re-fixing all the bugs that have been fixed since the ntdom
   split. some cvs history might help with that.

2) convert the head branch to use clientgen.c and do some
   restructuring so it becomes maintainable. This means losing the nt
   client stuff luke has done.

3) write a new smbclient from scratch.

I think the best option is (1). Anyone else have a suggestion? 

Whatever we do it will be quite a lot of work. I started to do (1)
last night but gave up when I realised I couldn't get it done in the
couple of hours I had available. The hard bit is reconciling the
clientgen.c differences.

More information about the samba-technical mailing list