diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-01-09 21:35:37 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:08:35 -0500 |
commit | 1b1b678cc8c79dacc3b80de4f8203154d47c0345 (patch) | |
tree | 91a0bea56f16740a41ff64ba95914c4c06f89b11 /source4/lib/dcom/classes | |
parent | 1303f51099c2054c3966c6ba34490c5ffad85c13 (diff) | |
download | samba-1b1b678cc8c79dacc3b80de4f8203154d47c0345.tar.gz samba-1b1b678cc8c79dacc3b80de4f8203154d47c0345.tar.bz2 samba-1b1b678cc8c79dacc3b80de4f8203154d47c0345.zip |
r4624: Several crash fixes for DCOM
More work on the example class implementation
(This used to be commit 1f8f4dd179d5aa0472c676d115dc2fc1749ce32d)
Diffstat (limited to 'source4/lib/dcom/classes')
-rw-r--r-- | source4/lib/dcom/classes/simple.c | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/source4/lib/dcom/classes/simple.c b/source4/lib/dcom/classes/simple.c index 90dda6bc84..e5b5bf3f41 100644 --- a/source4/lib/dcom/classes/simple.c +++ b/source4/lib/dcom/classes/simple.c @@ -21,7 +21,25 @@ #include "includes.h" #include "lib/dcom/common/dcom.h" -static struct dcom_IClassFactory_vtable simple_classobject; +NTSTATUS simple_QueryInterface (struct dcom_interface_p *d, TALLOC_CTX *mem_ctx, struct QueryInterface *r) +{ + return NT_STATUS_NOT_SUPPORTED; +} + +static NTSTATUS simple_CreateInstance (struct dcom_interface_p *d, TALLOC_CTX *mem_ctx, struct CreateInstance *r) +{ + return NT_STATUS_NOT_SUPPORTED; +} + +/* Everything below this line should be autogenerated later on */ + +static struct dcom_IClassFactory_vtable simple_classobject = { + { simple_QueryInterface, NULL, NULL }, + simple_CreateInstance, + NULL, + NULL, + NULL +}; NTSTATUS dcom_simple_init(void) { @@ -32,10 +50,17 @@ NTSTATUS dcom_simple_init(void) GUID_from_string(DCERPC_IUNKNOWN_UUID, &iid); - simple_class.class_object = dcom_new_local_ifacep(talloc_autofree_context(), - dcom_interface_by_iid(&iid), + simple_class.class_object = dcom_new_local_ifacep( + talloc_autofree_context(), + &iid, &simple_classobject, NULL); + if (!simple_class.class_object) { + DEBUG(1, ("Unable to create class object for simple class\n")); + return NT_STATUS_FOOBAR; + } + GUID_from_string("5e9ddec7-5767-11cf-beab-00aa006c3606", &simple_class.clsid); + return dcom_register_class(&simple_class); } |