summaryrefslogtreecommitdiff
path: root/source4/build/pidl
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r4480: autofree the dcom proxy tablesAndrew Tridgell1-1/+1
(This used to be commit 973acf7bbdb7bd71f052aca15d0189f2e2069fd4)
2007-10-10r4469: Version n + 1 of the pidl ethereal parser generator. This version isTim Potter2-67/+335
based on the idea of manipulating the .c and .h files generated by parser.pm with perl regexps and glueing it all together to make an ethereal plugin. I thought this was a pretty crazy idea to start off with but it has turned out to be not as complicated as I thought and has the huge advantage of not duplicating any of the difficult code in parser.pm. (This used to be commit 7007522f83740f41f9a47f5ad5942ea46320d405)
2007-10-10r4468: Don't be a slacker and leave out parameter names when generatingTim Potter1-12/+12
prototypes for ndr push/pull/print functions. (This used to be commit 1fe95ad1720f48a353ec77178e303b437bb13fed)
2007-10-10r4288: don't use struct dcerpc_interface_table anymore in theStefan Metzmacher2-55/+158
main rpc server code. let the backends specify a ndr_push/ndr_pull function like we already do with the dispatch() function. this allows an interface implmentation to work as real proxy without needing to know the idl for an interface that means just the plain decrypted payload can be forwarded If someone want to write such a backend, patches are wellcome metze (This used to be commit a150bdf140d9165a05cbc7cac40b6e3c03a7bd3c)
2007-10-10r4170: don't check array size for conformant arrays (they are checked ↵Andrew Tridgell1-1/+2
separately) (This used to be commit e399834ae1aa9731d5d29c04d5b7b90e356dad6f)
2007-10-10r4139: 2nd attempt at fixing the null ptr in size_is() problem.Andrew Tridgell1-2/+6
(This used to be commit 3040cd65151dbcc54404f9be9d1fbcf539c7b635)
2007-10-10r4136: when we have a size or switch variable that is a pointer we need to ↵Andrew Tridgell1-1/+25
check that the server hasn't given us a null pointer, otherwise we can segv when we dereference it. For example: [size_is(*size)] *x; uint32 *size; if a broken server gave us x != NULL and size == NULL then we would crash. I've added a check_null_pointer() call in pidl to catch this. (This used to be commit 8cbd3f47a95367e861c6b99c44416a9ccef3c9ca)
2007-10-10r4112: when a pointer is NULL on the wire ensure it is null in the structureAndrew Tridgell1-0/+1
(This used to be commit 83221a0da07bf7c45757e737782f2f4ee541ad88)
2007-10-10r4110: fixed pidl to allow arrays to have size_is() and length_is() elementsAndrew Tridgell1-30/+42
that depend on variables that come after the array in the structure or function. This has been something that has been problematic for a while, but the winreg QueryValue problem finally prompted me to fix it properly. We should now go back and fix up all the ugly workarounds we have used to avoid this problem in other calls. Unfortunately the solution is fairly complex, and involves the use of the internal ndr token lists (similar to the solution for relative pointers). I wonder if anyone else will be able to follow the logic if I get run over by a bus :-) (This used to be commit e839b19ec5581f669f2a7705b1fb80845313251c)
2007-10-10r4086: - make dcerpc_ndr_request_table_send() the default and rename it to justStefan Metzmacher2-2/+2
dcerpc_ndr_request_send() - this allows us to call dcerpc_log_packet() when we receive a packet we can't parse correctly metze (This used to be commit a7a6cea112a180a28188997ca99f30d8dd286bb8)
2007-10-10r4085: print out dcerpc_fault's as namesStefan Metzmacher1-1/+1
metze (This used to be commit 979c453c4dedf0006997dfc9994331e49643b741)
2007-10-10r4076: fix compiler warningStefan Metzmacher1-1/+3
metze (This used to be commit 2647b47557c880dd5f24a4cd15475badfd7fdc94)
2007-10-10r3998: allow const arrays (see next commit to drsuapi.idl)Stefan Metzmacher3-469/+626
metze (This used to be commit 7264a2227d7a1881db01964d0d713c144eb77152)
2007-10-10r3956: start to decode the repsFrom and repsTo fileds but not readyStefan Metzmacher1-0/+1
metze (This used to be commit 44f168c44de908fdf38b39aae8bf10e80206410a)
2007-10-10r3898: Work towards local/server DCOM support, start workingJelmer Vernooij1-1/+1
on Simple example server side implementation (This used to be commit 98afb504d95ccca4d6ec48273e10b52ccfa26ad0)
2007-10-10r3896: Correct header files in rpc server templates plusJelmer Vernooij1-1/+4
some other minor fixes (This used to be commit 9fca748fe3c12af83a006f1d0821aa560d08fc95)
2007-10-10r3881: Split up the LIBNDR_GEN subsystem into NDR_* and RPC_NDR_* subsystems.Jelmer Vernooij2-11/+28
This reduces the total size of the samba binaries from 119 Mb to 73 Mb. Next step will be to have the build system obtain some of this information by itself, so that we don't have to write ~10 lines per interface manually. (This used to be commit 16d905f6b0cbec591eebc44ee2ac9516a5730378)
2007-10-10r3869: in the NDR encoded replPropertyMetaData attribute in ADSStefan Metzmacher1-1/+1
I see a new 64 bit time field which are seconds since 1601, this will be mapped to NTTIME by th eparsing code +#define NTTIME_1sec NTTIME metze (This used to be commit db35f3b0f99943311ff8b797e8336616dab28220)
2007-10-10r3861: - Put ndr and rpc client code in seperate filesJelmer Vernooij5-30/+68
- Add some const (This used to be commit a00bda88e1b6abdc36e5aa8c2a35f64855f67c96)
2007-10-10r3790: use a registration function that is called from dcerpc_*_init functionsJelmer Vernooij3-116/+45
rather then a large table in librpc/gen_ndr/tables.c. This will allow us to only link in only the required gen_ndr files (speeds up linking quite a bit, makes binaries smaller). Each gen_ndr_* file now has a init function that calls the init functions of the interfaces it contains. I did it this way to keep pidl's code simple, though it might hurt startup time a bit. I'd be happy to change it if people like one function better. (This used to be commit 3c436590ae95b58ad6d00e72d6fdd08a4d80f208)
2007-10-10r3737: - Get rid of the register_subsystem() and register_backend() functions.Jelmer Vernooij2-2/+2
- Re-disable tdbtool (it was building fine on my Debian box but other machines were having problems) (This used to be commit 0d7bb2c40b7a9ed59df3f8944133ea562697e814)
2007-10-10r3689: Large number of COM updates:Jelmer Vernooij8-93/+455
- 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)
2007-10-10r3667: Small COM fixesJelmer Vernooij3-7/+14
(This used to be commit 7484b9be7423ccd7e37432951700939e8a53d513)
2007-10-10r3626: More minor DCOM fixesJelmer Vernooij2-6/+2
(This used to be commit 709f279b192c8f9eeea04749169c00f2d57b20d3)
2007-10-10r3611: DCOM client support works!!Jelmer Vernooij4-0/+9
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)
2007-10-10r3606: More DCOM fixes:Jelmer Vernooij2-5/+4
- 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)
2007-10-10r3601: Lots of smaller DCOM updates and fixes. Adds oxid tables, properJelmer Vernooij2-19/+49
use of contexts. (This used to be commit 93eb3cd99c4fb065a69eabcead0c33804259c976)
2007-10-10r3586: Fix some of the issues with the module init functions.Jelmer Vernooij2-2/+2
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)
2007-10-10r3516: dcerpc_epm_map_binding now checks the endpoints it nows firstJelmer Vernooij1-1/+0
and then possibly does a epm_Map call(). ncacn_np now also uses dcerpc_epm_map_binding() (This used to be commit 77eec3fa18dbbf4d774ccf04c7a38b0887f26ca6)
2007-10-10r3515: Fix RemoteActivation correctly this time (-:Jelmer Vernooij1-0/+1
Thanks to tridge for some help on this one! (This used to be commit 1104667190aa144e2c7d79ece9a55502b98d0351)
2007-10-10r3513: Add (the infrastructure for) DCOM support. Contents:Jelmer Vernooij5-7/+32
- 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)
2007-10-10r3484: - add support for conformant string arrays at the end of a structStefan Metzmacher2-2/+32
- add support for strings where the length excludes the NULLTERM metze (This used to be commit 8251d8b3e5af351972aa41aed63f7a7d2640910e)
2007-10-10r3442: Add support for the "call_as" and "local" attributes.Jelmer Vernooij4-664/+749
(This used to be commit 8e25117103b0339441bc6328176ed34034005528)
2007-10-10r3440: Add support for "coclass" to the pidl parser - the idl keyword thatJelmer Vernooij1-4/+17
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)
2007-10-10r3432: Support WERROR's in arguments (not just as return type). Some ofJelmer Vernooij1-1/+1
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)
2007-10-10r3431: Allow optional semicolon after interface definitionsJelmer Vernooij2-128/+151
(This used to be commit edbd789abb505accd3e72863d13acd2603d991f6)
2007-10-10r3428: switched to using minimal includes for the auto-generated RPC code.Andrew Tridgell3-5/+33
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)
2007-10-10r3423: auto-generate prototypes for all external functions in pidlAndrew Tridgell3-79/+147
(This used to be commit 009488dfe55f5219b24c30222b1a8bf411a7e939)
2007-10-10r3410: Handle conversion of DATA_BLOBs and pointers to DATA_BLOBs from python.Tim Potter1-1/+5
(This used to be commit 12e037dbe3d497aff2415c0a22fab20a7932ab7a)
2007-10-10r3406: Don't throw a werror exception for WERR_NO_MORE_ITEMS and WERR_MORE_DATA.Tim Potter1-1/+3
(This used to be commit deaa5159f41a8841d75801b441e7bd5cf2636870)
2007-10-10r3303: Call pull function for correct type instead of spoolss_PrinterInfo whenTim Potter1-1/+1
unmarshalling arrays. (This used to be commit ee535b6801e553d0a180f18cc2c4b4438ee23de1)
2007-10-10r3282: some C pre-processors don't like expressions likeAndrew Tridgell3-2/+14
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)
2007-10-10r3281: some compilers can't handle empty structures, so for empty IDLAndrew Tridgell1-0/+6
structures generate a single _empty_ element in the header (This used to be commit 00ff1ca1d284bb698e98c773b18a29695e927605)
2007-10-10r3204: Got unpacking of an array of PrinterInfo union elements working. Phew.Tim Potter1-53/+44
(This used to be commit f490cd719cc02589e73e26fa983aff90708d1926)
2007-10-10r3043: Use binding strings for specifying endpoints. The property forJelmer Vernooij1-9/+7
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)
2007-10-10r3022: Work on unmarshalling arrays of structs in a buffer (Python string) forTim Potter1-6/+32
spoolss. Doesn't quite work yet. (This used to be commit 9045645ddf4eb8b5596d220ed936c8731641ef0a)
2007-10-10r3009: Fix up unmarshall functions to return Python dict instead of a NTSTATUS.Tim Potter1-18/+7
We can now unmarshall a single printer returned from an EnumPrinters. (This used to be commit 89da7a9196d40699881f12c9a5fe62301aafd4cf)
2007-10-10r3001: Expose unmarshalling functions for structures marked "public" in theTim Potter1-10/+33
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)
2007-10-10r2994: More cleanups. Move the generation of NTSTATUS and WERROR exceptionsTim Potter1-2/+19
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)
2007-10-10r2990: Add support to pidl for autogenerating ndr_size_*() functions. AddingJelmer Vernooij1-1/+129
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)