[PIDL] support for multilevel pointers and arrays and embedded ref pointers

Stefan (metze) Metzmacher metze at samba.org
Sun Feb 3 01:56:17 GMT 2008


Hi Jelmer,

I've done some more testing with my patch to correctly support
multilevel pointers.

We already found that the 2nd and higher levels get the
pointer_default() value instead of the specified pointer type.
So '[ref] uint32 **v' means a ref pointer to a unique pointer
to an uint32 value.

But I needed to change that IS_DEFERRED to 1 for the 2nd and higher
level (of the pointers which are encoded on the wire):

[out,ref] uint8 ****v
here the 3rd and higher levels should have IS_DEFERRED = 1

[out,unique] uint8 ****v
here the 2nd and higher levels should have IS_DEFERRED = 1

Take a look at the ndr parser code that is generated for
wkssvc_NetrGetJoinableOus[2]. The current code for 'ous' will never
parse the real content it will stop after parsing the first unique
pointer level.

Please take a look at this branch:
http://gitweb.samba.org/?p=metze/samba/wb-ndr.git;a=shortlog;h=v4-0-pidl
(I'll fix the commit messages before I'll push this...)

metze

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
Url : http://lists.samba.org/archive/samba-technical/attachments/20080203/f8fc8690/signature.bin


More information about the samba-technical mailing list