added a define for the DCERPC little-endian data representation flag
authorAndrew Tridgell <tridge@samba.org>
Tue, 16 Dec 2003 11:24:28 +0000 (11:24 +0000)
committerAndrew Tridgell <tridge@samba.org>
Tue, 16 Dec 2003 11:24:28 +0000 (11:24 +0000)
(This used to be commit 691f9c1c4448fb54846fcfffeca43601bcd44138)

source4/librpc/idl/dcerpc.idl
source4/librpc/rpc/dcerpc.c

index ad8267957624b3d221b026e7a7c162775ceeec25..4d09a9ec4f12682303e95e588852ef99d97bce27 100644 (file)
@@ -170,6 +170,9 @@ interface dcerpc
        const uint8 DCERPC_FRAG_LEN_OFFSET =  8;
        const uint8 DCERPC_AUTH_LEN_OFFSET = 10;
 
        const uint8 DCERPC_FRAG_LEN_OFFSET =  8;
        const uint8 DCERPC_AUTH_LEN_OFFSET = 10;
 
+       /* little-endian flag */
+       const uint8 DCERPC_DREP_LE  = 0x10;
+
        typedef [public] struct {
                uint8 rpc_vers;         /* RPC version */
                uint8 rpc_vers_minor;   /* Minor version */
        typedef [public] struct {
                uint8 rpc_vers;         /* RPC version */
                uint8 rpc_vers_minor;   /* Minor version */
index c82d8d67ab4c4db4b028cd841544ccaea2b58f33..f02bdb2a23550e020a1af255a9214a293a7fe21f 100644 (file)
@@ -68,7 +68,7 @@ void dcerpc_pipe_close(struct dcerpc_pipe *p)
    decode */
 void dcerpc_set_frag_length(DATA_BLOB *blob, uint16 v)
 {
    decode */
 void dcerpc_set_frag_length(DATA_BLOB *blob, uint16 v)
 {
-       if (CVAL(blob->data,DCERPC_DREP_OFFSET) & 0x10) {
+       if (CVAL(blob->data,DCERPC_DREP_OFFSET) & DCERPC_DREP_LE) {
                SSVAL(blob->data, DCERPC_FRAG_LEN_OFFSET, v);
        } else {
                RSSVAL(blob->data, DCERPC_FRAG_LEN_OFFSET, v);
                SSVAL(blob->data, DCERPC_FRAG_LEN_OFFSET, v);
        } else {
                RSSVAL(blob->data, DCERPC_FRAG_LEN_OFFSET, v);
@@ -77,7 +77,7 @@ void dcerpc_set_frag_length(DATA_BLOB *blob, uint16 v)
 
 uint16 dcerpc_get_frag_length(DATA_BLOB *blob)
 {
 
 uint16 dcerpc_get_frag_length(DATA_BLOB *blob)
 {
-       if (CVAL(blob->data,DCERPC_DREP_OFFSET) & 0x10) {
+       if (CVAL(blob->data,DCERPC_DREP_OFFSET) & DCERPC_DREP_LE) {
                return SVAL(blob->data, DCERPC_FRAG_LEN_OFFSET);
        } else {
                return RSVAL(blob->data, DCERPC_FRAG_LEN_OFFSET);
                return SVAL(blob->data, DCERPC_FRAG_LEN_OFFSET);
        } else {
                return RSVAL(blob->data, DCERPC_FRAG_LEN_OFFSET);
@@ -86,7 +86,7 @@ uint16 dcerpc_get_frag_length(DATA_BLOB *blob)
 
 void dcerpc_set_auth_length(DATA_BLOB *blob, uint16 v)
 {
 
 void dcerpc_set_auth_length(DATA_BLOB *blob, uint16 v)
 {
-       if (CVAL(blob->data,DCERPC_DREP_OFFSET) & 0x10) {
+       if (CVAL(blob->data,DCERPC_DREP_OFFSET) & DCERPC_DREP_LE) {
                SSVAL(blob->data, DCERPC_AUTH_LEN_OFFSET, v);
        } else {
                RSSVAL(blob->data, DCERPC_AUTH_LEN_OFFSET, v);
                SSVAL(blob->data, DCERPC_AUTH_LEN_OFFSET, v);
        } else {
                RSSVAL(blob->data, DCERPC_AUTH_LEN_OFFSET, v);
@@ -108,7 +108,7 @@ static NTSTATUS dcerpc_pull(DATA_BLOB *blob, TALLOC_CTX *mem_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
                return NT_STATUS_NO_MEMORY;
        }
 
-       if (! (CVAL(blob, DCERPC_DREP_OFFSET) & 0x10)) {
+       if (! (CVAL(blob, DCERPC_DREP_OFFSET) & DCERPC_DREP_LE)) {
                ndr->flags |= DCERPC_PULL_BIGENDIAN;
        }
 
                ndr->flags |= DCERPC_PULL_BIGENDIAN;
        }
 
@@ -137,7 +137,7 @@ static NTSTATUS dcerpc_pull_request_sign(struct dcerpc_pipe *p,
                return NT_STATUS_NO_MEMORY;
        }
 
                return NT_STATUS_NO_MEMORY;
        }
 
-       if (! (CVAL(blob, DCERPC_DREP_OFFSET) & 0x10)) {
+       if (! (CVAL(blob, DCERPC_DREP_OFFSET) & DCERPC_DREP_LE)) {
                ndr->flags |= DCERPC_PULL_BIGENDIAN;
        }
 
                ndr->flags |= DCERPC_PULL_BIGENDIAN;
        }
 
@@ -169,7 +169,7 @@ static NTSTATUS dcerpc_pull_request_sign(struct dcerpc_pipe *p,
                return NT_STATUS_NO_MEMORY;
        }
 
                return NT_STATUS_NO_MEMORY;
        }
 
-       if (! (CVAL(blob, DCERPC_DREP_OFFSET) & 0x10)) {
+       if (! (CVAL(blob, DCERPC_DREP_OFFSET) & DCERPC_DREP_LE)) {
                ndr->flags |= DCERPC_PULL_BIGENDIAN;
        }
 
                ndr->flags |= DCERPC_PULL_BIGENDIAN;
        }
 
@@ -306,7 +306,7 @@ static void init_dcerpc_hdr(struct dcerpc_pipe *p, struct dcerpc_packet *pkt)
        if (p->flags & DCERPC_PUSH_BIGENDIAN) {
                pkt->drep[0] = 0;
        } else {
        if (p->flags & DCERPC_PUSH_BIGENDIAN) {
                pkt->drep[0] = 0;
        } else {
-               pkt->drep[0] = 0x10;
+               pkt->drep[0] = DCERPC_DREP_LE;
        }
        pkt->drep[1] = 0;
        pkt->drep[2] = 0;
        }
        pkt->drep[1] = 0;
        pkt->drep[2] = 0;
@@ -599,7 +599,7 @@ NTSTATUS dcerpc_request(struct dcerpc_pipe *p,
                *stub_data_out = payload;
        }
 
                *stub_data_out = payload;
        }
 
-       if (!(pkt.drep[0] & 0x10)) {
+       if (!(pkt.drep[0] & DCERPC_DREP_LE)) {
                p->flags |= DCERPC_PULL_BIGENDIAN;
        } else {
                p->flags &= ~DCERPC_PULL_BIGENDIAN;
                p->flags |= DCERPC_PULL_BIGENDIAN;
        } else {
                p->flags &= ~DCERPC_PULL_BIGENDIAN;