Jelmer,

> Fix towers_length for now. I'm currently working on a pidl extension
> that can generate these kinds of functions


This does not actually fix them. Your RHS change makes the port
numbers a uint16 now, which means they are pulled using the byte-order
specific routines, and in this case it means they are pulled in with
the wrong byte order. So ncacn_ip_tcp is still completely broken.

Fixing this is a bit trickier than it looks, as these structures are
already nested within this:

typedef [flag(NDR_NOALIGN|NDR_LITTLE_ENDIAN)] struct {
uint16 num_floors;
epm_floor floors[num_floors];
} epm_towers;

which means they inherit the NDR_LITTLE_ENDIAN flag. So we'll need an
override flag on the sub-structures to make them BIG_ENDIAN (just
undoing the LITTLE_ENDIAN flag on the sub-structures is not enough, as
the sub-structures are defined as having a particular byte order, not
the nogotiated byte order).

Could you possibly revert back to the working epmapper code while we
sort all this out?

When you do finish the RHS code (and test it!!) you'll need to make
sure it also works when we negotiate bigendian in the binding string.

Cheers, Tridge