libmapiserver_push_property now takes an additional parameter specifying whether...
authorwsourdeau <wsourdeau@71d39326-ef09-db11-b2a4-00e04c779ad1>
Mon, 10 Jan 2011 18:52:11 +0000 (18:52 +0000)
committerwsourdeau <wsourdeau@71d39326-ef09-db11-b2a4-00e04c779ad1>
Mon, 10 Jan 2011 18:52:11 +0000 (18:52 +0000)
git-svn-id: https://svn.openchange.org/openchange@2508 71d39326-ef09-db11-b2a4-00e04c779ad1

branches/sogo/mapiproxy/libmapiserver/libmapiserver.h
branches/sogo/mapiproxy/libmapiserver/libmapiserver_oxcprpt.c

index 75540c5359ddf1b0a38e54ae0dd9d43c9521f91d..7ce526db34c6953ba172a845a11aa5599bddcc03 100644 (file)
@@ -377,7 +377,7 @@ uint16_t libmapiserver_RopReadStream_size(struct EcDoRpc_MAPI_REPL *);
 uint16_t libmapiserver_RopWriteStream_size(struct EcDoRpc_MAPI_REPL *);
 uint16_t libmapiserver_RopGetStreamSize_size(struct EcDoRpc_MAPI_REPL *);
 uint16_t libmapiserver_RopGetPropertyIdsFromNames_size(struct EcDoRpc_MAPI_REPL *);
-int libmapiserver_push_property(TALLOC_CTX *, struct smb_iconv_convenience *, uint32_t, const void *, DATA_BLOB *, uint8_t, uint8_t);
+int libmapiserver_push_property(TALLOC_CTX *, struct smb_iconv_convenience *, uint32_t, const void *, DATA_BLOB *, uint8_t, uint8_t, uint8_t);
 struct SRow *libmapiserver_ROP_request_to_properties(TALLOC_CTX *, void *, uint8_t);
 
 /* definitions from libmapiserver_oxcstor.c */
index 40a7dc888216bd805034ad9e47505f45b222b945..92f9e94e69a33d02b9ac7475d2ba0585dc283093 100644 (file)
@@ -243,7 +243,8 @@ _PUBLIC_ int libmapiserver_push_property(TALLOC_CTX *mem_ctx,
                                         const void *value, 
                                         DATA_BLOB *blob,
                                         uint8_t layout, 
-                                        uint8_t flagged)
+                                        uint8_t flagged,
+                                        uint8_t untyped)
 {
        struct ndr_push         *ndr;
        
@@ -256,7 +257,12 @@ _PUBLIC_ int libmapiserver_push_property(TALLOC_CTX *mem_ctx,
                ndr->offset = blob->length;
        }
 
-       /* Step 1. Is the property flagged */
+       /* Step 1. Is the property typed */
+       if (untyped) {
+               ndr_push_uint16(ndr, NDR_SCALARS, property & 0xFFFF);
+       }
+
+       /* Step 2. Is the property flagged */
        if (flagged) {
                switch (property & 0xFFFF) {
                case PT_ERROR:
@@ -274,7 +280,7 @@ _PUBLIC_ int libmapiserver_push_property(TALLOC_CTX *mem_ctx,
                        break;
                }
        } else {
-               /* Step 2. Set the layout */
+               /* Step 3. Set the layout */
                if (layout) {
                        switch (property & 0xFFFF) {
                        case PT_ERROR:
@@ -286,7 +292,7 @@ _PUBLIC_ int libmapiserver_push_property(TALLOC_CTX *mem_ctx,
                }
        }
 
-       /* Step 2. Push property data if supported */
+       /* Step 3. Push property data if supported */
        switch (property & 0xFFFF) {
        case PT_I2:
                ndr_push_uint16(ndr, NDR_SCALARS, *(uint16_t *) value);
@@ -326,7 +332,7 @@ _PUBLIC_ int libmapiserver_push_property(TALLOC_CTX *mem_ctx,
                break;
        }
 end:
-       /* Step 3. Steal ndr context */
+       /* Step 4. Steal ndr context */
        blob->data = ndr->data;
        talloc_steal(mem_ctx, blob->data);
        blob->length = ndr->offset;