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 c

⟦b947acfd3⟧ TextFile

    Length: 4574 (0x11de)
    Types: TextFile
    Names: »chan.h«

Derivation

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

TextFile

/* chan.h: the description of a channel structure */

/*
 * @(#) $Header: /cs/research/pp/hubris/pp-beta/h/RCS/chan.h,v 5.0 90/09/20 16:49:50 pp Exp Locker: pp $
 *
 * $Log:	chan.h,v $
 * Revision 5.0  90/09/20  16:49:50  pp
 * rcsforce : 5.0 public release
 * 
 *
 */



#ifndef _H_CHAN
#define _H_CHAN

#include "table.h"
#include "list_bpt.h"



#define CH_MAX_SORT			10


typedef struct	chan_struct {
	char	    *ch_name;		/* channel name */
	char	    *ch_progname;	/* prog name referencing this chan */
	char	    *ch_show;		/* Display field of the chan title */
	
	int	    ch_chan_type;	/* What kind of channel is this */
#define CH_SHAPER		0
#define CH_IN			1
#define CH_OUT			2
#define CH_BOTH			3
#define CH_WARNING		4
#define CH_DELETE		5
#define CH_QMGR_LOAD		6
#define CH_DEBRIS		7
#define CH_TIMEOUT		8

	char	    *ch_chan_out;	/* Channel for DRs */
					
	int	    ch_cost;		/* How expensive to run */
					/* SEK - must define this ! */
					
	char	    ch_sort[CH_MAX_SORT];  /* How to sort the msgs */
#define CH_SORT_USR		01
#define CH_SORT_MTA		02
#define CH_SORT_PRIORITY	03
#define CH_SORT_TIME		04
#define CH_SORT_SIZE		05

	char	    *ch_info;		/* Info locally interpreted by chan */
	char	    *ch_content_in;	/* Incoming content of a message */
	char	    *ch_content_out;	/* Outgoing content of a message */

	int	    ch_ad_type;		/* Address types */
	int	    ch_ad_subtype;	/* Address subtypes */
					/* Used outbound only */
	
	int	    ch_ad_order;	/* Ordering of the incoming domain */
					/* for submit to interpret */
#define CH_USA_ONLY		00
#define CH_USA_PREF		01
#define CH_UK_ONLY		02
#define CH_UK_PREF		03

	int	   trace_type;		/* Text type of trace for messages */
					/* interpreted by submit */
#define CH_TRACE_RECEIVED
#define CH_TRACE_VIA
#define CH_TRACE_X400

	LIST_BPT    *ch_bpt_in;		/* Incoming body part types */
	LIST_BPT    *ch_bpt_out;	/* Outgoing body part types  */
	Table	    *ch_table;		/* Table that this chan references */
					/* optional */

	Table	    *ch_auth_tbl;	/* Table of authentication stuff */
	char	    *ch_mta;		/* Mta to route through */
	unsigned int
	    ch_probe:1,	/* Does the channel support probes */
	    ch_domain_norm:1,	/* parse all domains or just next hop */
#define CH_DOMAIN_NORM_PARTIAL	0
#define CH_DOMAIN_NORM_ALL	1
	    ch_conversion:2,	/* what sort of conversion this does */
#define CH_CONV_NONE		0
#define CH_CONV_1148		1
#define CH_CONV_CONVERT		2
#define CH_CONV_WITHLOSS	3
	    ch_access:1;		/* The type of channel access */
#define CH_MTS			00
#define CH_MTA			01


	int	    ch_maxproc;		/* Max instances of channel qmgr */
					/* can run */

} CHAN;




/* ---------------------------------------------------------------------------




NOTES
-----


ch_ad_type:
	The values come from tb_a.h


ch_chan_out:
	Only set on an incomming (or listening) channel. This
	is the name of the output channel to which any error
	reports are sent. During Submit, if an error report is
	generated, and if this ptr is set then the msg is
	sent back to the originator via this channel. Otherwise
	it is sent via the output channel calculated by the
	routine ch_bind().


ch_chan_type:
	May have one of the following values:
		CH_SHAPER	-	formatter
		CH_IN		-	listener
		CH_OUT		-	transmitter
		CH_BOTH		-	listener/transmitter
		CH_WARNING	-	Warning channel (for qmgr)
		CH_DELETE	-	Deletion of unwanted msgs (for qmgr)
		CH_QMGR_LOADER	-	Loading the QMGR channel (for qmgr)
		CH_DEBRIS	-	Debris cleaning channel
		CH_TIMEOUT	-	timeout channel

	CH_SHAPER - may be flattener, unflattener or a formatter.
	Depending on whether ch_bpt_in &/or ch_bpt_out fields are set.
		ch_bpt_in:
			Channel is a unflattener.
		ch_bpt_out:
			Channel is a flattner.
		ch_bpt_in & ch_bpt_out:
			Channel is a formatter.


ch_cost:
	How expensive is this channel to run. The higher the
	cost the less likely it is to be used. This is an
	important parameter for Submit's ch_bind() routine.


ch_content_in:
ch_content_out:
	Only set on an incoming (or listening) channel. Otherwise NULLCP.
	May have one of the following values:
		"822"
		"p2"


ch_info:
	This is a local string that is specific to a particular
	channel, to be interpreted by that channel in any way
	it sees fit.



ch_mta:
	A relay route for this channel.

ch_access:
	Whether this channel is from another MTA or from local submission

--------------------------------------------------------------------------- */

#define NULLCHAN		((CHAN *)0)

extern	CHAN			*ch_nm2struct();
extern	CHAN			*ch_all[];  /* all chans from tailor file */

#endif