Age | Commit message (Collapse) | Author | Files | Lines |
|
- Work on server side and local COM support (should work, just no
example classes yet)
- Use vtables so that local and remote calls can be used transparently
- Generate 'proxies and stubs' rather then heavily modified code in client.pm and server.pm. proxies (client side code) are generated in proxy.pm, stubs (server side dispatchers) are generated in stubs.pm
- Support registering classes and interfaces
- DCOM interfaces no longer have to be in the same IDL file as their
base interface, which will allow us to split up dcom.idl
(This used to be commit 7466947a23985f9bb15209b67880f7b94dc515c8)
|
|
(This used to be commit 7484b9be7423ccd7e37432951700939e8a53d513)
|
|
(This used to be commit 709f279b192c8f9eeea04749169c00f2d57b20d3)
|
|
The torture test DCOM-SIMPLE now successfully does an
IStream_Read and a IStream_Write call.
This test can now be run successfully against the "Simple DCOM" Visual
Studio example.
(You have to quote out line 337 in pidl. pidl complains if the variable
that contains the array size follows the array. I still need to fix this
properly)
Next goals:
- Clean up code
- Server side support
- Support custom marshalling
- Support DCOM interfaces in files other then dcom.idl
(This used to be commit 8693344772a9b700533179f4bacfe27ec27dfcfe)
|
|
- OXID tables work now. IOXIDResolver is used if there is used for getting a STRINGBINDING if none is known yet
- Add custom dissectors for STRINGARRAY and DUALSTRINGARRAY. If there's a way to get rid of these later on (by supporting them thru pidl somehow), I'd be happy to use that instead of doing it manually.
I can now get to the point where we have created an object and are connected to
it. The only thing left to do is being able to set the Object UUID properly..
(This used to be commit 54e1e5edca50d3cd496c080715e84ec62cb2a10c)
|
|
use of contexts.
(This used to be commit 93eb3cd99c4fb065a69eabcead0c33804259c976)
|
|
Both subsystems and modules can now have init functions, which can be
specified in .mk files (INIT_FUNCTION = ...)
The build system will define :
- SUBSYSTEM_init_static_modules that calls the init functions of all statically compiled modules. Failing to load will generate an error which is not fatal
- BINARY_init_subsystems that calls the init functions (if defined) for the subsystems the binary depends on
This removes the hack with the "static bool Initialised = " and the
"lazy_init" functions
(This used to be commit 7a8244761bfdfdfb48f8264d76951ebdfbf7bd8a)
|
|
and then possibly does a epm_Map call().
ncacn_np now also uses dcerpc_epm_map_binding()
(This used to be commit 77eec3fa18dbbf4d774ccf04c7a38b0887f26ca6)
|
|
Thanks to tridge for some help on this one!
(This used to be commit 1104667190aa144e2c7d79ece9a55502b98d0351)
|
|
- Support for sending over the object UUID in DCERPC calls
- Simple torture test for the DCOM "Simple" object
- Generate extra argument for "object" interfaces in pidl
- Some stubs for common DCOM functions
(This used to be commit c052f2e1edd816206d8974af3140cec7ef97a70c)
|
|
- add support for strings where the length excludes the NULLTERM
metze
(This used to be commit 8251d8b3e5af351972aa41aed63f7a7d2640910e)
|
|
(This used to be commit 8e25117103b0339441bc6328176ed34034005528)
|
|
describes a COM class. A coclass is the implementation of one or more
interfaces. It has a UUID referred to as it's CLSID (Class ID).
Also adding an example coclass called "CoffeeMachine". You can give
it a string (or a cup, whatever you like ;-) and it will fill it with
"COFFEE" (kind of the like the echo pipe is for regular RPC). CoffeeMachine's
Windows implementation already works, a torture test for Samba will follow
soon.
(This used to be commit 05dd840b6ffba0d38d98e2e80d856e2f2b5d877c)
|
|
the DCOM calls are wrappers around several local calls, so you get things like:
WERROR foobar ( [in] int num_ifaces,
[in,size_is(num_ifaces)] IID *ifaces,
[out,size_is(num_ifaces)] WERROR *results);
(This used to be commit 0873bf2cbe3589988e518cf68ad4d14343b9240b)
|
|
(This used to be commit edbd789abb505accd3e72863d13acd2603d991f6)
|
|
The thing that finally convinced me that minimal includes was worth
pursuing for rpc was a compiler (tcc) that failed to build Samba due
to reaching internal limits of the size of include files. Also the
fact that includes.h.gch was 16MB, which really seems excessive. This
patch brings it back to 12M, which is still too large, but
better. Note that this patch speeds up compile times for both the pch
and non-pch case.
This change also includes the addition iof a "depends()" option in our
IDL files, allowing you to specify that one IDL file depends on
another. This capability was needed for the auto-includes generation.
(This used to be commit b8f5fa8ac8e8725f3d321004f0aedf4246fc6b49)
|
|
(This used to be commit 009488dfe55f5219b24c30222b1a8bf411a7e939)
|
|
(This used to be commit 12e037dbe3d497aff2415c0a22fab20a7932ab7a)
|
|
(This used to be commit deaa5159f41a8841d75801b441e7bd5cf2636870)
|
|
unmarshalling arrays.
(This used to be commit ee535b6801e553d0a180f18cc2c4b4438ee23de1)
|
|
uuid(1ff70682-0a51-30e8-076d-740be8cee98b) so we now accept
uuid("1ff70682-0a51-30e8-076d-740be8cee98b") in pidl, and
automagically add quotes only if needed
(This used to be commit 4aab2cb210eb9678bb72aebb33dcf6fd499206c1)
|
|
structures generate a single _empty_ element in the header
(This used to be commit 00ff1ca1d284bb698e98c773b18a29695e927605)
|
|
(This used to be commit f490cd719cc02589e73e26fa983aff90708d1926)
|
|
specifying a endpoint is now also 'endpoint' instead of 'endpoints'. The
default endpoint (if none is specified) is still "ncacn_np:[\\pipe\\ifacename]",
where ifacename is the name of the interface.
Examples:
[
uuid(60a15ec5-4de8-11d7-a637-005056a20182),
endpoint("ncacn_np:[\\pipe\\rpcecho]", "ncacn_ip_tcp:")
]
interface rpcecho
{
void dummy();
}
dcerpc_binding is now converted to ep_description in the server, but I hope to
completely eliminate ep_description later on.
The eventual goal of all these changes is to make it easier to add
transports as I'm going to add support for
ncalrpc (local RPC over named pipes) and ncacn_unix_stream (Unix sockets).
(This used to be commit f3da7c8b443a29b0c656c687a277384ae1353792)
|
|
spoolss. Doesn't quite work yet.
(This used to be commit 9045645ddf4eb8b5596d220ed936c8731641ef0a)
|
|
We can now unmarshall a single printer returned from an EnumPrinters.
(This used to be commit 89da7a9196d40699881f12c9a5fe62301aafd4cf)
|
|
idl. This allows us to pass a buffer of bytes returned from a spoolss
call and convert it to a Python dictionary. Works for enumprinters level
1!
(This used to be commit 4bc497a2994b12845a46b2d19f60bb81c9869fc9)
|
|
from inside a swig %exception block and into the argout typemap. This
will allow us to wrap functions that don't require exception handling, and
also get rid of some ugly code in dcerpc.i
(This used to be commit 558076cc8ddbdb563869f7d35150310217f30c31)
|
|
the [gensize] property to a struct or union will make pidl generate a
ndr_size_*() function.
(not all nasty bits of NDR are completely covered yet by the
ndr_size*() functions, support for those will be added when necessary)
I also have a local patch (not applied now) that simplifies the pidl output
and eliminates the number of functions required. It would, however, make
pidl more complex.
(This used to be commit 7c823f886afd0c4c6ee838f17882ca0658417011)
|
|
(This used to be commit 21ed51d47f7efd493ad64b564fb6362ef8fb067f)
|
|
(This used to be commit 24122eb93e39de8db3675618b6c227c95eb58d9c)
|
|
return WERROR values.
Clean up WERROR vs NTSTATUS handling a bit.
(This used to be commit e6756e3ee0af3e7e98f6deaf9dc83af9aac1b586)
|
|
(This used to be commit ab2a788fe75ddaf8ff493477f2006a03959e6ab5)
|
|
(This used to be commit cc00f9b6b87783d189df00de0ce9ae92b907e21a)
|
|
manner. I'm hoping to get rid of DATA_BLOB's but for the moment they
make it easy to get some spoolss action happening quickly.
(This used to be commit 15f8f73f8bfec099973fb8bf167020ae50346cf6)
|
|
(This used to be commit 6a47a079c003c2a139665ad2b5ede5d139049bd1)
|
|
(This used to be commit 8c9c94d578651c5884db0aa0feb6e16858274fbb)
|
|
warnings, making real errors impossible to spot.
this fixes the warnings, and probably fixes some pidl/python bugs as
well.
(This used to be commit 2f1e9954e3381b1864a6fd9fa8b2231478179d4d)
|
|
range checking of any integer value, to help protect against denial of
service attacks (which could otherwise cause large memory allocations)
(This used to be commit dbe6430d78f1b9aa59969074077e4afa5adf7570)
|
|
(This used to be commit 309623447eef9ae554e2f25713c2123ab578cc6e)
|
|
test cases up till now haven't come across them yet!
(This used to be commit 5fd3c12d4fe3e572618bcd71c5915f69539fe7e6)
|
|
(This used to be commit 35ff140b43b353a8848e417bb309046605e98085)
|
|
(This used to be commit b63a0ef0d41e6f0fdc6bf46435fb7b81925946da)
|
|
those with a single pointer.
(This used to be commit c4c748ce63fd2d87d4388a1eac9afa586867ce28)
|
|
- Several updates to the interface definitions after reading some more of the
specs
- Add Remote Activation interface
- Add body extension uuids
- Add oxidresolve torture test to list
- Make pidl complain about object interfaces that don't inherit from IUnknown
(This used to be commit 1bb471832830d73f0c7290e2ec12878518598379)
|
|
standard
doesn't allow them to! I think the idea is that you just create a new
interface that inherits your old interface, thus ensuring backwards-compatibility)
Re-enable to validator
(This used to be commit e364e46a88e5a222c94cdb9cf8e7a124e43f0bcf)
|
|
to be set. They can be if you want, but will be overwritten by the
pidl push code.
(This used to be commit 3170f6ed84e0514bf18d2a346f153bf0231b245b)
|
|
(This used to be commit a2ab6c5ef9cc6db27fc8c73e6117f0f7a116d563)
|
|
resume handles).
Remove some now unused debugging code.
(This used to be commit f250203a5f54c689c09ba780e9e3af7f8f2311bb)
|
|
returned:
- Only throw an exception if NT_STATUS_IS_ERR() instead of
!NT_STATUS_IS_OK().
- Add the NTSTATUS value to the returned dictionary under a key of
'result' so calling functions can access it.
(This used to be commit 4ddcae90a2e9b93e58bd57932cd9ae4c95be6ae8)
|