[SCM] Samba Shared Repository - branch master updated - 964acde86e17d91148e063ce81014444e4c1f63d

Volker Lendecke vlendec at samba.org
Fri Jan 9 22:18:40 GMT 2009


The branch, master has been updated
       via  964acde86e17d91148e063ce81014444e4c1f63d (commit)
       via  2729c484fbc317687e537a1acc1d7ec83a96a1bd (commit)
       via  106e65a3b3ac5b13ffbf8ea644f25e99257ee64e (commit)
       via  125696b73dbe3d0813432c9775c146e861b4707c (commit)
      from  f8f878285d348e43a22385c1907dff3e120d4b59 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 964acde86e17d91148e063ce81014444e4c1f63d
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Jan 6 23:46:05 2009 +0100

    Remove the rpc_srv_register wrapper around rpc_pipe_register_commands

commit 2729c484fbc317687e537a1acc1d7ec83a96a1bd
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Jan 6 23:39:09 2009 +0100

    Call rpc_srv_register instead of rpc_pipe_register_commands in eventlog and svcctl

commit 106e65a3b3ac5b13ffbf8ea644f25e99257ee64e
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Jan 6 23:37:09 2009 +0100

    Fake up ndr_table_spoolss

commit 125696b73dbe3d0813432c9775c146e861b4707c
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Jan 6 23:29:25 2009 +0100

    Pass the full ndr_interface_table into the s3 rpcserver when registering

-----------------------------------------------------------------------

Summary of changes:
 librpc/gen_ndr/srv_dfs.c                |    2 +-
 librpc/gen_ndr/srv_dssetup.c            |    2 +-
 librpc/gen_ndr/srv_echo.c               |    2 +-
 librpc/gen_ndr/srv_epmapper.c           |    2 +-
 librpc/gen_ndr/srv_eventlog.c           |    2 +-
 librpc/gen_ndr/srv_initshutdown.c       |    2 +-
 librpc/gen_ndr/srv_lsa.c                |    2 +-
 librpc/gen_ndr/srv_netlogon.c           |    2 +-
 librpc/gen_ndr/srv_ntsvcs.c             |    2 +-
 librpc/gen_ndr/srv_samr.c               |    2 +-
 librpc/gen_ndr/srv_srvsvc.c             |    2 +-
 librpc/gen_ndr/srv_svcctl.c             |    2 +-
 librpc/gen_ndr/srv_winreg.c             |    2 +-
 librpc/gen_ndr/srv_wkssvc.c             |    2 +-
 pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm |    2 +-
 source3/include/proto.h                 |    4 ++++
 source3/rpc_server/srv_eventlog.c       |    4 ++--
 source3/rpc_server/srv_pipe.c           |    9 ++++-----
 source3/rpc_server/srv_spoolss.c        |   31 +++++++++++++++++++++++++++----
 19 files changed, 52 insertions(+), 26 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/srv_dfs.c b/librpc/gen_ndr/srv_dfs.c
index 666874f..00afa36 100644
--- a/librpc/gen_ndr/srv_dfs.c
+++ b/librpc/gen_ndr/srv_dfs.c
@@ -1750,5 +1750,5 @@ void netdfs_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_netdfs_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "netdfs", "netdfs", &ndr_table_netdfs.syntax_id, api_netdfs_cmds, sizeof(api_netdfs_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "netdfs", "netdfs", &ndr_table_netdfs, api_netdfs_cmds, sizeof(api_netdfs_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_dssetup.c b/librpc/gen_ndr/srv_dssetup.c
index 3c07ad1..abb890f 100644
--- a/librpc/gen_ndr/srv_dssetup.c
+++ b/librpc/gen_ndr/srv_dssetup.c
@@ -841,5 +841,5 @@ void dssetup_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_dssetup_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "dssetup", "dssetup", &ndr_table_dssetup.syntax_id, api_dssetup_cmds, sizeof(api_dssetup_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "dssetup", "dssetup", &ndr_table_dssetup, api_dssetup_cmds, sizeof(api_dssetup_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_echo.c b/librpc/gen_ndr/srv_echo.c
index 6436079..1912b8b 100644
--- a/librpc/gen_ndr/srv_echo.c
+++ b/librpc/gen_ndr/srv_echo.c
@@ -801,5 +801,5 @@ void rpcecho_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_rpcecho_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "rpcecho", "rpcecho", &ndr_table_rpcecho.syntax_id, api_rpcecho_cmds, sizeof(api_rpcecho_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "rpcecho", "rpcecho", &ndr_table_rpcecho, api_rpcecho_cmds, sizeof(api_rpcecho_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_epmapper.c b/librpc/gen_ndr/srv_epmapper.c
index 68e4a41..b66bdf4 100644
--- a/librpc/gen_ndr/srv_epmapper.c
+++ b/librpc/gen_ndr/srv_epmapper.c
@@ -642,5 +642,5 @@ void epmapper_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_epmapper_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "epmapper", "epmapper", &ndr_table_epmapper.syntax_id, api_epmapper_cmds, sizeof(api_epmapper_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "epmapper", "epmapper", &ndr_table_epmapper, api_epmapper_cmds, sizeof(api_epmapper_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_eventlog.c b/librpc/gen_ndr/srv_eventlog.c
index 950daa5..9a87ee6 100644
--- a/librpc/gen_ndr/srv_eventlog.c
+++ b/librpc/gen_ndr/srv_eventlog.c
@@ -1838,5 +1838,5 @@ void eventlog_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_eventlog_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "eventlog", "eventlog", &ndr_table_eventlog.syntax_id, api_eventlog_cmds, sizeof(api_eventlog_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "eventlog", "eventlog", &ndr_table_eventlog, api_eventlog_cmds, sizeof(api_eventlog_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_initshutdown.c b/librpc/gen_ndr/srv_initshutdown.c
index dbbfaaa..f0f3a7b 100644
--- a/librpc/gen_ndr/srv_initshutdown.c
+++ b/librpc/gen_ndr/srv_initshutdown.c
@@ -242,5 +242,5 @@ void initshutdown_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_initshutdown_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "initshutdown", "initshutdown", &ndr_table_initshutdown.syntax_id, api_initshutdown_cmds, sizeof(api_initshutdown_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "initshutdown", "initshutdown", &ndr_table_initshutdown, api_initshutdown_cmds, sizeof(api_initshutdown_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_lsa.c b/librpc/gen_ndr/srv_lsa.c
index 9d29f61..fe95df3 100644
--- a/librpc/gen_ndr/srv_lsa.c
+++ b/librpc/gen_ndr/srv_lsa.c
@@ -6385,5 +6385,5 @@ void lsarpc_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_lsarpc_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "lsarpc", "lsarpc", &ndr_table_lsarpc.syntax_id, api_lsarpc_cmds, sizeof(api_lsarpc_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "lsarpc", "lsarpc", &ndr_table_lsarpc, api_lsarpc_cmds, sizeof(api_lsarpc_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_netlogon.c b/librpc/gen_ndr/srv_netlogon.c
index 40ae09e..1bca23a 100644
--- a/librpc/gen_ndr/srv_netlogon.c
+++ b/librpc/gen_ndr/srv_netlogon.c
@@ -3892,5 +3892,5 @@ void netlogon_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_netlogon_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "netlogon", "netlogon", &ndr_table_netlogon.syntax_id, api_netlogon_cmds, sizeof(api_netlogon_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "netlogon", "netlogon", &ndr_table_netlogon, api_netlogon_cmds, sizeof(api_netlogon_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_ntsvcs.c b/librpc/gen_ndr/srv_ntsvcs.c
index 38fb0bb..0a93723 100644
--- a/librpc/gen_ndr/srv_ntsvcs.c
+++ b/librpc/gen_ndr/srv_ntsvcs.c
@@ -4873,5 +4873,5 @@ void ntsvcs_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_ntsvcs_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "ntsvcs", "ntsvcs", &ndr_table_ntsvcs.syntax_id, api_ntsvcs_cmds, sizeof(api_ntsvcs_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "ntsvcs", "ntsvcs", &ndr_table_ntsvcs, api_ntsvcs_cmds, sizeof(api_ntsvcs_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_samr.c b/librpc/gen_ndr/srv_samr.c
index 598ec2a..9bda878 100644
--- a/librpc/gen_ndr/srv_samr.c
+++ b/librpc/gen_ndr/srv_samr.c
@@ -5478,5 +5478,5 @@ void samr_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_samr_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "samr", "samr", &ndr_table_samr.syntax_id, api_samr_cmds, sizeof(api_samr_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "samr", "samr", &ndr_table_samr, api_samr_cmds, sizeof(api_samr_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_srvsvc.c b/librpc/gen_ndr/srv_srvsvc.c
index 465d9ca..501754d 100644
--- a/librpc/gen_ndr/srv_srvsvc.c
+++ b/librpc/gen_ndr/srv_srvsvc.c
@@ -4192,5 +4192,5 @@ void srvsvc_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_srvsvc_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "srvsvc", "srvsvc", &ndr_table_srvsvc.syntax_id, api_srvsvc_cmds, sizeof(api_srvsvc_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "srvsvc", "srvsvc", &ndr_table_srvsvc, api_srvsvc_cmds, sizeof(api_srvsvc_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_svcctl.c b/librpc/gen_ndr/srv_svcctl.c
index cffbb6a..645864b 100644
--- a/librpc/gen_ndr/srv_svcctl.c
+++ b/librpc/gen_ndr/srv_svcctl.c
@@ -3611,5 +3611,5 @@ void svcctl_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_svcctl_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "svcctl", "svcctl", &ndr_table_svcctl.syntax_id, api_svcctl_cmds, sizeof(api_svcctl_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "svcctl", "svcctl", &ndr_table_svcctl, api_svcctl_cmds, sizeof(api_svcctl_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_winreg.c b/librpc/gen_ndr/srv_winreg.c
index a973914..ebceee3 100644
--- a/librpc/gen_ndr/srv_winreg.c
+++ b/librpc/gen_ndr/srv_winreg.c
@@ -2768,5 +2768,5 @@ void winreg_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_winreg_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "winreg", "winreg", &ndr_table_winreg.syntax_id, api_winreg_cmds, sizeof(api_winreg_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "winreg", "winreg", &ndr_table_winreg, api_winreg_cmds, sizeof(api_winreg_cmds) / sizeof(struct api_struct));
 }
diff --git a/librpc/gen_ndr/srv_wkssvc.c b/librpc/gen_ndr/srv_wkssvc.c
index d74c8bc..015451b 100644
--- a/librpc/gen_ndr/srv_wkssvc.c
+++ b/librpc/gen_ndr/srv_wkssvc.c
@@ -2408,5 +2408,5 @@ void wkssvc_get_pipe_fns(struct api_struct **fns, int *n_fns)
 
 NTSTATUS rpc_wkssvc_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "wkssvc", "wkssvc", &ndr_table_wkssvc.syntax_id, api_wkssvc_cmds, sizeof(api_wkssvc_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "wkssvc", "wkssvc", &ndr_table_wkssvc, api_wkssvc_cmds, sizeof(api_wkssvc_cmds) / sizeof(struct api_struct));
 }
diff --git a/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm b/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
index eb3cdf2..05edda9 100644
--- a/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
+++ b/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
@@ -247,7 +247,7 @@ sub ParseInterface($)
 	pidl_hdr "NTSTATUS rpc_$if->{NAME}_init(void);";
 	pidl "NTSTATUS rpc_$if->{NAME}_init(void)";
 	pidl "{";
-	pidl "\treturn rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, \"$if->{NAME}\", \"$if->{NAME}\", \&ndr_table_$if->{NAME}.syntax_id, api_$if->{NAME}_cmds, sizeof(api_$if->{NAME}_cmds) / sizeof(struct api_struct));";
+	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/include/proto.h b/source3/include/proto.h
index e65369e..a379134 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -6194,6 +6194,10 @@ NTSTATUS rpc_pipe_register_commands(int version, const char *clnt,
 				    const char *srv,
 				    const struct ndr_syntax_id *interface,
 				    const struct api_struct *cmds, int size);
+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);
 bool is_known_pipename(const char *cli_filename);
 bool api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p);
 bool api_pipe_alter_context(pipes_struct *p, prs_struct *rpc_in_p);
diff --git a/source3/rpc_server/srv_eventlog.c b/source3/rpc_server/srv_eventlog.c
index 973be28..39e3115 100644
--- a/source3/rpc_server/srv_eventlog.c
+++ b/source3/rpc_server/srv_eventlog.c
@@ -106,8 +106,8 @@ struct api_struct api_eventlog_cmds[] =
 
 NTSTATUS rpc_eventlog2_init(void)
 {
-	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, 
-		"eventlog", "eventlog", &ndr_table_eventlog.syntax_id,
+	return rpc_srv_register(SMB_RPC_INTERFACE_VERSION,
+		"eventlog", "eventlog", &ndr_table_eventlog,
 		api_eventlog_cmds,
 		sizeof(api_eventlog_cmds)/sizeof(struct api_struct));
 }
diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c
index 03d9c5b..4f78d69 100644
--- a/source3/rpc_server/srv_pipe.c
+++ b/source3/rpc_server/srv_pipe.c
@@ -1002,10 +1002,9 @@ bool check_bind_req(struct pipes_struct *p, RPC_IFACE* abstract,
  Register commands to an RPC pipe
 *******************************************************************/
 
-NTSTATUS rpc_pipe_register_commands(int version, const char *clnt,
-				    const char *srv,
-				    const struct ndr_syntax_id *interface,
-				    const struct api_struct *cmds, int size)
+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)
 {
         struct rpc_table *rpc_entry;
 
@@ -1045,7 +1044,7 @@ NTSTATUS rpc_pipe_register_commands(int version, const char *clnt,
         ZERO_STRUCTP(rpc_entry);
         rpc_entry->pipe.clnt = SMB_STRDUP(clnt);
         rpc_entry->pipe.srv = SMB_STRDUP(srv);
-	rpc_entry->rpc_interface = *interface;
+	rpc_entry->rpc_interface = iface->syntax_id;
         rpc_entry->cmds = cmds;
         rpc_entry->n_cmds = size;
 
diff --git a/source3/rpc_server/srv_spoolss.c b/source3/rpc_server/srv_spoolss.c
index 22b3a76..d304502 100644
--- a/source3/rpc_server/srv_spoolss.c
+++ b/source3/rpc_server/srv_spoolss.c
@@ -1630,10 +1630,33 @@ void spoolss_get_pipe_fns( struct api_struct **fns, int *n_fns )
 	*n_fns = sizeof(api_spoolss_cmds) / sizeof(struct api_struct);
 }
 
+static const char * const spoolss_endpoint_strings[] = {
+	"ncacn_np:[\\pipe\\spoolss]",
+};
+
+static const struct ndr_interface_string_array spoolss_endpoints = {
+	.count = 1,
+	.names = spoolss_endpoint_strings
+};
+
+const struct ndr_interface_table ndr_table_spoolss = {
+	.name		= "spoolss",
+	.syntax_id	= {
+		{ 0x12345678, 0x1234, 0xabcd, { 0xef, 0x00 },
+		  { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab } }, 0x01
+	},
+	.helpstring	= "Spooler SubSystem",
+	.num_calls	= 0x60,
+	.calls		= NULL,	/* unused in s3 so far */
+	.endpoints	= &spoolss_endpoints,
+	.authservices	= NULL 	/* unused in s3 so far */
+};
+
 NTSTATUS rpc_spoolss_init(void)
 {
-  return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION,
-				    "spoolss", "spoolss", &syntax_spoolss,
-				    api_spoolss_cmds,
-				    sizeof(api_spoolss_cmds) / sizeof(struct api_struct));
+	return rpc_srv_register(
+		SMB_RPC_INTERFACE_VERSION, "spoolss", "spoolss",
+		&ndr_table_spoolss,
+		api_spoolss_cmds,
+		sizeof(api_spoolss_cmds) / sizeof(struct api_struct));
 }


-- 
Samba Shared Repository


More information about the samba-cvs mailing list