|
|
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 o
Length: 2032 (0x7f0)
Types: TextFile
Names: »or_or2rfc.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/Lib/or/or_or2rfc.c«
/* or_or2rfc.c: convert from or address to rfc address */
# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or_or2rfc.c,v 5.0 90/09/20 16:08:25 pp Exp Locker: pp $";
# endif
/*
* $Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or_or2rfc.c,v 5.0 90/09/20 16:08:25 pp Exp Locker: pp $
*
* $Log: or_or2rfc.c,v $
* Revision 5.0 90/09/20 16:08:25 pp
* rcsforce : 5.0 public release
*
*/
#include "or.h"
#include "util.h"
#include "ap.h"
extern char *loc_dom_site;
/* --------------------- Begin Routines -------------------------------- */
/*
Maps OR struct into a RFC822 string
*/
int or_or2rfc_aux (or, buf, addr_check)
OR_ptr or;
char *buf;
int addr_check;
{
AP_ptr local,
domain;
OR_ptr current_ptr;
char lbuf[LINESIZE],
dbuf[LINESIZE],
*cp;
PP_DBG (("Lib/or_or2rfc()" ));
or = or_default (or);
current_ptr = or;
if ((current_ptr = or_find (current_ptr, OR_DD, NULLCP))
&& (current_ptr -> or_next == NULLOR))
{
/* --- single DD attributes --- */
if (or_ddname_chk (current_ptr -> or_ddname)) {
/* --- Special DD type --- */
or_ps2asc (current_ptr -> or_value, buf);
PP_DBG (("Lib/or_or2rfc: Matched dd, '%s' = '%s'",
current_ptr -> or_ddname, buf));
return OK;
}
}
if (or_or2rbits (or, lbuf, dbuf) == NOTOK)
return NOTOK;
/* --- if NUL domain - explicit encoding --- */
if (dbuf[0] == '\0') {
(void) strcpy (buf, lbuf);
PP_DBG (("Lib/or_or2rfc Returns '%s'", buf));
return OK;
}
PP_TRACE (("Lib/or_or2rfc lbuf='%s' dbuf='%s'", lbuf, dbuf));
if (lexequ (dbuf, loc_dom_site) == 0)
if (addr_check)
return DONE;
local = ap_new (AP_MAILBOX, lbuf);
domain = ap_new (AP_DOMAIN, dbuf);
cp = ap_p2s (NULLAP, NULLAP, local, domain, NULLAP);
(void) strcpy (buf, cp);
free (cp);
ap_free (local);
ap_free (domain);
PP_TRACE (("Lib/or_or2rfc returns '%s'", buf));
return OK;
}