s3-rpc_server: Only support static build.
Andreas Schneider
asn at samba.org
Mon Dec 20 06:51:17 MST 2010
Hi Team,
we face some issues with the RPC service init and shutdown functions. In the
past it was possible to compile RPC services as shared modules or as static
modules linked directly into smbd.
This approach has some issues. Some RPC services depend on other RPC services,
so the order in which the RPC services are set up matters. That the configure
script created only a list of init functions but we need to call the shutdown
functions in the reverse order we set it up.
Maybe you know that we have rewritten large parts of the spoolss code and used
winreg instead of tdb files. With these changed and other changes to remove
global variables in Samba we had to introduce a way to call functions for
maintenance when a RPC service starts. We created a structure called
'rpc_srv_callbacks' where you can set an init and shutdown function and a
pointer for userdata. With this structure the function prototype has changed
from:
NTSTATUS rpc_<service>_init(void);
to
NTSTATUS rpc_<service>_init(const struct rpc_srv_callbacks *rpc_srv_cb);
For spoolss we use an init function you can set with the callback structure to
migrate the printing tdb's to winreg and we use a shutdown function to clean
up memory.
The shutdown functions were never called and they are needed. Another task of
this function is to register or deregister RPC services in smbd.
So here is a proposed patchset which calls the init functions in the right
order, calls the needed shutdown functions and builds the RPC services only
staically.
http://git.samba.org/?p=asn/samba.git;a=shortlog;h=refs/heads/s3-fixes
Regards,
-- andreas
More information about the samba-technical
mailing list