1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
Commit Graph

282 Commits

Author SHA1 Message Date
Stefan Metzmacher
d3dd8a4307 r7184: remove unused ndr_pull/push_struct_start/end() functions
metze
(This used to be commit 95d3286a32)
2007-10-10 13:17:24 -05:00
Stefan Metzmacher
8618c6a906 r7182: remove current support for RELATIVE_CURRENT, this will be replaced with a better aproach later
metze
(This used to be commit 9a4e9f68fb)
2007-10-10 13:17:23 -05:00
Stefan Metzmacher
4536f0ef91 r7181: add functions to calculate the buffer size needed for array buffer in the spoolss_Enum* functions
they will be later used in the spoolss server code

metze
(This used to be commit 539fe32ced)
2007-10-10 13:17:23 -05:00
Stefan Metzmacher
62480f1252 r7120: make use of the new 'noopnum' property and get rid of handwritten
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 155d18e8b7)
2007-10-10 13:17:19 -05:00
Jelmer Vernooij
e427f58622 r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
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 13cf227615)
2007-10-10 13:17:01 -05:00
Tim Potter
ffbeabef64 r6932: Comment out static function - not used anywhere?
(This used to be commit 742989c952)
2007-10-10 13:16:58 -05:00
Jelmer Vernooij
5b18cf2268 r6795: Make some functions static and remove some unused ones.
(This used to be commit 46509eb899)
2007-10-10 13:16:44 -05:00
Andrew Tridgell
59f415c0ed r6746: added ndr_push_union_blob() for pushing IDL unions into a DATA_BLOB
(This used to be commit dc25be9d69)
2007-10-10 13:16:40 -05:00
Stefan Metzmacher
dd02669187 r6731: add a useful function for getting a guid with all bits to 0
metze
(This used to be commit 161ecce744)
2007-10-10 13:16:39 -05:00
Andrew Tridgell
2f2fc84a7c r6720: added support for the remaining 2 types of CLDAP netlogon
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 bd27e626c2)
2007-10-10 13:16:37 -05:00
Andrew Tridgell
76e3954dde r6690: added ndr_pull_struct_blob_all(), which is like ndr_pull_struct_blob() but checks
that all bytes are consumed
(This used to be commit 7951e9bd64)
2007-10-10 13:16:34 -05:00
Stefan Metzmacher
d70232a747 r6574: send a value for embedded ref pointers,
(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 748ab5449b)
2007-10-10 13:16:27 -05:00
Stefan Metzmacher
591ff7675d r6572: add "string_array" as new scalar type for handling SPOOLSS string array's
metze
(This used to be commit 23b529ee09)
2007-10-10 13:16:26 -05:00
Stefan Metzmacher
14b63614fa r6519: move string handling functions to a seperate file
metze
(This used to be commit a29d52817c)
2007-10-10 13:16:21 -05:00
Stefan Metzmacher
5eff721651 r6294: - add obfuscate support, which is used in MAPI rpc's, (the ^= 0xA5 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 27ccdd6182)
2007-10-10 13:11:30 -05:00
Andrew Tridgell
e7dd6a1291 r6287: sorted out a small but surprisingly tricky dependency problem with the
ndr code for handling sids and security descriptors now that we have a
sid in the nbt IDL
(This used to be commit f8e77fcdea)
2007-10-10 13:11:29 -05:00
Stefan Metzmacher
051206ff1e r6191: fix spoolss_Enum* push code
metze
(This used to be commit e66aa87f14)
2007-10-10 13:11:24 -05:00
Stefan Metzmacher
d2128c1249 r6189: move function to the right place
metze
(This used to be commit 08d22a07cf)
2007-10-10 13:11:24 -05:00
Stefan Metzmacher
fa27fa88da r6188: correct fix for rev 6182
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 848f553117)
2007-10-10 13:11:24 -05:00
Richard Sharpe
b9df3f5fe8 r6182: Jelmer, I think we need to initialize the switch_list, else we are
crash city.
(This used to be commit 6526f21fb7)
2007-10-10 13:11:23 -05:00
Jelmer Vernooij
934f11cb97 r6181: Use ndr_print_set_switch_value() here as well.
(This used to be commit 4da9d1d5c2)
2007-10-10 13:11:23 -05:00
Jelmer Vernooij
3b8c824c16 r6180: Use token_lists for storing switch values
(This used to be commit f66e11137e)
2007-10-10 13:11:23 -05:00
Stefan Metzmacher
3abce73193 r6179: - add new spoolss tests for all spoolss_Enum*() calls which didn't need
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 92a3721bc7)
2007-10-10 13:11:23 -05:00
Stefan Metzmacher
d2f2d5c798 r6134: add a new type dom_sid28 which is a 28 byte fixed buffer with a dom_sid in it
metze
(This used to be commit 460d1b089e)
2007-10-10 13:11:21 -05:00
Stefan Metzmacher
0403e2032b r6129: - add our own MSZIP decompression implementation
(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 5e8558c5b4)
2007-10-10 13:11:20 -05:00
Stefan Metzmacher
4810ec445d r6114: the marker is const and is 0x434B 'CK'
metze
(This used to be commit 4b88ff2971)
2007-10-10 13:11:20 -05:00
Stefan Metzmacher
d15845eb81 r6112: try to decompress all chunks and put them together
it produces the correct DATA_BLOB length, but only the first chunk is
successfull decompressed...

metze
(This used to be commit 0d44d07797)
2007-10-10 13:11:19 -05:00
Stefan Metzmacher
3b05dae200 r6099: use the enum print function
metze
(This used to be commit ff32e2182e)
2007-10-10 13:11:19 -05:00
Stefan Metzmacher
747eb74d2e r6065: revert test value
metze
(This used to be commit fca4dc4827)
2007-10-10 13:11:16 -05:00
Stefan Metzmacher
5a9ceee7a5 r6061: add start of compression support in our rpc code
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 335adef370)
2007-10-10 13:11:16 -05:00
Jelmer Vernooij
df8c102ec9 r5986: Fix the build. Metze, could you please verify that this fix is correct?
(This used to be commit f3006e623b)
2007-10-10 13:11:12 -05:00
Jelmer Vernooij
4c4738938a r5977: Fix uninitialised memory bug in ndr_pull_ref_ptr(). This fixes the
Test_DoublePointer test failure.
(This used to be commit 4089d5f67d)
2007-10-10 13:11:11 -05:00
Jelmer Vernooij
ef213b0248 r5866: Add InitShutdown IDL and torture test.
Implement push side of NDR_LEN4|NDR_NOTERM strings (pull side was already present)
(This used to be commit ea61ec1122)
2007-10-10 13:11:05 -05:00
Stefan Metzmacher
d7b5a565ef r5828: add some idl for DsAddEntry()
metze
(This used to be commit 3e6ec81128)
2007-10-10 13:11:04 -05:00
Stefan Metzmacher
55546176c6 r5800: fix recursiv printing in ndr_print_DsGetNCChangesInfo1()
metze
(This used to be commit 1084ad4bfc)
2007-10-10 13:11:04 -05:00
Stefan Metzmacher
cead12981f r5799: more DsGetNCChanges updates, I'm starting to understand it...
also add a really simple torture test for DsGetNCChanges

metze
(This used to be commit bcde67a7ef)
2007-10-10 13:11:04 -05:00
Stefan Metzmacher
a81a2c22a2 r5797: - add idl property [subcontext_size()]
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 483bb1418f)
2007-10-10 13:11:04 -05:00
Stefan Metzmacher
ebc34d2157 r5796: add ndr_* function for int8 and int16
metze
(This used to be commit 8ac0928a91)
2007-10-10 13:11:03 -05:00
Jelmer Vernooij
e9ca6e48ff r5775: Remove some unused functions (unions are no longer as special as they used to be)
Add oxid mapping table support in DCOM
(This used to be commit e193555f0e)
2007-10-10 13:11:02 -05:00
Stefan Metzmacher
26cb89fcdd r5765: remove unused var
metze
(This used to be commit a8f7c3e59f)
2007-10-10 13:11:01 -05:00
Stefan Metzmacher
e90c904a5f r5764: add support for embedded ref pointers
metze
(This used to be commit 112043b180)
2007-10-10 13:11:01 -05:00
Stefan Metzmacher
1ecdd79847 r5736: fix to avoid endless recursion in ndr_size_*() calculation
metze
(This used to be commit eaac0f2147)
2007-10-10 13:11:00 -05:00
Jelmer Vernooij
77ec3f684d r5674: - Re-enable DCOM support.
- 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 26d5a0b92c)
2007-10-10 13:10:59 -05:00
Jelmer Vernooij
ffae01d432 r5672: Use switch_type() and the token storage mechanism for unions:
- 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 dc6b4ffc82)
2007-10-10 13:10:58 -05:00
Jelmer Vernooij
75b3cfc17d r5663: Revert some changes I didn't mean to commit...
(This used to be commit 54e0be6f1e)
2007-10-10 13:10:57 -05:00
Jelmer Vernooij
631aa1f0ef r5661: Be a little stricter on syntax regarding arrays. A pointer to an
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 a416de5825)
2007-10-10 13:10:57 -05:00
Jelmer Vernooij
1b11ca3e51 r5506: Simplify the use of subcontexts and make them a bit less a special case.
(This used to be commit 48d54a9b57)
2007-10-10 13:10:52 -05:00
Stefan Metzmacher
9eed5a0cce r5504: fix typo
metze
(This used to be commit 2bb29cc68a)
2007-10-10 13:10:52 -05:00
Jelmer Vernooij
80d3047333 r5490: The big (D)COM commit! :-) Contains most of the changes described in the
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 71fd3e5c3a)
2007-10-10 13:10:50 -05:00
Stefan Metzmacher
6b4cac2c00 r5489: hide handwritten pull/push/print code from the caller
for the spoolss_Enum* functions

metze
(This used to be commit bfcc86e706)
2007-10-10 13:10:50 -05:00