+ const char *element = 0;
+ int r = z_GDU(m_odr_out, &apdu, 0, 0);
+
+ if (!r) // decoding failed. Get the failed element
+ element = odr_getelement(m_odr_out);
+
+ if (m_APDU_yazlog || !r)
+ {
+ if (!r)
+ yaz_log (LOG_LOG, "PDU encode failed. Element %s",
+ element ? element : "unknown");
+ FILE *save = m_APDU_file;
+ FILE *yazf = yaz_log_file();
+ odr_setprint(m_odr_print, yazf); // use YAZ log FILE
+ z_GDU(m_odr_print, &apdu, 0, "encode");
+ m_APDU_file = save;
+ odr_setprint(m_odr_print, save);
+ }