Rev 11211: Add mgmt interface to each endpoint. in
file:///home/jelmer/bzr.samba/4.0-mgmt/
Jelmer Vernooij
jelmer at samba.org
Tue Jan 16 12:54:31 GMT 2007
------------------------------------------------------------
revno: 11211
revision-id: jelmer at samba.org-20070116125247-4edqesi7i19sqhhn
parent: jelmer at samba.org-20070116112841-55jk0tfh9ua8cvt0
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 4.0-mgmt
timestamp: Tue 2007-01-16 13:52:47 +0100
message:
Add mgmt interface to each endpoint.
Start running mgmt tests.
Fix is_server_listening() call.
renamed:
source/rpc_server/mgmt/dcesrv_mgmt.c => source/rpc_server/dcesrv_mgmt.c svn-v2:20785 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2frpc_server%2fmgmt%2fdcesrv_mgmt.c
modified:
source/librpc/idl/mgmt.idl svn-v2:6 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2flibrpc%2fidl%2fmgmt.idl
source/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm svn-v2:12463 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2fpidl%2flib%2fParse%2fPidl%2fSamba4%2fNDR%2fServer.pm
source/rpc_server/config.mk svn-v2:846 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2frpc_server%2fconfig.mk
source/rpc_server/dcerpc_server.c svn-v2:6 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2frpc_server%2fdcerpc_server.c
source/script/tests/test_rpc.sh svn-v2:3393 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2fscript%2ftests%2ftest_rpc.sh
source/torture/rpc/mgmt.c svn-v2:6 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2ftorture%2frpc%2fmgmt.c
source/rpc_server/dcesrv_mgmt.c svn-v2:20785 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2frpc_server%2fmgmt%2fdcesrv_mgmt.c
=== renamed file 'source/rpc_server/mgmt/dcesrv_mgmt.c' => 'source/rpc_server/dcesrv_mgmt.c'
--- a/source/rpc_server/mgmt/dcesrv_mgmt.c 2007-01-15 00:42:16 +0000
+++ b/source/rpc_server/dcesrv_mgmt.c 2007-01-16 12:52:47 +0000
@@ -51,8 +51,8 @@
static uint32_t mgmt_is_server_listening(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct mgmt_is_server_listening *r)
{
- *r->out.status = 1;
- return 0;
+ *r->out.status = 0;
+ return 1;
}
=== modified file 'source/librpc/idl/mgmt.idl'
--- a/source/librpc/idl/mgmt.idl 2007-01-14 22:28:29 +0000
+++ b/source/librpc/idl/mgmt.idl 2007-01-16 12:52:47 +0000
@@ -6,7 +6,6 @@
uuid("afa8bd80-7d8a-11c9-bef4-08002b102989"),
version(1.0),
pointer_default(unique),
- endpoint("ncalrpc:[EPMAPPER]", "ncacn_ip_tcp:[135]", "ncacn_np:[\\pipe\\epmapper]"),
helpstring("DCE/RPC Remote Management")
]
interface mgmt
=== modified file 'source/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm'
--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm 2006-08-28 17:12:12 +0000
+++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm 2007-01-16 12:52:47 +0000
@@ -186,7 +186,7 @@
return NT_STATUS_OK;
}
-static const struct dcesrv_interface $name\_interface = {
+const struct dcesrv_interface dcesrv\_$name\_interface = {
.name = \"$name\",
.syntax_id = {".print_uuid($uuid).",$if_version},
.bind = $name\__op_bind,
@@ -217,7 +217,7 @@
NTSTATUS ret;
const char *name = dcerpc_table_$name.endpoints->names[i];
- ret = dcesrv_interface_register(dce_ctx, name, &$name\_interface, NULL);
+ ret = dcesrv_interface_register(dce_ctx, name, &dcesrv_$name\_interface, NULL);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(1,(\"$name\_op_init_server: failed to register endpoint \'%s\'\\n\",name));
return ret;
@@ -229,9 +229,9 @@
static BOOL $name\__op_interface_by_uuid(struct dcesrv_interface *iface, const struct GUID *uuid, uint32_t if_version)
{
- if ($name\_interface.syntax_id.if_version == if_version &&
- GUID_equal(\&$name\_interface.syntax_id.uuid, uuid)) {
- memcpy(iface,&$name\_interface, sizeof(*iface));
+ if (dcesrv_$name\_interface.syntax_id.if_version == if_version &&
+ GUID_equal(\&dcesrv\_$name\_interface.syntax_id.uuid, uuid)) {
+ memcpy(iface,&dcesrv\_$name\_interface, sizeof(*iface));
return True;
}
@@ -240,8 +240,8 @@
static BOOL $name\__op_interface_by_name(struct dcesrv_interface *iface, const char *name)
{
- if (strcmp($name\_interface.name, name)==0) {
- memcpy(iface,&$name\_interface, sizeof(*iface));
+ if (strcmp(dcesrv_$name\_interface.name, name)==0) {
+ memcpy(iface, &dcesrv_$name\_interface, sizeof(*iface));
return True;
}
=== modified file 'source/rpc_server/config.mk'
--- a/source/rpc_server/config.mk 2007-01-15 02:23:40 +0000
+++ b/source/rpc_server/config.mk 2007-01-16 12:52:47 +0000
@@ -35,17 +35,6 @@
################################################
################################################
-# Start MODULE dcerpc_mgmt
-[MODULE::dcerpc_mgmt]
-INIT_FUNCTION = dcerpc_server_mgmt_init
-SUBSYSTEM = dcerpc_server
-OBJ_FILES = \
- mgmt/dcesrv_mgmt.o
-PUBLIC_DEPENDENCIES = NDR_MGMT
-# End MODULE dcerpc_mgmt
-################################################
-
-################################################
# Start MODULE dcerpc_remote
[MODULE::dcerpc_remote]
INIT_FUNCTION = dcerpc_server_remote_init
@@ -197,6 +186,7 @@
dcerpc_server.o \
dcerpc_sock.o \
dcesrv_auth.o \
+ dcesrv_mgmt.o \
handles.o
PUBLIC_DEPENDENCIES = \
LIBCLI_AUTH \
=== modified file 'source/rpc_server/dcerpc_server.c'
--- a/source/rpc_server/dcerpc_server.c 2007-01-10 10:52:09 +0000
+++ b/source/rpc_server/dcerpc_server.c 2007-01-16 12:52:47 +0000
@@ -35,6 +35,8 @@
#include "libcli/security/security.h"
#include "build.h"
+extern const struct dcesrv_interface dcesrv_mgmt_interface;
+
/*
see if two endpoints match
*/
@@ -178,6 +180,17 @@
ZERO_STRUCTP(ep);
ep->ep_description = talloc_reference(ep, binding);
add_ep = True;
+
+ /* add mgmt interface */
+ ifl = talloc(dce_ctx, struct dcesrv_if_list);
+ if (!ifl) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ memcpy(&(ifl->iface), &dcesrv_mgmt_interface,
+ sizeof(struct dcesrv_interface));
+
+ DLIST_ADD(ep->interface_list, ifl);
}
/* see if the interface is already registered on te endpoint */
=== modified file 'source/script/tests/test_rpc.sh'
--- a/source/script/tests/test_rpc.sh 2006-09-11 16:05:27 +0000
+++ b/source/script/tests/test_rpc.sh 2007-01-16 12:52:47 +0000
@@ -2,9 +2,9 @@
# add tests to this list as they start passing, so we test
# that they stay passing
-ncacn_np_tests="RPC-SPOOLSS RPC-SRVSVC RPC-UNIXINFO RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON"
-ncalrpc_tests="RPC-UNIXINFO RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON"
-ncacn_ip_tcp_tests="RPC-UNIXINFO RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON"
+ncacn_np_tests="RPC-SPOOLSS RPC-SRVSVC RPC-UNIXINFO RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-MGMT"
+ncalrpc_tests="RPC-MGMT RPC-UNIXINFO RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON"
+ncacn_ip_tcp_tests="RPC-UNIXINFO RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-MGMT"
slow_ncacn_np_tests="RPC-SAMLOGON RPC-SAMR RPC-SAMR-USERS RPC-SAMR-PASSWORDS"
slow_ncalrpc_tests="RPC-SAMLOGON RPC-SAMR RPC-SAMR-USERS RPC-SAMR-PASSWORDS"
slow_ncacn_ip_tcp_tests="RPC-SAMLOGON RPC-SAMR RPC-SAMR-USERS RPC-SAMR-PASSWORDS"
=== modified file 'source/torture/rpc/mgmt.c'
--- a/source/torture/rpc/mgmt.c 2007-01-14 22:28:29 +0000
+++ b/source/torture/rpc/mgmt.c 2007-01-16 12:52:47 +0000
@@ -135,6 +135,7 @@
{
NTSTATUS status;
struct mgmt_is_server_listening r;
+ r.out.status = talloc(mem_ctx, uint32_t);
status = dcerpc_mgmt_is_server_listening(p, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
@@ -230,7 +231,7 @@
ret = False;
continue;
}
-
+
if (!test_is_server_listening(p, loop_ctx)) {
ret = False;
}
More information about the samba-cvs
mailing list