svn commit: samba r5490 - in branches/SAMBA_4_0/source: build/pidl build/smb_build include lib lib/com lib/com/classes lib/dcom lib/dcom/common librpc/idl librpc/ndr rpc_server rpc_server/dcom script torture torture/com

jelmer at samba.org jelmer at samba.org
Mon Feb 21 14:30:50 GMT 2005


Author: jelmer
Date: 2005-02-21 14:30:49 +0000 (Mon, 21 Feb 2005)
New Revision: 5490

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5490

Log:
The big (D)COM commit! :-) Contains most of the changes described in the 
DCOM paper in lorikeet. This is the result of 1.5 months work (mainly 
figuring out how things *really* work) at the end of 2004.

In general:
- Clearer distinction between COM and DCOM. DCOM is now merely 
  the glue between DCE/RPC+ORPC and COM. COM can also work without 
  DCOM now. This makes the code a lot clearer.
- Clearer distinction between NDR and DCOM. Before, NDR had a couple of 
  "if"s to cope with DCOM, which are now gone. 
- Use "real" arguments rather then structures for function arguments in 
  COM, mainly because most of these calls are local so packing/unpacking 
  data for every call is too much overhead (both speed- and code-wise)
- Support several mechanisms to load class objects:
  - from memory (e.g. part of the current executable, registered at start-up)
  - from shared object files
  - remotely
- Most things are now also named COM rather then DCOM because that's what it 
  really is. After an object is created, it no longer matters whether it 
  was created locally or remotely.

There is a very simple example class that contains 
both a class factory and a class that implements the IStream interface. 
It can be tested (locally only, remotely is broken at the moment) 
by running the COM-SIMPLE smbtorture test.

Still to-do:
 - Autogenerate parts of the class implementation code (using the coclass definitions in IDL)
 - Test server-side
 - Implement some of the common classes, add definitions for common interfaces.


Added:
   branches/SAMBA_4_0/source/build/pidl/com_header.pm
   branches/SAMBA_4_0/source/build/pidl/dcom_proxy.pm
   branches/SAMBA_4_0/source/build/pidl/dcom_stub.pm
   branches/SAMBA_4_0/source/build/pidl/ndr_header.pm
   branches/SAMBA_4_0/source/lib/com/
   branches/SAMBA_4_0/source/lib/com/classes/
   branches/SAMBA_4_0/source/lib/com/classes/simple.c
   branches/SAMBA_4_0/source/lib/com/com.h
   branches/SAMBA_4_0/source/lib/com/config.mk
   branches/SAMBA_4_0/source/lib/com/main.c
   branches/SAMBA_4_0/source/lib/com/rot.c
   branches/SAMBA_4_0/source/lib/com/tables.c
   branches/SAMBA_4_0/source/torture/com/
Removed:
   branches/SAMBA_4_0/source/build/pidl/header.pm
   branches/SAMBA_4_0/source/build/pidl/proxy.pm
   branches/SAMBA_4_0/source/build/pidl/stub.pm
   branches/SAMBA_4_0/source/lib/dcom/classes/
   branches/SAMBA_4_0/source/lib/dcom/common/rot.c
   branches/SAMBA_4_0/source/lib/dcom/common/tables.c
   branches/SAMBA_4_0/source/lib/dcom/local/
   branches/SAMBA_4_0/source/lib/dcom/remote/
   branches/SAMBA_4_0/source/torture/dcom/
Modified:
   branches/SAMBA_4_0/source/build/pidl/README
   branches/SAMBA_4_0/source/build/pidl/pidl.pl
   branches/SAMBA_4_0/source/build/smb_build/main.pm
   branches/SAMBA_4_0/source/include/includes.h
   branches/SAMBA_4_0/source/lib/dcom/common/dcom.h
   branches/SAMBA_4_0/source/lib/dcom/common/main.c
   branches/SAMBA_4_0/source/lib/dcom/config.mk
   branches/SAMBA_4_0/source/librpc/idl/dcom.idl
   branches/SAMBA_4_0/source/librpc/idl/rot.idl
   branches/SAMBA_4_0/source/librpc/ndr/ndr_orpc.c
   branches/SAMBA_4_0/source/rpc_server/config.mk
   branches/SAMBA_4_0/source/rpc_server/dcom/rodb.c
   branches/SAMBA_4_0/source/script/build_idl.sh
   branches/SAMBA_4_0/source/torture/com/simple.c
   branches/SAMBA_4_0/source/torture/config.mk
   branches/SAMBA_4_0/source/torture/torture.c


Changeset:
Sorry, the patch is too large (3563 lines) to include; please use WebSVN to see it!
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5490


More information about the samba-cvs mailing list