- Z_External *x, *x2;
- oident oid;
- Z_OtherInformation *u;
- Z_OtherInformationUnit *l;
- Z_DiagnosticFormat *d;
- Z_DiagnosticFormat_s *e;
-
- x = (Z_External*) odr_malloc(odr, sizeof *x);
- x->descriptor = 0;
- x->indirect_reference = 0;
- oid.proto = PROTO_Z3950;
- oid.oclass = CLASS_USERINFO;
- oid.value = VAL_USERINFO1;
- x->direct_reference = odr_oiddup(odr, oid_getoidbyent(&oid));
- x->which = Z_External_userInfo1;
-
- u = odr_malloc(odr, sizeof *u);
- x->u.userInfo1 = u;
- u->num_elements = 1;
- u->list = (Z_OtherInformationUnit**) odr_malloc(odr, sizeof *u->list);
- u->list[0] = (Z_OtherInformationUnit*) odr_malloc(odr, sizeof *u->list[0]);
- l = u->list[0];
- l->category = 0;
- l->which = Z_OtherInfo_externallyDefinedInfo;
-
- x2 = (Z_External*) odr_malloc(odr, sizeof *x);
- l->information.externallyDefinedInfo = x2;
- x2->descriptor = 0;
- x2->indirect_reference = 0;
- oid.oclass = CLASS_DIAGSET;
- oid.value = VAL_DIAG1;
- x2->direct_reference = odr_oiddup(odr, oid_getoidbyent(&oid));
- x2->which = Z_External_diag1;
-
- d = (Z_DiagnosticFormat*) odr_malloc(odr, sizeof *d);
- x2->u.diag1 = d;
- d->num = 1;
- d->elements = (Z_DiagnosticFormat_s**) odr_malloc (odr, sizeof *d->elements);
- d->elements[0] = (Z_DiagnosticFormat_s*) odr_malloc (odr, sizeof *d->elements[0]);
- e = d->elements[0];
-
- e->which = Z_DiagnosticFormat_s_defaultDiagRec;
- e->u.defaultDiagRec = justdiag(odr, error, addinfo);
- e->message = 0;
- return x;
+ yaz_log(log_requestdetail, "[%d] %s%s%s", error, diagbib1_str(error),
+ addinfo ? " -- " : "", addinfo ? addinfo : "");
+ return zget_init_diagnostics(odr, error, addinfo);