X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=ztest%2Fztest.c;h=645ebd8e949756e2ac73ba327d422b7f9c70a4a7;hb=5754b092c42f45eeac52fb1223e51e2a11c92653;hp=45ae5b3820519f68aad39fc4c21834d94ed7ff35;hpb=1728b7ac3f56d5dee9983d55a928a5609f811abd;p=yaz-moved-to-github.git diff --git a/ztest/ztest.c b/ztest/ztest.c index 45ae5b3..645ebd8 100644 --- a/ztest/ztest.c +++ b/ztest/ztest.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2002, Index Data. * See the file LICENSE for details. * - * $Id: ztest.c,v 1.47 2002-01-17 21:04:24 adam Exp $ + * $Id: ztest.c,v 1.50 2002-01-23 22:40:36 adam Exp $ */ /* @@ -74,9 +74,7 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr) { Z_ItemOrder *it = rr->esr->taskSpecificParameters->u.itemOrder; yaz_log (LOG_LOG, "Received ItemOrder"); - switch (it->which) - { - case Z_IOItemOrder_esRequest: + if (it->which == Z_IOItemOrder_esRequest) { Z_IORequest *ir = it->u.esRequest; Z_IOOriginPartToKeep *k = ir->toKeep; @@ -135,12 +133,6 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr) "Couldn't decode ItemRequest %s near %d", odr_errmsg(odr_geterror(rr->decode)), odr_offset(rr->decode)); -#if 0 - yaz_log(LOG_LOG, "PDU dump:"); - odr_dumpBER(yaz_log_file(), - r->u.single_ASN1_type->buf, - r->u.single_ASN1_type->len); -#endif } else yaz_log(LOG_LOG, "Decode ItemRequest OK"); @@ -187,8 +179,54 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr) } } #endif - } - break; + if (k) + { + + Z_External *ext = (Z_External *) + odr_malloc (rr->stream, sizeof(*ext)); + Z_IUOriginPartToKeep *keep = (Z_IUOriginPartToKeep *) + odr_malloc (rr->stream, sizeof(*keep)); + Z_IOTargetPart *targetPart = (Z_IOTargetPart *) + odr_malloc (rr->stream, sizeof(*targetPart)); + + rr->taskPackage = (Z_TaskPackage *) + odr_malloc (rr->stream, sizeof(*rr->taskPackage)); + rr->taskPackage->packageType = + odr_oiddup (rr->stream, rr->esr->packageType); + rr->taskPackage->packageName = 0; + rr->taskPackage->userId = 0; + rr->taskPackage->retentionTime = 0; + rr->taskPackage->permissions = 0; + rr->taskPackage->description = 0; + rr->taskPackage->targetReference = (Odr_oct *) + odr_malloc (rr->stream, sizeof(Odr_oct)); + rr->taskPackage->targetReference->buf = + (unsigned char *) odr_strdup (rr->stream, "911"); + rr->taskPackage->targetReference->len = + rr->taskPackage->targetReference->size = + strlen((char *) (rr->taskPackage->targetReference->buf)); + rr->taskPackage->creationDateTime = 0; + rr->taskPackage->taskStatus = odr_intdup(rr->stream, 0); + rr->taskPackage->packageDiagnostics = 0; + rr->taskPackage->taskSpecificParameters = ext; + + ext->direct_reference = + odr_oiddup (rr->stream, rr->esr->packageType); + ext->indirect_reference = 0; + ext->descriptor = 0; + ext->which = Z_External_itemOrder; + ext->u.itemOrder = (Z_ItemOrder *) + odr_malloc (rr->stream, sizeof(*ext->u.update)); + ext->u.itemOrder->which = Z_IOItemOrder_taskPackage; + ext->u.itemOrder->u.taskPackage = (Z_IOTaskPackage *) + odr_malloc (rr->stream, sizeof(Z_IOTaskPackage)); + ext->u.itemOrder->u.taskPackage->originPart = k; + ext->u.itemOrder->u.taskPackage->targetPart = targetPart; + + targetPart->itemRequest = 0; + targetPart->statusOrErrorReport = 0; + targetPart->auxiliaryStatus = 0; + } } } else if (rr->esr->taskSpecificParameters->which == Z_External_update) @@ -244,6 +282,7 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr) odr_malloc (rr->stream, sizeof(*keep)); Z_IUTargetPart *targetPart = (Z_IUTargetPart *) odr_malloc (rr->stream, sizeof(*targetPart)); + rr->taskPackage = (Z_TaskPackage *) odr_malloc (rr->stream, sizeof(*rr->taskPackage)); rr->taskPackage->packageType = @@ -289,10 +328,29 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr) targetPart->updateStatus = odr_intdup (rr->stream, 1); targetPart->num_globalDiagnostics = 0; targetPart->globalDiagnostics = (Z_DiagRec **) odr_nullval(); - targetPart->num_taskPackageRecords = 0; - targetPart->taskPackageRecords = - (Z_IUTaskPackageRecordStructure **) odr_nullval(); - } + targetPart->num_taskPackageRecords = 1; + targetPart->taskPackageRecords = + (Z_IUTaskPackageRecordStructure **) + odr_malloc (rr->stream, + sizeof(Z_IUTaskPackageRecordStructure *)); + targetPart->taskPackageRecords[0] = + (Z_IUTaskPackageRecordStructure *) + odr_malloc (rr->stream, + sizeof(Z_IUTaskPackageRecordStructure)); + + targetPart->taskPackageRecords[0]->which = + Z_IUTaskPackageRecordStructure_record; + targetPart->taskPackageRecords[0]->u.record = + z_ext_record (rr->stream, VAL_SUTRS, "test", 4); + targetPart->taskPackageRecords[0]->correlationInfo = 0; + targetPart->taskPackageRecords[0]->recordStatus = + odr_intdup (rr->stream, + Z_IUTaskPackageRecordStructure_success); + targetPart->taskPackageRecords[0]->num_supplementalDiagnostics + = 0; + + targetPart->taskPackageRecords[0]->supplementalDiagnostics = 0; + } if (notToKeep) { int i; @@ -446,7 +504,7 @@ int ztest_fetch(void *handle, bend_fetch_rr *r) char *cp; r->errstring = 0; r->last_in_set = 0; - r->basename = "DUMMY"; + r->basename = "Default"; r->output_format = r->request_format; if (r->request_format == VAL_SUTRS) { @@ -476,6 +534,33 @@ int ztest_fetch(void *handle, bend_fetch_rr *r) return 0; } } + else if (r->request_format == VAL_POSTSCRIPT) + { + char fname[20]; + FILE *f; + long size; + + sprintf (fname, "part.%d.ps", r->number); + f = fopen(fname, "rb"); + if (!f) + { + r->errcode = 13; + return 0; + } + fseek (f, 0L, SEEK_END); + size = ftell (f); + if (size <= 0 || size >= 5000000) + { + r->errcode = 14; + return 0; + } + fseek (f, 0L, SEEK_SET); + r->record = odr_malloc (r->stream, size); + r->len = size; + r->output_format = VAL_POSTSCRIPT; + fread (r->record, size, 1, f); + fclose (f); + } else if ((cp = dummy_database_record(r->number, r->stream))) { r->len = strlen(cp);