Age | Commit message (Collapse) | Author | Files | Lines |
|
parsing code for the spoolss_Enum* functions, there still same handwritten code needed
but just to stack the autogenerated code into the correct way
metze
(This used to be commit 155d18e8b78afebfb4a84e43e3b4d8fc6c9cc4e2)
|
|
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)
|
|
(This used to be commit 742989c952421ebdf2d21c98e1de1b2b74b9f435)
|
|
(This used to be commit 46509eb89980bfe6dabd71264d570ea356ee5a22)
|
|
(This used to be commit dc25be9d69a65680f7942ed29c2d791d6ce7248a)
|
|
metze
(This used to be commit 161ecce7441649629b97ce1ca903b9704e06f66b)
|
|
response.
To work around the fact that the type of the returned data is not
encoded in the packet, this required adding ndr_pull_union_blob()
which allows us to pull a blob into a union with a specified switch
value, in this case the switch value comes from the calling NtVer field.
(This used to be commit bd27e626c27be72913d1a1569ee6e2e2711df84e)
|
|
ndr_pull_struct_blob() but checks
that all bytes are consumed
(This used to be commit 7951e9bd647b35d2f92d7ba4dbbc2ac05f31491a)
|
|
(this fixes the doublepointer test against w2k3)
but we accept zero pointers on the receive side,
because it's used in DRSUAPI
metze
(This used to be commit 748ab5449bcc5b47f5ceaa83277bf8084c44ec56)
|
|
metze
(This used to be commit 23b529ee090e1858fc18794b949f7e466fa82b0e)
|
|
metze
(This used to be commit a29d52817ce943c15f6896b74273df739867c8f7)
|
|
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)
|
|
ndr code for handling sids and security descriptors now that we have a
sid in the nbt IDL
(This used to be commit f8e77fcdeac704aed5e501aa9108f3ed0ab26ca4)
|
|
metze
(This used to be commit e66aa87f148d04f4c44b08555345600b8a6278d4)
|
|
metze
(This used to be commit 08d22a07cfa84fe959320058e8574c8983e1d71f)
|
|
we should start with an empty switch_list
in ndr_print as we do for ndr_pull/ndr_push
metze
(This used to be commit 848f553117b369fc6697086b3f7d36dd17b60f5b)
|
|
crash city.
(This used to be commit 6526f21fb72094e8ff62bfc2693a49a3b1679a95)
|
|
(This used to be commit 4da9d1d5c277eb65d0fe5bf5c4690531dcfb85de)
|
|
(This used to be commit f66e11137eed69b44f0739f1064625cbd96243bd)
|
|
a handle as parameter,
EnumPorts
EnumPrinterDrivers
EnumMonitors
EnumPrintProcessors
EnumPrinters
we now do cross checks between the different info levels
and sore the results in a global context,
so that we later can add cross checks between the different object types
- add idl for EnumMonitors and EnumPrintProcessors
metze
(This used to be commit 92a3721bc7a28d521090b10eb3b1eed089036432)
|
|
dom_sid in it
metze
(This used to be commit 460d1b089e494efaeb0c8c7fd4601a9ef57123c5)
|
|
(taken from cabextract.c from KDE)
this code maybe need to be rewritten and the
compression side needs to be done,
but for now it seems to works
- remove the dependency to zlib
metze
(This used to be commit 5e8558c5b4365a494aa054c3e08d4084b319e6e5)
|
|
metze
(This used to be commit 4b88ff29715a98c728cf70db4889daafed8eeeb2)
|
|
it produces the correct DATA_BLOB length, but only the first chunk is
successfull decompressed...
metze
(This used to be commit 0d44d077975d756023f1dcc8d2c3ebf06305e355)
|
|
metze
(This used to be commit ff32e2182e3f11b1b51110c9d3f34bc8781dec0b)
|
|
metze
(This used to be commit fca4dc4827c98c02051165c1aedf5bdc5354bdda)
|
|
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)
|
|
(This used to be commit f3006e623bcf65a05238fbd3362ee958b948e70b)
|
|
Test_DoublePointer test failure.
(This used to be commit 4089d5f67d6e4121056a63ececb13187fd773636)
|
|
Implement push side of NDR_LEN4|NDR_NOTERM strings (pull side was already present)
(This used to be commit ea61ec1122841716ed5d90085ba79e7bf691bd6a)
|
|
metze
(This used to be commit 3e6ec811288d74921bf3e393213e75d928156772)
|
|
metze
(This used to be commit 1084ad4bfce6bc20537f5bfccb5a25b60f503b32)
|
|
also add a really simple torture test for DsGetNCChanges
metze
(This used to be commit bcde67a7eff9ad82919e90fd64c02a17610c6f0e)
|
|
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)
|
|
metze
(This used to be commit 8ac0928a914c1cee3f0493b515f03c6422a8b71a)
|
|
used to be)
Add oxid mapping table support in DCOM
(This used to be commit e193555f0eec2dda8c8760e9668181200fef0a1e)
|
|
metze
(This used to be commit a8f7c3e59f35127b51d4afc551b71f21886f4565)
|
|
metze
(This used to be commit 112043b1809a96b1a39ade71ea2885c0d792c79f)
|
|
metze
(This used to be commit eaac0f214703f91f186eb54f97e15e56461762bd)
|
|
- 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 54e0be6f1eccbd870eb0e60ae8cdb90d2dc7f657)
|
|
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)
|
|
(This used to be commit 48d54a9b57c0b233c7c60392b23876b426bbdec1)
|
|
metze
(This used to be commit 2bb29cc68ae795bbb4baa12501103ae9555f1898)
|
|
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)
|
|
for the spoolss_Enum* functions
metze
(This used to be commit bfcc86e706cf32672323eda939e5def6694509a8)
|
|
- Disable all current DCOM functionality (I hope to commit
a large bunch of COM and DCOM changes later today)
- Make remact and oxidresolver depend on orpc rather then dcom
(This used to be commit f298f2a5478a905fe385b8d68318db92ee984374)
|
|
metze
(This used to be commit 0aea8522d7ddaf1ce4cc708c13888e44d14cda32)
|
|
(This used to be commit fa97059d000859b3d0192ed4a0135770888aba6f)
|