CVS update: samba/source/include
bs at niggard.org
bs at niggard.org
Fri Dec 17 19:42:14 EST 1999
This mail is entirely based on my intuition, not on hard facts or
anything; don't hit me, i just have no time digging into the internals
On Fri, 17 Dec 1999, Andrew Tridgell wrote:
> > > I want SMB/MSRPC to die, not to become a core piece of every unix
> > > admins toolbox. I can't think of any unix admin who wants the ablity
> > > to control unix daemons from NT.
> > you might not. the unix admins might.
> they won't. ask a few if they want to start/stop sendmail via
> I asked our local sysadmin. His answer was "its crap"
True, any sane admin that can use a shell and X will never ever want to
fire up windows to do administration work. but reality looks like this:
more and more people are using samba that never ever used a shell. and
they want to be able to do everything from their known NT-tools and they
want to have a linux/bsd server. sad but true.
so first i thought: hey, if we can do it, why not? it's not my problem if
the luser messes everything up. i've warned him enough, he'll have to pay
me for fixing it. but after thinking over it: no, it's just too dirty. and
unix is not about doing it dirty, it's about doing it right and letting
you the freedom to do it dirty. so, dont bother implementing this. give
people a framework to do anything they want with msrpcs. what *i* would
love is a plugin system comparable to gimp: handle msrpcs in plugins. the
api is nearly as easy as simple function calling. as there will be no
"external" plugins for some time, the api can evolve. every plugin will
have 3 major functions: load_plugin(...) handle_rpc(struct rpc*)
unload_plugin(). the plugin chooses which rpc's it handles. if the user
loads a plugin not by the samba team, that formats her hd, can be fucked
by overflows or whatever => it's not your fault! of course lots of thinking
will have to go in a system like this, like how to catch segfaults in
plugins and so on. but it still looks easier than doing this over pipes!
i dont see what you lose over the multi-server system: instead of starting
and stopping, load and unload. instead of 3rd party servers, 3rd party
plugins. instead of running another process, just let the plugin fork() in
the load_plugin() code. the code for decoding rpcs can be provided by
smbd. the only problem that comes in to my mind is plugins and smbd being
linked to different versions of the same library. but this is unlikely,
(OTOH i do not see the need to do an lsarpcd either...)
when i can get some time on weekend and i'll try to distill some example
code out of the gimp.
More information about the samba-cvs