Age | Commit message (Collapse) | Author | Files | Lines |
|
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
|
|
- Warn about unknown attributes in .mk
- Remove more unused functions
(This used to be commit 6bf8126ae9368dc56cf0cd91b972a2d939974679)
|
|
(This used to be commit 4e159a757015faa007419bdaf0ceea8cdbe595ee)
|
|
Accept new command-line options --keep, --outputdir and --idl-compiler.
We're currently at 34 IDL tests (...and counting)
(This used to be commit 7004f9515b75bce5b46e444f1865d377fdae0afa)
|
|
scalars
(it doesn't have any push/pull functions anymore either)
(This used to be commit 7d36e27e228ce83a5ce159eb424c4b5194c0e2fb)
|
|
where possible.
(This used to be commit 077f4105aceba99a7ac4de21a20bb758fcc01203)
|
|
- Add some more pidl tests based on ref_notes.txt
We currently fail some tests because we don't default to "ref"
for top-level pointers at the moment. We also fail some of the multi-level
tests.
(This used to be commit 187802f580d85e19ee9b7f07db931d0511f197bc)
|
|
tridge's ref_notes.txt document.
(This used to be commit 04196e0aff10846ec69a9c35e61517bb7f856386)
|
|
Some work on a testsuite for pidl, including one simple test.
(This used to be commit a5aa61f54ea20f0b400359f9b3119f0ff0720431)
|
|
and NDR headers
(This used to be commit 421e7feee96ebda1bf92814e06257d728ea2b1e5)
|
|
metze
(This used to be commit 23b529ee090e1858fc18794b949f7e466fa82b0e)
|
|
(This used to be commit 87d3d55bd38ddcdbf42a920c65b5cf94649ca607)
|
|
testing...)
metze
(This used to be commit 41316e7f1b8361fb7ff220e2b9faa683a4951850)
|
|
scalar type (mostly)
metze
(This used to be commit ba1686e31a0d70a1fddabf4289d20fa8fe13b566)
|
|
(This used to be commit 0e6be68dafb8979bcc2cb633c816e3f80e9441c1)
|
|
netlogon query.
Note that this response is almost identical to the CLDAP netlogon
response, so adding that will now be quite easy.
(This used to be commit 1ea4ed4ad1d9336f8288283688fa2d7bebfa533c)
|
|
stuff),
based on a patch from j.kerihuel@openchange.org
- remove unused $ndr_flags argument for the ParseCompression*Start() function's
metze
(This used to be commit 27ccdd61822ba1a24244086522b9f8fe97fe0a78)
|
|
metze
(This used to be commit 661e64e9ce91e8029e1a36ef6825e56e5460e32b)
|
|
(This used to be commit f66e11137eed69b44f0739f1064625cbd96243bd)
|
|
(This used to be commit f4d550c348e9604439f07329ddbc3cf65891d578)
|
|
then at the element level.
(This used to be commit fac5edd2b71759c82232713f77ab91b41ed09250)
|
|
(This used to be commit ad7ea50eb29402d213438e5fcaa56f853c00487e)
|
|
what does length_of() and id() do?
metze
(This used to be commit 55963934db51fadb1340c7a2ec275aa24151dd14)
|
|
metze
(This used to be commit f3c64120a16289472bdc56329d39c7221d00b558)
|
|
metze
(This used to be commit 2a7eead1c8058f829395723028a43b0336a1cf87)
|
|
this is not complete cuurently...
but I want other people to test it and help me on finishing it.
(try to change the #if 0 in torture/rpc/drsuapi.c into #if 1)
metze
(This used to be commit 335adef37082a78e0426decb715629bd778e6582)
|
|
to a new ndr.pm.
Add function that can generate a "OrderTable" describing the order
in which the NDR data will be pushed/pulled.
(This used to be commit 2603a7326d7e54a012a95e37fd54433b85d8acc4)
|
|
I'm going to add a ndr.pm later on that'll generate a
tree with necessary information for the two NDR backends
(eparser, ndr_parser) containing alignment info, etc.
(This used to be commit 5162daa9464cd64930f5a8fd0d7b381b122c931d)
|
|
this can be used like this
[subcontext_size(28),subcontext(0)] dom_sid sid;
this descripes a fixed 28 byte buffer which contains a dom_sid,
and the rest of the buffer is padded with zero bytes if the dom_sid doesn't
need all 28 byte in it's ndr encoding.
- only push and pull the subcontext when we are in the NDR_SCALARS section
(tridge, jelmer: I hope this is correct for all cases...!?:-)
metze
(This used to be commit 483bb1418fd5c70c418142ade80c1e286adfa05a)
|
|
(This used to be commit 0d590906cd7706ebd8c6d5921546291e98067864)
|
|
used to be)
Add oxid mapping table support in DCOM
(This used to be commit e193555f0eec2dda8c8760e9668181200fef0a1e)
|
|
metze
(This used to be commit 112043b1809a96b1a39ade71ea2885c0d792c79f)
|
|
scalars but also for structs/unions containing only scalars.
(This used to be commit a3e136b2f3bd51159775fea25eff0ea81e9716f7)
|
|
(This used to be commit 7ecc2e6130d7f284906cbc50dda86c742f139fae)
|
|
- Keep COM and DCOM more seperated
(This used to be commit f694f484c422d0c86beb58e8f62f134f8676d5e1)
|
|
- Always put IID in vtables (useful for asserts)
- Add table to keep track of DCOM proxy classes
- Bunch of smaller bug fixes
(This used to be commit 26d5a0b92c66bc86d0c26f687f83fa712342ac32)
|
|
- Makes union handling less special
- Allows unions in arrays, etc
- Compatible with midl
- Pidl will warn about switch_type() and the type of the switch_is() variable being different
(This used to be commit dc6b4ffc82a191631bc16a4b93a4916a39183ec6)
|
|
(This used to be commit 00ef0feaddc096d8f5e2755feecaec37d589a99c)
|
|
(This used to be commit 09a9222b600d58271f42ee0870e0c933d2e105d0)
|
|
array can now only be :
type *name[];
rather then :
type *name;
which was supported in the past. Warnings will be given when the first
syntax is used. Reasons for this change in behaviour include improved
readability and the fact that the second format makes dealing with multiple
levels of pointers harder.
(This used to be commit a416de5825c540fd3741731c4be05e9a659a6fdb)
|
|
No longer complain about pointers to arrays - we support those.
(This used to be commit 128c0ecf030043e81d73aaeda6afb731075f8f9e)
|
|
so we can specify allowed target service names in the idl file
the default is "host"
metze
(This used to be commit bf40d5321f3257bf9354a42d31265f1a9b0d53ad)
|
|
(This used to be commit 48d54a9b57c0b233c7c60392b23876b426bbdec1)
|
|
(This used to be commit e601f51b82e99a999f0a9c62b487d56c715a3502)
|
|
(This used to be commit 70b58aa7790a93b9c7cdaa644689b2b1fa5e5405)
|
|
(This used to be commit 3c31cbaac0cd916e6af49bfd2260bc3b1a75b677)
|
|
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.
(This used to be commit 71fd3e5c3aac5f0002001ab29d2248e6c6842d6f)
|
|
full interfaces.
- Couple of bugfixes in odl.pm
- First use of multiple pointers in dcom.idl
(This used to be commit 3110c2ec44a872a53e7d6015b85c68fdb604b4de)
|
|
(This used to be commit d0d4251d6f8718256fd3baf7db4969dcf6073283)
|
|
metze
(This used to be commit 0e82e7f02bdd61d8fd27ef3eab9b23ecaadb1e5a)
|