|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T g
Length: 2379 (0x94b)
Types: TextFile
Names: »getedb.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z«
└─⟦de7628f85⟧
└─⟦this⟧ »isode-6.0/dsap/net/getedb.c«
/* getedb - quipu added operation */
#ifndef lint
static char *rcsid = "$Header: /f/osi/dsap/net/RCS/getedb.c,v 7.1 89/12/19 16:19:35 mrose Exp $";
#endif
/*
* $Header: /f/osi/dsap/net/RCS/getedb.c,v 7.1 89/12/19 16:19:35 mrose Exp $
*
*
* $Log: getedb.c,v $
* Revision 7.1 89/12/19 16:19:35 mrose
* sync
*
* Revision 7.0 89/11/23 21:48:20 mrose
* Release 6.0
*
*/
/*
* NOTICE
*
* Acquisition, use, and distribution of this module and related
* materials are subject to the restrictions of a license agreement.
* Consult the Preface in the User's Manual for the full terms of
* this agreement.
*
*/
/* LINTLIBRARY */
#include "rosap.h"
#include "quipu/util.h"
#include "quipu/connection.h"
getedb (arg, error, result, ad)
struct getedb_arg *arg;
struct getedb_result *result;
struct DSError *error;
int ad;
{
#ifdef REMOVE_FOR_6_0
PE rda_pe;
PE resp_pe;
int resp_type;
int inv_ret;
int id = 1;
if(encode_Quipu_GetEntryDataBlockArgument(&rda_pe,1,NULLIP,NULLVP,arg) != OK)
{
return(DS_ERROR_LOCAL);
}
switch(inv_ret = dap_invoke (ad,&id,OP_GETEDB, rda_pe, &resp_type, &resp_pe))
{
case DS_OK:
if(decode_Quipu_GetEntryDataBlockResult(resp_pe,1,NULLIP,NULLCP,result) == OK) {
if(resp_pe != NULLPE)
pe_free (resp_pe);
return(DS_OK);
} else {
if(resp_pe != NULLPE)
pe_free (resp_pe);
return(DS_ERROR_PROVIDER);
}
case DS_ERROR_REMOTE:
if(decode_OPError(resp_pe, resp_type, error) == OK)
{
if(resp_pe != NULLPE)
pe_free(resp_pe);
return(DS_ERROR_REMOTE);
}
else
{
if(resp_pe != NULLPE)
pe_free(resp_pe);
return(DS_ERROR_PROVIDER);
}
case DS_ERROR_ABANDONED:
/* RoIntr caused successful abandon */
error->dse_type = DSE_INTR_ABANDONED;
return(DS_ERROR_ABANDONED);
case DS_ERROR_ABANDON_FAILED:
/* RoIntr caused unsuccessful abandon */
error->dse_type = DSE_INTR_ABANDON_FAILED;
return(DS_ERROR_ABANDON_FAILED);
case DS_ERROR_PROVIDER:
if (resp_type == ROS_INTERRUPTED) {
error->dse_type = DSE_INTRERROR;
return (inv_ret);
}
/* fall */
default:
error->dse_type = DSE_REMOTEERROR;
return(inv_ret);
}
#else
extern LLog * log_dsap;
LLOG (log_dsap,LLOG_EXCEPTIONS,("*** DAP getedb call***"));
#endif
}