/* isoservent.c - look-up ISODE services */
static char *rcsid
= "$Header: /f/osi/compat/RCS/isoservent.c,v 7.2 91/02/22 09:15:23 mrose Interim $";
* $Header: /f/osi/compat/RCS/isoservent.c,v 7.2 91/02/22 09:15:23 mrose Interim $
* Revision 7.2 91/02/22 09:15:23 mrose
* Revision 7.1 90/12/23 18:39:36 mrose
* Revision 7.0 89/11/23 21:23:11 mrose
* 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
static char *isoservices
= "isoservices";
static FILE *servf
= NULL
;
static struct isoservent iss
;
servf
= fopen (isodefile (isoservices
, 0), "r");
if (servf
&& !stayopen
) {
struct isoservent
*getisoservent () {
register struct isoservent
*is
= &iss
;
static char buffer
[BUFSIZ
+ 1],
static char *vec
[NVEC
+ NSLACK
+ 1];
&& (servf
= fopen (isodefile (isoservices
, 0), "r")) == NULL
)
bzero ((char *) is
, sizeof *is
);
while (fgets (buffer
, sizeof buffer
, servf
) != NULL
) {
if (cp
= index (buffer
, '\n'))
if ((vecp
= str2vecX (buffer
, vec
, 1 + 1, &mask
, NULL
, 1)) < 3)
if ((cp
= index (vec
[0], '/')) == NULL
)
is
-> is_provider
= vec
[0];
is
-> is_selectlen
= str2sel (vec
[1], (mask
& (1 << 1)) ? 1 : 0,
is
-> is_selector
, ISSIZE
);
is
-> is_tail
= vec
+ vecp
;
if (strcmp (cp
= is
-> is_vec
[0], "tsapd-bootstrap"))
(void) strcpy (is
-> is_vec
[0] = file
, isodefile (cp
, 1));
register struct isoservent
*is
;
register int n
= is
-> is_tail
- is
-> is_vec
- 1;
register char **ap
= is
-> is_vec
;
LLOG (addr_log
, LLOG_DEBUG
,
("\tENT: \"%s\" PRV: \"%s\" SEL: %s",
is
-> is_entity
, is
-> is_provider
,
sel2str (is
-> is_selector
, is
-> is_selectlen
, 1)));
for (; n
>= 0; ap
++, n
--)
LLOG (addr_log
, LLOG_DEBUG
,
("\t\t%d: \"%s\"\n", ap
- is
-> is_vec
, *ap
));