summaryrefslogtreecommitdiff
path: root/librpc/ndr/ndr_basic.c
AgeCommit message (Collapse)AuthorFilesLines
2012-07-06ndr: fix push/pull DATA_BLOB with NDR_NOALIGNDavid Disseldorp1-12/+22
This change addresses bug 9026. There are 3 use cases for DATA_BLOB marshalling/unmarshalling: 1) ndr_push_DATA_BLOB and ndr_pull_DATA_BLOB when called with LIBNDR_FLAG_ALIGN* alignment flags set, are used to push/pull padding bytes _only_. The length is determined by the alignment required and the current ndr offset. e.g. dcerpc.idl: typedef struct { ... [flag(NDR_ALIGN8)] DATA_BLOB _pad; } dcerpc_request; 2) When called with the LIBNDR_FLAG_REMAINING flag, all remaining bytes in the ndr buffer are pushed/pulled. e.g. dcerpc.idl: typedef struct { ... [flag(NDR_REMAINING)] DATA_BLOB stub_and_verifier; } dcerpc_request; 3) When called without alignment flags, push/pull a uint32 length _and_ a corresponding byte array to/from the ndr buffer. e.g. drsblobs.idl typedef [public] struct { ... DATA_BLOB data; } DsCompressedChunk; The fix for bug 8373 changed the definition of "alignment flags", such that when called with LIBNDR_FLAG_NOALIGN ndr_push/pull_DATA_BLOB behaves as (1: padding bytes) rather than (3: uint32 length + byte array). This breaks marshalling/unmarshalling for the following structures. eventlog.idl: typedef [flag(NDR_NOALIGN|NDR_PAHEX),public] struct { ... DATA_BLOB sid; ... } eventlog_Record_tdb; ntprinting.idl: typedef [flag(NDR_NOALIGN),public] struct { ... DATA_BLOB *nt_dev_private; } ntprinting_devicemode; typedef [flag(NDR_NOALIGN),public] struct { ... DATA_BLOB data; } ntprinting_printer_data; Signed-off-by: Günther Deschner <gd@samba.org>
2012-02-13libndr: Add ndr_map_error2errnoVolker Lendecke1-0/+25
Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Mon Feb 13 15:06:29 CET 2012 on sn-devel-104
2011-12-02librpc: Add support for struct timevalVolker Lendecke1-0/+31
2011-12-02librpc: Add support for struct timespecVolker Lendecke1-0/+31
2011-09-08libndr: add checking to all pull/push functions of base typesAndrew Tridgell1-0/+34
this checks that the passed in ndr_flags are valid Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-03-09librpc/ndr use hyper for uid_t/gid_t rather than udlongAndrew Bartlett1-4/+4
This has 8 byte alignment, which is what was specified in pidl for these types. Andrew Bartlett Autobuild-User: Andrew Bartlett <abartlet@samba.org> Autobuild-Date: Wed Mar 9 09:03:09 CET 2011 on sn-devel-104
2011-03-01librpc/ndr: handle NOALIGN flag for relative pointers and alignment DATA_BLOBsStefan Metzmacher1-3/+8
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Tue Mar 1 17:11:03 CET 2011 on sn-devel-104
2011-03-01pidl Add support for uid_t and gid_t typesAndrew Bartlett1-0/+60
These are mapped to uint64_t, which should be big enough. This is proposed to be used for internal Samba representations, where it would be more painful to convert all the callers to an uint64_t calling convention. Andrew Bartlett
2011-02-28TODO test/review librpc/ndr: let ndr_push/pull_DATA_BLOB() look at ↵Stefan Metzmacher1-4/+5
LIBNDR_FLAG_REMAINING before LIBNDR_ALIGN_FLAGS metze
2011-02-08ndr: merge duplicate ndr_map_error2ntstatus() functions.Günther Deschner1-0/+25
Guenther
2011-01-25libndr: move ndr_print_bool to ndr_basic.cGünther Deschner1-0/+5
Guenther
2010-12-08ndr: Another try to support the build on non-IPv6 systemsKai Blin1-2/+4
Signed-off-by: Matthieu Patou <mat@matws.net> Autobuild-User: Matthieu Patou <mat@samba.org> Autobuild-Date: Wed Dec 8 10:26:00 CET 2010 on sn-devel-104
2010-11-26librpc: fix builds without IPv6 suport (HP-UX 11.00)Björn Jacke1-0/+2
Kai, please check. Autobuild-User: Björn Jacke <bj@sernet.de> Autobuild-Date: Fri Nov 26 03:07:21 CET 2010 on sn-devel-104
2010-10-04ndr: Implement push function for IPv6 addressesKai Blin1-4/+11
Thanks to Julien Kerihuel for providing the patch that pushed me to finish my own IPv6 patches.
2010-10-04ndr: Add support for pulling/printing an ipv6address typeKai Blin1-2/+50
2010-09-16pidl: prevent ndr_print_*() dying on NULL pointersAndrew Tridgell1-0/+10
when using ndrdump you can get uninitialised structures containing pointers. Don't segfault when trying to print them
2010-08-21s4-ndr_basic.c: Fix ndr_*_hyper() when [bigendian] data is processedKamen Mazdrashki1-0/+6
2010-08-14ndr: allow ndr_print to print DATA_BLOBAndrew Tridgell1-1/+48
this prints DATA_BLOB structures using the ndr->print() calls Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-05-27libndr: add support for relative_rap_convert.Günther Deschner1-0/+1
Will not harm anyone, is only used for rare short (2byte) relative pointers, and relative_rap_convert is always 0 so far (as all init functions using struct ndr_pull will zero the struct). Guenther
2010-03-26libutil: moved the networking defines to util_net.hAndrew Tridgell1-0/+1
These were causing thousands of warnings on solaris8
2009-12-12librpc/ndr: add support for relative_short pointersMatthieu Patou1-0/+12
relative_short is like relative but instead of having the offset coded on 4 bytes it's coded on 2 bytes. Such things happen in GET_DFS_REFERAL messages. Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-10-07pidl: get the alignment right for uint1632 enums (NDR64)Andrew Tridgell1-15/+63
The default enum in NDR63 is 32 bits, not 16 bits. We need a uint1632 type to get the alignment right.
2009-10-03pidl: added int3264 as a base typeAndrew Tridgell1-0/+10
This is the type used for a variable that is 32 bits for NDR32 and 64 bits for NDR64
2009-10-02ndr64: added support for trailing gap alignmentAndrew Tridgell1-0/+18
NDR64 has a 'trailing gap' alignment, which aligns the end of a structure on the overall structure alignment. This explains the discrepancy we had with the RPC-SAMR test and NDR64
2009-09-29pidl: added union padding for NDR64Andrew Tridgell1-0/+18
This fixes the problem with samr UserInfo16 when NDR64 is enabled
2009-09-17ndr: split out ndr enum functionsAndrew Tridgell1-0/+67
This allows for easier implementation of the NDR32/NDR64 split
2009-09-17ndr: added support for NDR64 Andrew Tridgell1-5/+37
This adds NDR64 support for the push functions in libndr
2009-09-17Remove ununsed variable warning.Jeremy Allison1-1/+0
Jeremy.
2009-09-16ndr: added --ndr64 flag to ndrdumpAndrew Tridgell1-2/+22
This only does pull, but it is useful for w2k8-r2 <-> w2k8-r2 ndrdump usage, which is always 64bit.
2009-06-02Add support for double type in pidl.Brad Hards1-1/+30
Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2009-05-02Of course, s_addr is a #define somewhere else .... (Solaris...)Volker Lendecke1-3/+3
2009-05-02Fix a warning on host "gwen"Volker Lendecke1-2/+3
cc: "../librpc/ndr/ndr_basic.c", line 572: warning 604: Pointers are not assignment-compatible. Apparently in_addr.s_addr is not compatible to uint32_t, maybe a 32-bit signed int.
2008-12-31Fix typo found by Volker. Thanks for the review.Jeremy Allison1-1/+1
Jeremy.
2008-12-31Fix all warnings in source3 with gcc4.3.Jeremy Allison1-2/+1
Jeremy.
2008-10-13Share ndr_basic implementation.Jelmer Vernooij1-0/+833