|
|
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 x
Length: 1859 (0x743)
Types: TextFile
Names: »x400_rfc822.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/Lib/parse/x400_rfc822.c«
/* x400_rfc822.c: address conversion from x400 to 822 */
# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/parse/RCS/x400_rfc822.c,v 5.0 90/09/20 16:10:00 pp Exp Locker: pp $";
# endif
/*
* $Header: /cs/research/pp/hubris/pp-beta/Lib/parse/RCS/x400_rfc822.c,v 5.0 90/09/20 16:10:00 pp Exp Locker: pp $
*
* $Log: x400_rfc822.c,v $
* Revision 5.0 90/09/20 16:10:00 pp
* rcsforce : 5.0 public release
*
*/
#include "head.h"
#include "adr.h"
#include "or.h"
#include "ap.h"
/* --------------------- Begin Routines -------------------------------- */
extern char or_error[];
int x400_rfc822 (ad, or, order_pref, full,
pgroup, pname, plocal, pdomain, proute)
ADDR *ad;
OR_ptr or;
int order_pref;
AP_ptr *pgroup,
*pname,
*plocal,
*pdomain,
*proute;
{
char tbuf[LINESIZE];
char *value;
int retval;
if (ad->ad_r400adr != NULLCP)
value = ad->ad_r400adr;
else
value = ad->ad_value;
PP_DBG (("x400_rfc822 (%s)", value));
or = or_std2or (value);
/* -- failed to convert -- */
if (or == NULLOR) { /* SEK - should log failure */
PP_LOG(LLOG_EXCEPTIONS,
("Lib/parse/x400_rfc822: failed to convert '%s'",
value));
return RP_PARSE;
}
if (ad->ad_r400adr == NULLCP) {
or_or2std (or, tbuf, FALSE);
ad->ad_r400adr = strdup (tbuf);
}
retval = or_or2rfc (or, tbuf);
if (retval == DONE) {
or_free (or);
or = NULLOR;
return RP_AOK;
}
else if (retval == NOTOK) {
or_free (or);
or = NULLOR;
PP_DBG(("x400_rfc822/Conversion failed (%s)", or_error));
return RP_PARSE;
}
if (ad->ad_r822adr)
free (ad->ad_r822adr);
ad->ad_r822adr = strdup (tbuf);
if (rp_isbad(rfc822_parse (ad, order_pref, full,
pgroup, pname, plocal, pdomain, proute)))
return RP_PARSE;
PP_DBG (("x400_rfc822 (%s)", tbuf));
return (RP_AOK);
}