* Sebastian Hammer, Adam Dickmeiss
*
* $Log: seshigh.c,v $
- * Revision 1.2 1995-03-16 13:29:01 quinn
+ * Revision 1.6 1995-03-21 12:30:09 quinn
+ * Beginning to add support for record packing.
+ *
+ * Revision 1.5 1995/03/17 10:44:13 quinn
+ * Added catch of null-string in makediagrec
+ *
+ * Revision 1.4 1995/03/17 10:18:08 quinn
+ * Added memory management.
+ *
+ * Revision 1.3 1995/03/16 17:42:39 quinn
+ * Little changes
+ *
+ * Revision 1.2 1995/03/16 13:29:01 quinn
* Partitioned server.
*
* Revision 1.1 1995/03/15 16:02:10 quinn
odr_destroy(h->decode);
odr_destroy(h->encode);
free(h->encode_buffer);
+ if (h->input_buffer)
+ free(h->input_buffer);
free(h);
}
assoc->input_apdu_len = res;
if (process_apdu(h) < 0)
{
- fprintf(stderr, "Bad data from peer\n");
+ fprintf(stderr, "Operation failed\n");
cs_close(conn);
destroy_association(assoc);
iochan_destroy(h);
fprintf(stderr, "Bad APDU\n");
return -1;
}
+ odr_reset(assoc->decode);
return res;
}
resp.result = &result;
resp.implementationId = "YAZ";
resp.implementationName = "YAZ/Simple asynchronous test server";
- resp.implementationVersion = "$Revision: 1.2 $";
+ resp.implementationVersion = "$Revision: 1.6 $";
resp.userInformationField = 0;
if (!z_APDU(assoc->encode, &apdup, 0))
{
return -1;
}
odr_getbuf(assoc->encode, &assoc->encoded_len);
+ odr_reset(assoc->encode);
iochan_setflags(client, EVENT_OUTPUT | EVENT_EXCEPT);
return 0;
}
rec.u.nonSurrogateDiagnostic = &dr;
dr.diagnosticSetId = bib1;
dr.condition = &err;
- dr.addinfo = addinfo;
+ dr.addinfo = addinfo ? addinfo : "";
return &rec;
}
+static Z_NamePlusRecord *surrogatediagrec(char *dbname, int error,
+ char *addinfo)
+{
+ static Z_NamePlusRecord rec;
+ static Z_DiagRec dr;
+ static Odr_oid bib1[] = { 1, 2, 3, 4, 5, -1 };
+ static int err;
+
+ fprintf(stderr, "SurrogateDiagnotic: %d -- %s\n", error, addinfo);
+ rec.databaseName = dbname;
+ rec.which = Z_NamePlusRecord_surrogateDiagnostic;
+ rec.u.surrogateDiagnostic = &dr;
+ dr.diagnosticSetId = bib1;
+ dr.condition = &err;
+ dr.addinfo = addinfo ? addinfo : "";
+ return &rec;
+}
+
+static Z_Records *pack_records(association *a, int num, Z_ElementSetNames *esn)
+{
+}
+
static int process_searchRequest(IOCHAN client, Z_SearchRequest *req)
{
Z_APDU apdu, *apdup;
return -1;
}
odr_getbuf(assoc->encode, &assoc->encoded_len);
+ odr_reset(assoc->encode);
iochan_setflags(client, EVENT_OUTPUT | EVENT_EXCEPT);
return 0;
}
return -1;
}
odr_getbuf(assoc->encode, &assoc->encoded_len);
+ odr_reset(assoc->encode);
iochan_setflags(client, EVENT_OUTPUT | EVENT_EXCEPT);
return 0;
}