DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T u

⟦d72d03023⟧ TextFile

    Length: 2433 (0x981)
    Types: TextFile
    Names: »ut_dr.c«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« 
        └─⟦e5a54fb17⟧ 
            └─⟦this⟧ »pp-5.0/Lib/pp/ut_dr.c« 

TextFile

/* ut_dr.c: DR utilities */

# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/pp/RCS/ut_dr.c,v 5.0 90/09/20 16:12:39 pp Exp Locker: pp $";
# endif

/*
 * $Header: /cs/research/pp/hubris/pp-beta/Lib/pp/RCS/ut_dr.c,v 5.0 90/09/20 16:12:39 pp Exp Locker: pp $
 *
 * $Log:	ut_dr.c,v $
 * Revision 5.0  90/09/20  16:12:39  pp
 * rcsforce : 5.0 public release
 * 
 */



#include        "util.h"
#include 	"dr.h"



/* ---------------------  Begin  Routines  -------------------------------- */




void dr_init (dreport)
register DRmpdu         *dreport;
{
        PP_DBG (("Lib/pp/dr_init()"));
        bzero ((char *)dreport, sizeof(*dreport));
}




void dr_free (dr)
register DRmpdu         *dr;
{
        PP_DBG (("Lib/pp/dr_free()"));

        /* -- the envelope part is set from Q_struct - so not freed -- */

        if (dr->dr_mpduid)
		MPDUid_free (dr->dr_mpduid);
        if (dr->dr_trace)
		trace_free (dr->dr_trace);
        if (dr->dr_subject_intermediate_trace)
		trace_free (dr->dr_subject_intermediate_trace);
	if (dr -> dr_dl_history)
		dlh_free (dr -> dr_dl_history);
	if (dr -> dr_reporting_dl_name)
		fn_free (dr -> dr_reporting_dl_name);
	if (dr -> dr_security_label)
		qb_free (dr -> dr_security_label);
	if (dr -> dr_reporting_mta_certificate)
		qb_free (dr -> dr_reporting_mta_certificate);
	if (dr -> dr_report_origin_auth_check)
		qb_free (dr -> dr_report_origin_auth_check);
	if (dr -> dr_per_report_extensions)
		extensions_free (dr -> dr_per_report_extensions);
        if (dr->dr_recip_list)
		rrinfo_free(dr -> dr_recip_list);

        dr_init (dr);
}

void rrinfo_free (rr)  /* -- ReportedRecipientInfo -- */
Rrinfo   *rr;
{
        if (rr == (Rrinfo *) NULL)  return;

        rrinfo_free (rr->rr_next);

	if (rr -> rr_originally_intended_recip)
		fn_free (rr -> rr_originally_intended_recip);
        if (rr->rr_supplementary != NULLCP)
		free (rr->rr_supplementary);
	if (rr -> rr_redirect_history)
		redirection_free (rr -> rr_redirect_history);
	if (rr -> rr_physical_fwd_addr)
		fn_free (rr -> rr_physical_fwd_addr);
	if (rr -> rr_recip_certificate)
		qb_free (rr -> rr_recip_certificate);
	if (rr -> rr_report_origin_authentication_check)
		qb_free (rr -> rr_report_origin_authentication_check);
	if (rr -> rr_arrival)
		free ((char *)rr->rr_arrival);
	if (rr -> rr_per_recip_extensions)
		extensions_free (rr -> rr_per_recip_extensions);
	free ((char *) rr);
}