YAZ only offers HTTP as transport carrier for SOAP, but it is relatively easy to change that.
The following definition of Z_GDU
(Generic Data
Unit) allows for both HTTP and Z39.50 in one packet.
#include <yaz/zgdu.h> #define Z_GDU_Z3950 1 #define Z_GDU_HTTP_Request 2 #define Z_GDU_HTTP_Response 3 typedef struct { int which; union { Z_APDU *z3950; Z_HTTP_Request *HTTP_Request; Z_HTTP_Response *HTTP_Response; } u; } Z_GDU ;
The corresponding Z_GDU encoder/decoder is z_GDU
.
The z3950
is any of the known BER encoded Z39.50
APDUs.
HTTP_Request
and HTTP_Response
is the HTTP Request and Response respectively.