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 w

⟦cf5f9cabe⟧ TextFile

    Length: 4149 (0x1035)
    Types: TextFile
    Names: »write_queue.c«

Derivation

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

TextFile

/* write_queue.c - Creates & submits a Q_struct for a DR Msg */

# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Chans/dr2rfc/RCS/write_queue.c,v 5.0 90/09/20 15:47:09 pp Exp Locker: pp $";
# endif

/*
 * $Header: /cs/research/pp/hubris/pp-beta/Chans/dr2rfc/RCS/write_queue.c,v 5.0 90/09/20 15:47:09 pp Exp Locker: pp $
 *
 * $Log:	write_queue.c,v $
 * Revision 5.0  90/09/20  15:47:09  pp
 * rcsforce : 5.0 public release
 * 
 */



#include "head.h"
#include "prm.h"
#include "q.h"
#include "tb_a.h"
#include "tb_q.h"
#include "tb_p1.h"
#include <isode/cmd_srch.h>

extern CHAN             *mychan;
extern char             *loc_dom_site;
extern char             *postmaster,
			*hdr_822_bp,
			*ia5_bp, error[];
extern ADDR             *adr_new ();
extern CMD_TABLE	qtbl_con_type[];
extern LIST_BPT		*list_bpt_dup();

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

char 	*recip_err;


write_queue (to)
ADDR    *to;
{
        struct prm_vars         prm;
        Q_struct                QNewStruct,
                                *qp = &QNewStruct;
        EncodedIT               *ep = &qp -> encodedinfo;
        RP_Buf                  rps, *rp = &rps;


        PP_TRACE (("dr2rfc/write_queue()"));

        if (to->ad_r822adr == NULLCP) {
                PP_LOG (LLOG_EXCEPTIONS, ("%s%s",
                        "dr2rfc/write_queue - no rfc822 ",
                        "recipient address has been specified"));
		(void) sprintf(error,
			       "no rfc822 recipient address has been specified");
                return RP_BAD;
        }


        /* -- initialize prm and Q fields -- */
        prm_init (&prm);
        q_init (qp);
        qp -> msgtype           = MT_UMPDU;
	qp -> inbound  		= list_rchan_new (loc_dom_site,
						  mychan->ch_name);
	ep->eit_types = NULL;
	list_bpt_add(&ep->eit_types, list_bpt_new(hdr_822_bp));
	list_bpt_add(&ep->eit_types, list_bpt_new(ia5_bp));
	

        MPDUid_new (&qp -> msgid);

        /* -- create the ADDR struct for orig and recipient -- */
        qp->Oaddress            = adr_new (postmaster, AD_822_TYPE, 0);
        qp->Raddress            = adr_new (to->ad_r822adr, AD_822_TYPE, 1);


        if (rp_isbad (io_wprm (&prm, rp))) {
                PP_LOG (LLOG_EXCEPTIONS, ("dr2rfc/io_wprm err %s",
                                          rp -> rp_line));
		stop_io();
		(void) sprintf (error,
				"io_wprm error [%s]",
				rp -> rp_line);
                return RP_BAD;
        }


        if (rp_isbad (io_wrq (qp, rp))) {
                PP_LOG (LLOG_EXCEPTIONS, ("dr2rfc/io_wrq err %s",
                                          rp -> rp_line));
		stop_io();
		(void) sprintf (error,
				"io_wrq error [%s]",
				rp -> rp_line);
                return RP_BAD;
        }


        if (rp_isbad (io_wadr (qp -> Oaddress, AD_ORIGINATOR, rp))) {
                PP_OPER (NULLCP, ("dr2rfc/io_wadr originator/postmaster err %s",
                                          rp -> rp_line));
		stop_io();
		(void) sprintf (error,
				"io_wadr originator/postmaster error [%s]",
				rp -> rp_line);
                return RP_BAD;
        }


        if (rp_isbad (io_wadr (qp -> Raddress, AD_RECIPIENT, rp))) {
                PP_LOG (LLOG_EXCEPTIONS, ("dr2rfc/io_wadr recipient err %s",
                                          rp -> rp_line));
		recip_err = strdup(rp->rp_line);
		if (rp_isbad(io_wadr(qp -> Oaddress, AD_RECIPIENT, rp))) {
			PP_OPER (NULLCP, ("dr2rfc/io_wadr originator/postmaster err %s",
                                          rp -> rp_line));
			(void) sprintf (error,
					"io_wadr originator/postmaster error [%s]",	
					rp -> rp_line);
			stop_io();
			return RP_BAD;
		}
        } else 
		recip_err = NULLCP;


        if (rp_isbad (io_adend (rp))) {
                PP_LOG (LLOG_EXCEPTIONS, ("dr2rfc/io_adend err %s",
                                          rp -> rp_line));
		stop_io();
		(void) sprintf (error,
				"io_adend error [%s]",
				rp -> rp_line);
                return RP_BAD;
        }

        /* -- frees the structure -- */
        q_free (qp);
        return RP_OK;

}