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 a

⟦be52ddb99⟧ TextFile

    Length: 2766 (0xace)
    Types: TextFile
    Names: »auth.h«

Derivation

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

TextFile

/* auth.h: authorisation */

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



#ifndef _H_AUTH
#define _H_AUTH

#include "list_bpt.h"


#define MAX_AUTH_ARGS			20
#define AUTH_SEPERATOR			'|'


/* command table values */
#define	AUTH_LOGLEVEL_LOW	1
#define	AUTH_LOGLEVEL_MEDIUM	2
#define	AUTH_LOGLEVEL_HIGH	3


typedef	struct	list_regex {
	char			*li_regex;
	struct list_regex	*li_next;
	} LIST_REGEX;

#define NULLIST_REGEX		(LIST_REGEX *)0



typedef	struct	list_chan_rights {
	CHAN				*li_chan;
	int				li_rights;
	struct list_chan_rights		*li_next;
	} LIST_CHAN_RIGHTS;

#define NULLIST_CHAN_RIGHTS		(LIST_CHAN_RIGHTS *)0




typedef	struct	list_auth_chan {
	CHAN				*li_chan;
	int				li_found;

	int				policy;
#define AUTH_CHAN_FREE          	1
#define AUTH_CHAN_NEGATIVE      	2
#define AUTH_CHAN_BLOCK         	3
#define AUTH_CHAN_NONE          	4
#define AUTH_CHAN_WARNS         	5
#define AUTH_CHAN_WARNR         	6
#define AUTH_CHAN_SIZELIMIT     	7
#define AUTH_CHAN_TEST			8

	char				*warnsender;
	char				*warnrecipient;
	long				sizelimit;
	int				test; 
	struct 	list_auth_chan		*li_next;

	} LIST_AUTH_CHAN;


#define NULLIST_AUTHCHAN		(LIST_AUTH_CHAN *)0





typedef	struct	list_auth_mta {
	char				*li_mta;
	int				li_found;
	int				rights;
	LIST_REGEX			*requires;
	LIST_REGEX			*excludes;
	LIST_BPT			*content_excludes;
	LIST_CHAN_RIGHTS		*li_cr;
	long				sizelimit;
	struct 	list_auth_mta		*li_next;
	} LIST_AUTH_MTA;

#define NULLIST_AUTHMTA			(LIST_AUTH_MTA *)0



typedef	struct	auth_user {
	int				found;
	int				rights;
	LIST_BPT			*content_excludes;
	LIST_CHAN_RIGHTS		*li_cr;
	long				sizelimit;
	} AUTH_USER;

#define NULL_AUTHUSR			(AUTH_USER *)0



typedef	struct	auth {   /* holds all details for each channel, mta and user */

	int			status;
#define	AUTH_OK			0
#define AUTH_FAILED		1
#define AUTH_DR_OK		2
#define AUTH_DR_FAILED		3
#define AUTH_FAILED_TEST	4

	int			stage;
#define AUTH_STAGE_1		1	/* stage 1 tests performed */
#define AUTH_STAGE_2		2	/* stage 2 tests performed */

	int			warnings;
#define AUTH_NOTWARNED		0	/* msg not generated yet */
#define AUTH_WARNED		1	/* msg has been generated */
#define AUTH_WARNERROR		2	/* msg could not be generated */

	char			*reason;

	LIST_AUTH_CHAN		*chan;
	LIST_AUTH_MTA		*mta;
	AUTH_USER		*user;


	int			mta_inrights;
	int			mta_outrights;
	int			user_inrights;
	int			user_outrights;
#define AUTH_RIGHTS_IN          1
#define AUTH_RIGHTS_OUT         2
#define AUTH_RIGHTS_BOTH        3
#define AUTH_RIGHTS_NONE        4
#define AUTH_RIGHTS_UNSET       5
				
	} AUTH;

#define NULL_AUTH		(AUTH *)0

#endif