/* * Copyright (c) 1992, 1993 by the University of Southern California * * For copying and distribution information, please see the file */ /* This file will probably go away after we define REALLY_NEW_FIELD */ #include /* Written by swa@ISI.EDU, Sept. 21--24, 1992 */ #include #include #include static struct atr_type_by_field_name { char *name; char type; } atr_type_by_field_name[] = { /* Not all fields are defined here yet. */ "ACCESS-METHOD", ATR_SEQUENCE, "BASE-TYPE", ATR_SEQUENCE, "CLOSURE", ATR_LINK, "DEST-EXP", ATR_SEQUENCE, "FILTER", ATR_FILTER, "HOST", ATR_SEQUENCE, "HOST-TYPE", ATR_SEQUENCE, "HSONAME", ATR_SEQUENCE, "HSONAME-TYPE", ATR_SEQUENCE, "ID", ATR_SEQUENCE, "LINK-TYPE", ATR_SEQUENCE, "NAME-COMPONENT", ATR_SEQUENCE, "OWNER", ATR_SEQUENCE, "TARGET", ATR_SEQUENCE, "TTL", ATR_SEQUENCE, "VERSION", ATR_SEQUENCE, NULL, ATR_UNKNOWN }; static struct atr_type_by_type_name { char *name; char type; } atr_type_by_type_name[] = { "FILTER", ATR_FILTER, "LINK", ATR_LINK, "SEQUENCE", ATR_SEQUENCE, "ASCII", ATR_SEQUENCE, /* XXX Backwards compatability; will go away soon. */ NULL, ATR_UNKNOWN }; /* used by atr_in. */ int lookup_avtype_by_field_name(const char aname[]) { struct atr_type_by_field_name *p; for (p = atr_type_by_field_name; p->name; ++p) if (strequal(p->name, aname)) return p->type; return ATR_UNKNOWN; } /* If you add elements to this table, you will also need to change pfs.h */ int lookup_avtype_by_avtypename(const char t_avtype[]) { struct atr_type_by_type_name *p; for (p = atr_type_by_type_name; p->name; ++p) if (strequal(p->name, t_avtype)) return p->type; return ATR_UNKNOWN; } char * lookup_avtypename_by_avtype(int avtype) { struct atr_type_by_type_name *p; for (p = atr_type_by_type_name; p->name; ++p) if (p->type == avtype) return p->name; return "UNKNOWN-TYPE-NAME-PLEASE-COMPLAIN-TO-THE-MAINTAINER"; } /* If you add elements to this table, you will also need to change pfs.h */ static struct aban { char *name; char precedence; } precedence_by_precedencename[] = { "OBJECT", ATR_PREC_OBJECT, "LINK", ATR_PREC_LINK, "CACHED", ATR_PREC_CACHED, "REPLACEMENT", ATR_PREC_REPLACE, "ADDITIONAL", ATR_PREC_ADD, NULL, ATR_PREC_UNKNOWN }; int lookup_precedence_by_precedencename(const char t_precedence[]) { struct aban *p; for (p = precedence_by_precedencename; p->name; ++p) if (strequal(p->name, t_precedence)) return p->precedence; return ATR_UNKNOWN; } char * lookup_precedencename_by_precedence(int precedence) { struct aban *p; for (p = precedence_by_precedencename; p->name; ++p) if (p->precedence == precedence) return p->name; return "UNKNOWN-APPLIES-TO-VALUE-PLEASE-COMPLAIN-TO-THE-MAINTAINER"; }