|
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 r
Length: 2271 (0x8df) Types: TextFile Names: »rfc2globalid.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« └─⟦e5a54fb17⟧ └─⟦this⟧ »pp-5.0/Lib/format/rfc2globalid.c«
/* rfc2globalid.c - Converts a RFC string into a GlobalDomId struct */ # ifndef lint static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/format/RCS/rfc2globalid.c,v 5.0 90/09/20 16:05:38 pp Exp Locker: pp $"; # endif /* * $Header: /cs/research/pp/hubris/pp-beta/Lib/format/RCS/rfc2globalid.c,v 5.0 90/09/20 16:05:38 pp Exp Locker: pp $ * * $Log: rfc2globalid.c,v $ * Revision 5.0 90/09/20 16:05:38 pp * rcsforce : 5.0 public release * */ #include "util.h" #include "mta.h" /* --------------------- Begin Routines -------------------------------- */ int rfc2x400globalid (gp, str) GlobalDomId *gp; char *str; { char *start, *end; if (lexnequ (str, "/PRMD=", strlen("/PRMD=")) == 0) { start = str+strlen("/PRMD="); if ((end = index(start, '/')) == NULLCP) return NOTOK; *end = '\0'; gp -> global_Private = strdup(start); *end = '/'; str = end; } if (lexnequ (str, "/ADMD=", strlen("/ADMD=")) == 0) { start = str+strlen("/ADMD="); if ((end = index(start, '/')) == NULLCP) { if (gp -> global_Private != NULLCP) { free (gp -> global_Private); gp -> global_Private = NULLCP; } return NOTOK; } *end = '\0'; gp -> global_Admin = strdup(start); *end = '/'; str = end; } if (lexnequ (str, "/C=", strlen("/C=")) == 0) { start = str+strlen("/C="); if ((end = index(start, '/')) == NULLCP) { if (gp -> global_Private != NULLCP) { free (gp -> global_Private); gp -> global_Private = NULLCP; } if (gp -> global_Admin != NULLCP) { free (gp -> global_Admin); gp -> global_Admin = NULLCP; } return NOTOK; } *end = '\0'; gp -> global_Country = strdup(start); *end = '/'; str = end; } return OK; } int rfc2globalid (gp, str) GlobalDomId *gp; char *str; { char *cp = str, *bp = str; PP_DBG (("Lib/rfc2globalid (%s)", str)); if (*cp == '*') return NOTOK; /* -- Country -- */ cp = index (bp, '*'); if (cp == NULLCP) return NOTOK; *cp++ = '\0'; gp->global_Country = strdup (bp); bp = cp; /* -- Admin -- */ cp = index (bp, '*'); if (cp != NULLCP) *cp++ = '\0'; gp->global_Admin = strdup (bp); bp = cp; /* -- Prmd -- */ if (cp == NULLCP) return OK; gp->global_Private = strdup (bp); return OK; }