+
+ yaz_cookies_destroy(c->cookies);
+ c->cookies = yaz_cookies_create();
+
+ if (ZOOM_memcached_configure(c))
+ {
+ ZOOM_connection_remove_tasks(c);
+ return;
+ }
+ if (c->sru_mode == zoom_sru_error)
+ {
+ ZOOM_set_error(c, ZOOM_ERROR_UNSUPPORTED_PROTOCOL, val);
+ ZOOM_connection_remove_tasks(c);
+ return;
+ }
+
+ if (c->odr_print)
+ odr_destroy(c->odr_print);
+ c->odr_print = 0;
+ val = ZOOM_options_get(c->options, "apdufile");
+ if (val)
+ {
+ c->odr_print = odr_createmem(ODR_PRINT);
+ if (strcmp(val, "-"))
+ {
+ FILE *f = fopen(val, "a");
+ if (!f)
+ {
+ WRBUF w = wrbuf_alloc();
+ wrbuf_printf(w, "fopen: %s", val);
+ ZOOM_set_error(c, ZOOM_ERROR_INTERNAL, wrbuf_cstr(w));
+ wrbuf_destroy(w);
+ return;
+ }
+ odr_setprint(c->odr_print, f);
+ }
+ }
+ else if (ZOOM_options_get_bool(c->options, "apdulog", 0))
+ {
+ c->odr_print = odr_createmem(ODR_PRINT);
+ odr_setprint_noclose(c->odr_print, yaz_log_file());
+ }
+