[jcifs] Re: Tridge's PIDL compiler and the Samba4 IDLs.

Michael B Allen mba2000 at ioplex.com
Fri Aug 13 08:16:18 GMT 2004


On Thu, 12 Aug 2004 23:48:54 -0500
"Christopher R. Hertel" <crh at ubiqx.mn.org> wrote:

> > I know you're taking the diplomatic position here but to be honest I
> > actually doubt PIDL could be adjusted to generate good Java stubs. Not
> > easily. You know there's actually some C code embedded in a few spots?
> 
> He's not being diplomatic, he's right.  The C code you're seeing is in one
> 
> of the back-ends.  It's not fixed into the compiler.

No, I mean't there's code in the IDL:

$ grep "\->" *
epmapper.idl:		[value(ndr_size_epm_towers(&r->towers))] uint32 
tower_length;
eventlog.idl:		[value(2*strlen_m(r->name))] uint16 name_len;
eventlog.idl:		[value(r->name_len)]       uint16 name_size;
lsa.idl:		[value(2*strlen_m(r->name))] uint16 name_len;
lsa.idl:		[value(r->name_len)] uint16 name_size;
misc.idl:	/* security_descriptor->type bits */
netlogon.idl:		[value(strlen_m(r->string)*2)]  uint16 size;
netlogon.idl:		[value(r->size)]                uint16 length;
netlogon.idl:		[value(r->length)] uint16 size;
samr.idl:		[value(ndr_size_security_descriptor(r->sd))] uint32 sd_size;
samr.idl:		[value(2*strlen_m(r->name))] uint16 name_len;
samr.idl:		[value(r->name_len)] uint16 name_size;
samr.idl:		[value(strlen_m(r->name))] uint16 name_len;
samr.idl:		[value(strlen_m(r->name))] uint16 name_size;
winreg.idl:		[value(strlen_m_term(r->name)*2)] uint16 name_len;
winreg.idl:		[value(r->name_len)]              uint16 name_size;

> Note:  We've found that not all RPCs are NDR encoded.  There's some new 
> encoding that's started to show up.

Well you can use transmit_as and basically bypass the usual encoding
entirely. I'm not surprised. Somebody could have just punted on
IDL-izing and memcpy'd instead maybe.

Mike

-- 
Greedo shoots first? Not in my Star Wars.


More information about the jcifs mailing list