+ else
+ {
+ Z_SRW_PDU *res = yaz_srw_get(o, Z_SRW_explain_response);
+ Z_SRW_PDU *sr = yaz_srw_get(o, Z_SRW_explain_request);
+
+ srw_bend_explain(assoc, req, sr->u.explain_request,
+ res->u.explain_response);
+
+ if (res->u.explain_response->explainData_buf)
+ {
+ soap_package = odr_malloc(o, sizeof(*soap_package));
+ soap_package->which = Z_SOAP_generic;
+
+ soap_package->u.generic =
+ odr_malloc(o, sizeof(*soap_package->u.generic));
+
+ soap_package->u.generic->p = res;
+ soap_package->u.generic->ns = soap_handlers[0].ns;
+ soap_package->u.generic->no = 0;
+
+ soap_package->ns = "SRU";
+
+ p = z_get_HTTP_Response(o, 200);
+ hres = p->u.HTTP_Response;
+
+ ret = z_soap_codec_enc(assoc->encode, &soap_package,
+ &hres->content_buf, &hres->content_len,
+ soap_handlers, charset);
+ if (!charset)
+ z_HTTP_header_add(o, &hres->headers, "Content-Type", "text/xml");
+ else
+ {
+ char ctype[60];
+ strcpy(ctype, "text/xml; charset=");
+ strcat(ctype, charset);
+ z_HTTP_header_add(o, &hres->headers, "Content-Type",
+ ctype);
+ }
+ }
+ }
+#endif