dcerpc.idl: hide (ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT) logic behind a define
authorStefan Metzmacher <metze@samba.org>
Thu, 27 Mar 2014 12:08:22 +0000 (13:08 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 28 Mar 2014 07:34:25 +0000 (08:34 +0100)
This way we can alter the define depending on the generated code.

E.g python bindings won't have an 'ndr' struct available.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
librpc/idl/dcerpc.idl
librpc/ndr/ndr_dcerpc.h

index 1d25daf0ab3fc9712390396ae94e68b73d37596b..4dad1261db43228e245c17663138f269e06cf343 100644 (file)
@@ -56,7 +56,11 @@ interface dcerpc
                uint32 alloc_hint;
                uint16 context_id;
                uint16 opnum;
-               [switch_is(ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT)] dcerpc_object object;
+               /*
+                * NDR_DCERPC_REQUEST_OBJECT_PRESENT
+                * is defined differently for ndr_dcerpc.c and py_dcerpc.c
+                */
+               [switch_is(NDR_DCERPC_REQUEST_OBJECT_PRESENT)] dcerpc_object object;
                [flag(NDR_ALIGN8)]    DATA_BLOB _pad;
                [flag(NDR_REMAINING)] DATA_BLOB stub_and_verifier;
        } dcerpc_request;
index f544fb185d9ecfcd26323d8481861397994f48ef..1a7c3bd7c5bd7d0d85c2abc31fe489556314bf81 100644 (file)
@@ -23,3 +23,7 @@
 enum ndr_err_code ndr_pop_dcerpc_sec_verification_trailer(
        struct ndr_pull *ndr, TALLOC_CTX *mem_ctx,
        struct dcerpc_sec_verification_trailer **_r);
+
+#ifndef NDR_DCERPC_REQUEST_OBJECT_PRESENT
+#define NDR_DCERPC_REQUEST_OBJECT_PRESENT (ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT)
+#endif /* NDR_DCERPC_REQUEST_OBJECT_PRESENT */