Better Z39.50 search/present handling
[yaz-moved-to-github.git] / src / prt-ext.c
index b41b6a9..9fd35c2 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data
+ * Copyright (C) Index Data
  * See the file LICENSE for details.
  */
 /**
@@ -13,6 +13,7 @@
 #include <yaz/proto.h>
 
 #include <yaz/oid_db.h>
+#include "odr-priv.h"
 #define PRT_EXT_DEBUG 0
 
 #if PRT_EXT_DEBUG
@@ -227,13 +228,13 @@ int z_External(ODR o, Z_External **p, int opt, const char *name)
                 return 0;
 
             /* Save our decoding ODR members */
-            o_bp = o->bp;
-            o_buf = o->buf;
-            o_size = o->size;
+            o_bp = o->op->bp;
+            o_buf = o->op->buf;
+            o_size = o->op->size;
 
             /* Set up the OCTET STRING buffer */
-            o->bp = o->buf = oct->buf;
-            o->size = oct->len;
+            o->op->bp = o->op->buf = oct->buf;
+            o->op->size = oct->len;
 
             /* and decode that */
             r = (*type->fun)(o, &voidp, 0, 0);
@@ -241,9 +242,9 @@ int z_External(ODR o, Z_External **p, int opt, const char *name)
             (*p)->u.single_ASN1_type = (Odr_any*) voidp;
 
             /* Restore our decoding ODR member */
-            o->bp = o_bp;
-            o->buf = o_buf;
-            o->size = o_size;
+            o->op->bp = o_bp;
+            o->op->buf = o_buf;
+            o->op->size = o_size;
 
             return r && odr_sequence_end(o);
         }
@@ -317,9 +318,6 @@ Z_External *z_ext_record_oid_nmem(NMEM nmem, const Odr_oid *oid,
         thisext->u.sutrs = sutrs;
         sutrs->buf = (char *)nmem_malloc(nmem, len);
         sutrs->len = len;
-#if OCT_SIZE
-        sutrs->size = len;
-#endif
         memcpy(sutrs->buf, buf, len);
     }
     else
@@ -333,9 +331,6 @@ Z_External *z_ext_record_oid_nmem(NMEM nmem, const Odr_oid *oid,
             return 0;
         memcpy(thisext->u.octet_aligned->buf, buf, len);
         thisext->u.octet_aligned->len = len;
-#if OCT_SIZE
-        thisext->u.octet_aligned->size = len;
-#endif
     }
     return thisext;
 }
@@ -367,9 +362,6 @@ Z_External *z_ext_record_oid_any(ODR o, const Odr_oid *oid,
         return 0;
     memcpy(thisext->u.single_ASN1_type->buf, buf, len);
     thisext->u.single_ASN1_type->len = len;
-#if OCT_SIZE
-    thisext->u.single_ASN1_type->size = len;
-#endif
     return thisext;
 }