summaryrefslogtreecommitdiff
path: root/source4/build/pidl/parser.pm
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r3861: - Put ndr and rpc client code in seperate filesJelmer Vernooij1-17/+2
- Add some const (This used to be commit a00bda88e1b6abdc36e5aa8c2a35f64855f67c96)
2007-10-10r3790: use a registration function that is called from dcerpc_*_init functionsJelmer Vernooij1-4/+44
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-10r3689: Large number of COM updates:Jelmer Vernooij1-2/+7
- 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-10r3626: More minor DCOM fixesJelmer Vernooij1-4/+0
(This used to be commit 709f279b192c8f9eeea04749169c00f2d57b20d3)
2007-10-10r3606: More DCOM fixes:Jelmer Vernooij1-4/+1
- 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-10r3513: Add (the infrastructure for) DCOM support. Contents:Jelmer Vernooij1-1/+11
- 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 Metzmacher1-2/+14
- add support for strings where the length excludes the NULLTERM metze (This used to be commit 8251d8b3e5af351972aa41aed63f7a7d2640910e)
2007-10-10r3428: switched to using minimal includes for the auto-generated RPC code.Andrew Tridgell1-1/+8
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 Tridgell1-77/+5
(This used to be commit 009488dfe55f5219b24c30222b1a8bf411a7e939)
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-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)
2007-10-10r2988: this should fix support for negative switch levels in PIDLAndrew Tridgell1-3/+3
(This used to be commit 21ed51d47f7efd493ad64b564fb6362ef8fb067f)
2007-10-10r2968: fixed the byte order problem with the new RHS parsing on ncacn_ip_tcpAndrew Tridgell1-1/+1
(This used to be commit cc00f9b6b87783d189df00de0ce9ae92b907e21a)
2007-10-10r2948: added support for the [range(low,high)] attribute in pidl. This allowsAndrew Tridgell1-0/+5
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)
2007-10-10r2933: Only pull a union once when it occurs in a subcontextJelmer Vernooij1-2/+6
(This used to be commit 309623447eef9ae554e2f25713c2123ab578cc6e)
2007-10-10r1786: Add support for the 'helpstring' attribute on interfacesJelmer Vernooij1-0/+1
(This used to be commit 85fb26a05d57e58795b0c0ffa93dc9e0fa902431)
2007-10-10r1757: much simpler (and smaller, faster etc) way of doing relative pointersAndrew Tridgell1-8/+5
in pidl. This mechanism should be much easier to extend to the "retrospective subcontexts" that jelmer needs. also produced more standards complient full-pointer offsets. This keeps ethereal happy with decoding our epmapper frames. (This used to be commit ecb7378bbcd86727aedfa04a9e302e06b0a2ccd9)
2007-10-10r1736: - Pidl updates:Jelmer Vernooij1-23/+5
- Support for "object oriented" interfaces in pidl - Support for inherited interfaces in pidl - Simplification of the support for properties on an interface - Start on dcom rpc torture tests (This used to be commit 45c3d0036b8510102816f9cdff9210098259cc5f)
2007-10-10r1671: make [relative] pointers in idl much more generic, treating them justAndrew Tridgell1-14/+22
like normal pointers in most cases. This means we can now support relative pointers to unions, builtin types etc, whereas we could only previously support relative pointers to structures. metze needs this for the PAC decoding. (This used to be commit 0d063725e12f51375b7d0be55a19072a9a54e7e6)
2007-10-10r1611: Put a brace on a new line.Tim Potter1-1/+2
(This used to be commit d9b4e45f46cd738b196f8d167cea264b3ce0d364)
2007-10-10r1148: fixed a minor formatting error in generated codeAndrew Tridgell1-1/+1
(This used to be commit 0a67b9c324fb4fd74de0f3c12e55de6972b88cdd)
2007-10-10r1133: - add ndr_pull_ptr() as a separate call instead of ndr_pull_uint32()Andrew Tridgell1-3/+3
(useful for debugging IDL) - fixed a couple of places that auto-generate incorrect printf style arguments for ndr_pull_error() (This used to be commit ad3324a79ce030df4c5ed46408e662b46588f89f)
2007-10-10r1014: change the handling of r->out to auto-zero the structure, and auto-copyAndrew Tridgell1-7/+47
in,out,ref vars (This used to be commit dffe9165164a111313d744d942645ad2df83d5f3)
2007-10-10r894: use _t in generated pidl codeAndrew Tridgell1-10/+10
(This used to be commit 20cc981e3338200aea6e005ed69dbe5b5b102bbb)
2004-01-22added a little bit of const magic to get rid of the data in librpc/gen_ndr/*.oAndrew Tridgell1-1/+1
(This used to be commit 866ef2edab91996964c8b43dbdd417f5908a00e1)
2003-12-15make pidl no longer dependent on Data::Dumper, which isn't installedAndrew Tridgell1-1/+0
on some systems (This used to be commit a4aa9168c0f80cf6e758c380d41335db50d06869)
2003-12-15fixed the handling of zero-length top level arrays in pidlAndrew Tridgell1-3/+5
(This used to be commit fa45529af72090c2604708a651d5e5714a844d72)
2003-12-14fix _ptr_ declarationAndrew Tridgell1-2/+2
(This used to be commit 5fed4681edc93405a8b39080adfe72af8beea65d)
2003-12-12handle the auto-allocation of [ref] output arrays in pidl. ThisAndrew Tridgell1-3/+9
can simplify rpc servers a lot. (This used to be commit 28fa62d63d020052a0d2f467f3f9cc6344aaf0ce)
2003-12-12 * the RPC-ECHO pipe now works in smbd, as long as the data sizesAndrew Tridgell1-0/+5
don't cause fragmented pdus (I'll add fragments shortly) * change data_blob_talloc() to not zero memory when the 2nd argument is NULL. The zeroing just masks bugs, and can't even allow a DOS attack * modified pidl to ensure that [ref] arguments to the out side of functions are allocated when parsing the in side. This allows rpc backends to assume that [ref] variables are all setup. Doesn't work correctly for [ref] arrays yet * changed DLIST_ADD_END() to take the type instead of a tmp variable. This means you don't need to declare a silly tmp variable in the caller (This used to be commit 46e0a358198eeb9af1907ee2a29025d3ab23b6d1)
2003-12-10more portable array of endpoints code from pidlAndrew Tridgell1-4/+7
(This used to be commit c598590a117d4281c530cded4bf9dae16ac1ee76)
2003-12-02netr_DatabaseSync() now works fully for databases 0, 1 and 2Andrew Tridgell1-1/+1
(This used to be commit c4c09e9413d3886e030e98739121bbae81f80ca5)
2003-12-02 * netr_ServerPasswordSet() now works - the test suite changes theAndrew Tridgell1-1/+11
machine account password. * neater handling on value() options in IDL. The auto-print code will now display the right value so you don't need to initialise it in your C code (This used to be commit 3dd978b12bb5571fba4e1839c0f7ee60cf729aa2)
2003-12-01added netr_LogonSamLogon() and test codeAndrew Tridgell1-1/+1
(This used to be commit 4fa3ad3ecbfd8f8663fcdfaba9a7db481e303f2b)
2003-12-01added netr_ServerReqChallenge and cleaned up byte array printingAndrew Tridgell1-1/+11
(This used to be commit bb42107dccf3a384a4a5c029b4d2752e0898d7cb)
2003-11-28 * added a bunch of placeholder IDL filesAndrew Tridgell1-1/+43
* allow for an interface to list its endpoints in the IDL file, so we can automatically make the server listen on the right pipes, and can scan pipes more easily (I don't take advantage of this yet, just putting the infrastructure in place) (This used to be commit c8b8480244b4ab6204403dc65e92e4317b410a84)
2003-11-28 * support multiple interfaces in one IDL file in pidlAndrew Tridgell1-13/+27
* make far more generated functions static * get rid of gen_rpc, and include the client calls in ndr_*.c * added placeholder IDL for a number of intefaces (dcom, wzcsvc, browser etc) (This used to be commit a2bdf0be0119023df3c2b9ea515ed355020f2625)
2003-11-27added an rpc scanner. This prints messages like this:Andrew Tridgell1-2/+6
uuid 82273fdc-e32a-18c3-3f78-827929dc23ea version 0x0000:0x0000 'eventlog' 24 calls available WARNING: local IDL defines 4 calls when all the WARNINGs are gone then we know we have all the calls :) (This used to be commit f5821b2468a0c46d0e5590de59562926d746c349)
2003-11-24 * prepared the dcerpc subsystem for adding the RPC over TCP transportAndrew Tridgell1-3/+3
* fixed a uninitialised variable bug in pidl (found by valgrind) (This used to be commit 8bce61b8af6351c72c0dd84dc61b49d8aeb1fbbd)
2003-11-24make sure we don't try to update a constantAndrew Tridgell1-2/+8
(This used to be commit 4a6034f2e37d1050364fc167f1b71b5c806dfdc9)
2003-11-24added tests for the remaining calls on the rpc management interfaceAndrew Tridgell1-15/+33
(This used to be commit 00f9b0e12061c175334f96805ca8333f28f74d91)
2003-11-23added a tool called 'ndrdump' that allows you to dump NDR dataAndrew Tridgell1-2/+40
according to the current IDL taking the data from a file. In combination with a little hack to ethereal to extract data this is a quite powerful IDL development tool. (This used to be commit 229a325c3cf0d4dc1e910ed32e1d7391040aeba1)
2003-11-23fixed the handling of value() attributes on scalars in IDL thatAndrew Tridgell1-9/+5
reference other elements of the same structure (This used to be commit d8d17be290730670bad0fea91188d394160cb879)
2003-11-23ooh, this is fun!Andrew Tridgell1-1/+5
I have recoded the core dcerpc packet structures (all the PDUs etc) in terms of IDL, which means we now use pidl to generate all the code for handling the most basic dcerpc packets. This is not normally possible as it isn't completely valid NDR, but pidl has a number of extensions that make it quite easy. This also means we get the server side dcerpc marshalling/unmarshalling code for free. (This used to be commit 92bcad02587c3c1b31b523ee9fa46658a6cef9ff)
2003-11-22 * fixed handling of relative subcontext unionsAndrew Tridgell1-2/+2
* fixed GetPrinter in spoolss after OpenPrinter (This used to be commit 4aea2d79dd6b14e0fdfafd2236849ece01839ce0)
2003-11-22 * enable RPC/NDR validation in all smbtorture codeAndrew Tridgell1-2/+2
* allow us to distinguish between null arrays and zero length arrays, by making the allocation size a minimum of 1 on array pull (This used to be commit 11c0fe548ecfb03424f51e1354b86d4692e8f07c)
2003-11-22a fairly major upgrade to the dcerpc systemAndrew Tridgell1-54/+129
* added a NDR validator. The way it works is that when the DCERPC_DEBUG_VALIDATE_* flags are set the dcerpc system will perform NDR buffer validation. On sending a request the packet is first marshalled, then unmarahslled, then marshalled again, and it is confirmed that the two marshalling results are idential. This ensures that our pull and push routines are absolutely in sync, so that we can be very confident that if a routine works in the client then the corresponding routine must work on the server side. A similar validation is performed on all replies. * a result of this change is that pidl is fussier about the [ref] tag. You can only use it on pointers (which is the only place it makes sense) * fixed a basic alignment bug in the push side of the NDR code * added server side pull/push support. Our dcerpc system is now fully ready to be used on the server side. * fixed the relative offset pointer list. It must be traversed in reverse order on push * added automatic value setting for the size parameter in outgoing SdBuf structures. * expanded the ndr debugging code to always give a message on any failure * fixed the subcontext push code * fixed some memory leaks in smbtorture RPC tests (This used to be commit 8ecf720206a2eef3f8ea7cbdb1f460664a5dba9a)
2003-11-21fixed a bug with pushing non-pointer unionsAndrew Tridgell1-1/+3
(This used to be commit bc2fbc79cc7c0308934f351b067a88b4b397de37)
2003-11-21* changed the way strings are handled in pidl to a much more generalAndrew Tridgell1-17/+88
interface. We now support an arbitrary set of flags to each parser, and these can be used to control the string types. I have provided some common IDL string types in librpc/idl/idl_types.h which needs to be included in every IDL file. * added IDL for the endpoint mapper. Added a test suite that enumerates all endpoints on the server. (This used to be commit d2665f36a75b482ff82733f72ffac938c2acf87a)
2003-11-20make sure we don't try to use c++ style variable declarationAndrew Tridgell1-1/+5
(This used to be commit 9fee73793171e2cd295899ec0db8bcecfa95ca72)