Using odr_create_Odr_oct
authorAdam Dickmeiss <adam@indexdata.dk>
Sun, 19 Feb 2006 18:36:10 +0000 (18:36 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Sun, 19 Feb 2006 18:36:10 +0000 (18:36 +0000)
src/zoom-c.c

index cd13a01..6b90468 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-2005, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: zoom-c.c,v 1.62 2005-12-21 16:41:36 mike Exp $
+ * $Id: zoom-c.c,v 1.63 2006-02-19 18:36:10 adam Exp $
  */
 /**
  * \file zoom-c.c
@@ -1129,7 +1129,7 @@ static zoom_ret ZOOM_connection_send_init (ZOOM_connection c)
         ZOOM_options_get(c->options, "implementationName"),
         odr_prepend(c->odr_out, "ZOOM-C", ireq->implementationName));
 
-    version = odr_strdup(c->odr_out, "$Revision: 1.62 $");
+    version = odr_strdup(c->odr_out, "$Revision: 1.63 $");
     if (strlen(version) > 10)   /* check for unexpanded CVS strings */
         version[strlen(version)-2] = '\0';
     ireq->implementationVersion = odr_prepend(c->odr_out,
@@ -2715,13 +2715,10 @@ static Z_External *encode_ill_request (ZOOM_package p)
         r->descriptor = 0;
         r->which = Z_External_single;
                 
-        r->u.single_ASN1_type = (Odr_oct *)
-            odr_malloc (out, sizeof(*r->u.single_ASN1_type));
-        r->u.single_ASN1_type->buf = (unsigned char*)
-            odr_malloc (out, illRequest_size);
-        r->u.single_ASN1_type->len = illRequest_size;
-        r->u.single_ASN1_type->size = illRequest_size;
-        memcpy (r->u.single_ASN1_type->buf, illRequest_buf, illRequest_size);
+        r->u.single_ASN1_type =
+            odr_create_Odr_oct(out,
+                               (unsigned char *)illRequest_buf,
+                               illRequest_size);
     }
     return r;
 }
@@ -2843,20 +2840,18 @@ static Z_APDU *create_xmlupdate_package(ZOOM_package p)
     Z_External *ext = (Z_External *) odr_malloc(p->odr_out, sizeof(*ext));
     const char *doc = ZOOM_options_get(p->options, "doc");
 
+    if (!doc)
+        doc = "";
+
     req->taskSpecificParameters = ext;
     ext->direct_reference = req->packageType;
     ext->descriptor = 0;
     ext->indirect_reference = 0;
     
     ext->which = Z_External_octet;
-    ext->u.single_ASN1_type = (Odr_oct *)
-        odr_malloc (p->odr_out, sizeof(Odr_oct));
-
-    if (!doc)
-        doc = "";
-    ext->u.single_ASN1_type->buf = (unsigned char*)
-        odr_strdup(p->odr_out, doc);
-    ext->u.single_ASN1_type->size = ext->u.single_ASN1_type->len = strlen(doc);
+    ext->u.single_ASN1_type =
+        odr_create_Odr_oct(p->odr_out, (const unsigned char *) doc,
+                           strlen(doc));
     return apdu;
 }
 
@@ -2946,12 +2941,10 @@ static Z_APDU *create_update_package(ZOOM_package p)
         notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_opaque;
         if (recordIdOpaque)
         {
-            notToKeep->elements[0]->u.opaque = (Odr_oct *)
-                odr_malloc (p->odr_out, sizeof(Odr_oct));
-            notToKeep->elements[0]->u.opaque->size =
-                notToKeep->elements[0]->u.opaque->len = strlen(recordIdOpaque);
-            notToKeep->elements[0]->u.opaque->buf = (unsigned char*)
-                odr_strdup(p->odr_out, recordIdOpaque);
+            notToKeep->elements[0]->u.opaque = 
+                odr_create_Odr_oct(p->odr_out,
+                                   (const unsigned char *) recordIdOpaque,
+                                   strlen(recordIdOpaque));
         }
         else if (recordIdNumber)
         {
@@ -3424,6 +3417,7 @@ static void handle_srw_response(ZOOM_connection c,
         npr->u.databaseRecord->direct_reference =
             yaz_oidval_to_z3950oid(c->odr_in, CLASS_RECSYN, VAL_TEXT_XML);
         npr->u.databaseRecord->which = Z_External_octet;
+
         npr->u.databaseRecord->u.octet_aligned = (Odr_oct *)
             odr_malloc(c->odr_in, sizeof(Odr_oct));
         npr->u.databaseRecord->u.octet_aligned->buf = (unsigned char*)