Age | Commit message (Collapse) | Author | Files | Lines |
|
Values that are deferred but don't contain deferred data don't
need NDR_BUFFERS
Parse::Pidl::Samba::NDR::Parser:
Only use manually written array access functions when the array
functions are faster then the autogenerated ones. Makes ndr_basic.c
a bit shorter.
(This used to be commit cad40815dcfb7cdcab13bd0cd204ef8711605ef3)
|
|
(This used to be commit d2c928548336682ffd3dda873f9957f3d041f0af)
|
|
S390. This is an attempt to avoid the panic we're seeing in the
automatic builds.
The main fixes are:
- assumptions that sizeof(size_t) == sizeof(int), mostly in printf formats
- use of NULL format statements to perform dn searches.
- assumption that sizeof() returns an int
(This used to be commit a58ea6b3854973b694d2b1e22323ed7eb00e3a3f)
|
|
(This used to be commit f93bd0ced6b0b2b4ee3bf15e53ba30138fd6b533)
|
|
by the new ldb code dealing with binary records, but is also a good
defensive strategy in general
(This used to be commit 17decd129928290a6916a1d1cec73dad924d64f8)
|
|
in the generated code from pidl generated a warning)
(This used to be commit 22f7fd76343646a149937fcdc891a98a516bf820)
|
|
(This used to be commit 1536d66662193568a51793d65fb319882db9d089)
|
|
ndr strings
(This used to be commit aa0e1d6699959571963d6e6fb455b33c4436dcdf)
|
|
metze
(This used to be commit cdd03fe87d0120ab3e18566bfc20df5955f9fb3c)
|
|
- we now use an ndr_token_list, for the nbt string label pointer offsets
this avoids to scan the whole buffer
- we need to check for already send string on a per component basis
not only for the fullname
e.g.
w2k3 response this in the CLDAP netlogon replies
forest: w2k3.vmnet1.vm.base
dns_name: sub1.
pdc_dns_name: w2k3-104.
and this will be interpreted like
forest: w2k3.vmnet1.vm.base
dns_name: sub1.w2k3.vmnet1.vm.base
pdc_dns_name: w2k3-104.w2k3.vmnet1.vm.base
metze
(This used to be commit d18303a0e27643285ffaf100eeddea2f9555c9db)
|
|
- allow comparison function to be passed for ndr_token_retrive_cmp_fn(),
this is for matching the keys, if NULL is passed, the old behavior
tok->key == key is used
metze
(This used to be commit 019f3dc767ef703768df3acdbbd80808c122855c)
|
|
- add a new 'sptr' (simple-full) pointer type to simulate what we need to support pipes
like epmapper and mgmt that uses 'ptr' full pointer in their spec
- I runned make test and test_w2k3.sh with this, all fine
does we have any other pipe using 'unique' pointer where we need 'ptr'?
btw: jelmer, what does 'ignore' pointers do? they are allowed in pidl but not implemented!
metze
(This used to be commit d19068bfb2e3ff5d88bc3b76d5cef93417c7f218)
|
|
this is ifdef'ed out currently because we use 'unique' pointers in the epmapper pipe,
where we should use 'ptr' full pointers.
metze
(This used to be commit ccc9d9267a60287eff1fb26132aa7cae3b39dcee)
|
|
metze
(This used to be commit 25f5d1db296b03b62869c8467b652a0df3107222)
|
|
memory checks
- move to handmodified pull/push code for PAC_BUFFER
to get the _ndr_size field and the subcontext size right
- after looking closely to the sample w2k3 PAC in our torture test (and some more in my archive)
I found out that the first uint32 before the netr_SamInfo3 was also a pointer,
(and we passed a NULL pointer there before, so I think that was the reason why the windows clients doesn't want our PAC)
w2k3 uses this for unique pointers:
ptr = ndr->ptr_count * 4;
ptr |= 0x00020000;
ndr->ptr_count;
- do one more pull/push round with the sample PAC
metze
(This used to be commit 0eee17941595e9842a264bf89ac73ca66cea7ed5)
|
|
any more.
Perhaps like minimal_includes.pl, we should have a way to find these
automaticly. Hmm...
Andrew Bartlett
(This used to be commit d13b9f548e9d3696505178476d2615835cae8fe2)
|
|
- the out subcontext's need to have a fixed size of r->in.offered,
to make windows clients happy
metze
(This used to be commit 054e1ca434b2f81de199eeb41cb6233524fc5779)
|
|
the full FIXLEN
metze
(This used to be commit d8175b01db69436d8af64b97d7b7beca4ba4b552)
|
|
structure in ndr_push_*() and ndr_print_*(). The push and print
functions really should not modify the structure.
metze, to make this work I had to change your spoolss hand
marshaller. Can you please check it is OK? I think that the IN and OUT
sides of that function are not ever called on the same structure, so I
think that attempt at remembering the value by assigning to
r->in._offered was not doing anything anyway, but please correct me if
I have misunderstood it.
If you really do need to remember something on those structures I'd
suggest the ndr_token_store() and ndr_token_retrieve() functions,
which are used by pidl for just this sort of thing.
(This used to be commit eee528be97fa43ca53bdc5652b4d29a0a2caf563)
|
|
(This used to be commit 72efb695291f0ad3cdc80daa9f979454f6a81c04)
|
|
(This used to be commit 7012e10bb6252a7e602e80f05c914a783610088c)
|
|
sense. Not
used anywhere yet.
(This used to be commit a73a35cfc7b5b92cd95bd0d0fbd64d04acecccf3)
|
|
- add somemore checks in the Emun*() pull/push glue code
metze
(This used to be commit 075fe1eb4b6b2d00cdd9965656598aaec53da638)
|
|
- use the same names as etherel (offered,needed) for the buffer sizes
(and they are really independently used)
metze
(This used to be commit f5532a5b74e972f44ed8aa19ee9c5851a4b40f65)
|
|
we got
in the recv code..., this makes the w2k3 printserver properties gui happy:-)
metze
(This used to be commit 0130b0d90223bb7278f924e1b1370778f25d0d91)
|
|
- fix allocates [out,ref] pointers to be passed between functions
metze
(This used to be commit 9a1760c618b10ee08b4e6ad21eb0c7e757ae9dea)
|
|
metze
(This used to be commit 73d597bacf83492ed3da2307dd6785548b903b39)
|
|
metze
(This used to be commit c0462d60b58471b0804450d31a11e603519b45e4)
|
|
([validate,bigendian] is still failing badly...)
metze
(This used to be commit da319b7bc366bb40d9d290efe17436c8fd5a0911)
|
|
now...
metze
(This used to be commit d2eb1a68447ff71adfc56c60d26753e12596a1a6)
|
|
metze
(This used to be commit 58a214d98fc7a2b46a0876e57e05dec82438bc53)
|
|
(maybe we could add them to elements latter...)
with this property all relative pointers from inside the struct or union
are relative to the struct/union start
metze
(This used to be commit c0dd18326c058e3e218d43f48ecff418f4b0b51e)
|
|
metze
(This used to be commit 95d3286a327467c32ee25fcac913fc5f3113a74b)
|
|
with a better aproach later
metze
(This used to be commit 9a4e9f68fbddaae3fc86e30d39b69fc76261c0ea)
|
|
the spoolss_Enum* functions
they will be later used in the spoolss server code
metze
(This used to be commit 539fe32cedb73be0520675a1052cba476e4974d2)
|
|
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)
|