The branch, master has been updated via 864a95f... s3:winbind use no_srv_register to avoid needing rpc_srv_register via f5f184a... pidl: Allow new property 'no_srv_register'. from 0953087... s3-spoolss: Added EN ISO 216, A0 and A1 to builtin forms.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 864a95fd9c2dc74f2612478e7b7784c9abc37257 Author: Andrew Bartlett <abart...@samba.org> Date: Thu May 13 07:57:27 2010 +1000 s3:winbind use no_srv_register to avoid needing rpc_srv_register This pidl attribute avoids the need for this dummy function, which helps s3compat. Andrew Bartlett Signed-off-by: Günther Deschner <g...@samba.org> commit f5f184a77cfe83498d6e55f10fdf79ca37229696 Author: Andrew Bartlett <abart...@samba.org> Date: Thu May 13 07:53:07 2010 +1000 pidl: Allow new property 'no_srv_register'. This Samba-only property prevents pild from emitting the rpc_wbint_init function, which causes problems because it needs rpc_srv_register(). Andrew Bartlett Signed-off-by: Günther Deschner <g...@samba.org> ----------------------------------------------------------------------- Summary of changes: pidl/lib/Parse/Pidl/Compat.pm | 1 + pidl/lib/Parse/Pidl/NDR.pm | 3 ++- pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm | 13 +++++++------ source3/librpc/idl/wbint.idl | 3 ++- source3/winbindd/winbindd_dual_ndr.c | 10 ---------- 5 files changed, 12 insertions(+), 18 deletions(-) Changeset truncated at 500 lines: diff --git a/pidl/lib/Parse/Pidl/Compat.pm b/pidl/lib/Parse/Pidl/Compat.pm index 66f3c5f..b8abcb8 100644 --- a/pidl/lib/Parse/Pidl/Compat.pm +++ b/pidl/lib/Parse/Pidl/Compat.pm @@ -19,6 +19,7 @@ my %supported_properties = ( "uuid" => ["INTERFACE"], "endpoint" => ["INTERFACE"], "pointer_default" => ["INTERFACE"], + "no_srv_register" => ["INTERFACE"], # dcom "object" => ["INTERFACE"], diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm index 3d91f3a..a875ec8 100644 --- a/pidl/lib/Parse/Pidl/NDR.pm +++ b/pidl/lib/Parse/Pidl/NDR.pm @@ -882,7 +882,8 @@ my %property_list = ( "helper" => ["INTERFACE"], "pyhelper" => ["INTERFACE"], "authservice" => ["INTERFACE"], - "restricted" => ["INTERFACE"], + "restricted" => ["INTERFACE"], + "no_srv_register" => ["INTERFACE"], # dcom "object" => ["INTERFACE"], diff --git a/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm b/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm index 23a8736..f4dbe18 100644 --- a/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm +++ b/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm @@ -313,12 +313,13 @@ sub ParseInterface($) ParseDispatchFunction($if); - pidl_hdr "NTSTATUS rpc_$if->{NAME}_init(void);"; - pidl "NTSTATUS rpc_$if->{NAME}_init(void)"; - pidl "{"; - pidl "\treturn rpc_srv_register(SMB_RPC_INTERFACE_VERSION, \"$if->{NAME}\", \"$if->{NAME}\", \&ndr_table_$if->{NAME}, api_$if->{NAME}_cmds, sizeof(api_$if->{NAME}_cmds) / sizeof(struct api_struct));"; - pidl "}"; - + if (not has_property($if, "no_srv_register")) { + pidl_hdr "NTSTATUS rpc_$if->{NAME}_init(void);"; + pidl "NTSTATUS rpc_$if->{NAME}_init(void)"; + pidl "{"; + pidl "\treturn rpc_srv_register(SMB_RPC_INTERFACE_VERSION, \"$if->{NAME}\", \"$if->{NAME}\", \&ndr_table_$if->{NAME}, api_$if->{NAME}_cmds, sizeof(api_$if->{NAME}_cmds) / sizeof(struct api_struct));"; + pidl "}"; + } pidl_hdr "#endif /* __SRV_$uif\__ */"; } diff --git a/source3/librpc/idl/wbint.idl b/source3/librpc/idl/wbint.idl index 432d59e..2fd3e88 100644 --- a/source3/librpc/idl/wbint.idl +++ b/source3/librpc/idl/wbint.idl @@ -6,7 +6,8 @@ import "lsa.idl", "netlogon.idl"; endpoint("ncalrpc:"), pointer_default(unique), version(1.0), - helpstring("winbind parent-child protocol") + helpstring("winbind parent-child protocol"), + no_srv_register ] interface wbint { diff --git a/source3/winbindd/winbindd_dual_ndr.c b/source3/winbindd/winbindd_dual_ndr.c index bc85d53..e100405 100644 --- a/source3/winbindd/winbindd_dual_ndr.c +++ b/source3/winbindd/winbindd_dual_ndr.c @@ -284,13 +284,3 @@ enum winbindd_result winbindd_dual_ndrcmd(struct winbindd_domain *domain, } return WINBINDD_OK; } - -/* - * Just a dummy to make srv_wbint.c happy - */ -NTSTATUS rpc_srv_register(int version, const char *clnt, const char *srv, - const struct ndr_interface_table *iface, - const struct api_struct *cmds, int size) -{ - return NT_STATUS_OK; -} -- Samba Shared Repository