dawn/notes/
dawn/src/
dawn/src/docs/
/**************************************************************************/
// ban.h - code related to banning players, pretty much a rewrite by Kal
/***************************************************************************
 * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt                    *
 * >> A number of people have contributed to the Dawn codebase, with the   *
 *    majority of code written by Michael Garratt - www.dawnoftime.org     *
 * >> To use this source code, you must fully comply with all the licenses *
 *    in licenses.txt... In particular, you may not remove this copyright  *
 *    notice.                                                              *
 ***************************************************************************
 * >> Original Diku Mud copyright (c)1990, 1991 by Sebastian Hammer,       *
 *    Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, & Katja Nyboe.   *
 * >> Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael       *
 *    Chastain, Michael Quan, and Mitchell Tse.                            *
 * >> ROM 2.4 is copyright 1993-1995 Russ Taylor and has been brought to   *
 *    you by the ROM consortium: Russ Taylor(rtaylor@pacinfo.com),         *
 *    Gabrielle Taylor(gtaylor@pacinfo.com) & Brian Moore(rom@rom.efn.org) *
 * >> Oblivion 1.2 is copyright 1996 Wes Wagner                            *
 **************************************************************************/

#ifndef BAN_H
#define BAN_H

// types of bans
#define BAN_UNDEFINED	0
#define BAN_ALL			1	// strongest
#define BAN_PERMIT		2	// permit required
#define BAN_EMAIL_REQ	3	// email system
#define BAN_NEWBIE		4	// newbies
#define BAN_LOGNEWBIE	5	// log a newbie when the create

typedef struct  ban_data	BAN_DATA;
BAN_DATA *check_ban(connection_data *c,int type);
BAN_DATA *check_ban_for_site(char *site,int type);
bool email_descriptor_unlock_id(connection_data *d);
int check_email_ban(connection_data *d, char *email_addy);

struct  ban_data
{
	// saved data
	char *      intended_people;
    int			type;
	char *      sitemasks;
	time_t		ban_date;
	char *      reason; // multiple line string
	char *      by;
	time_t		expire_date; // < 1 = noexpire
	char *		custom_disconnect_message;
	char *      always_allowed_email_masks;		// multiline... 
					// email addy must match one of the masks
	char *      allowed_email_masks;		// multiline... 
					// email addy must match one of the masks
	char *      disallowed_email_masks; // multiline... 
					// email addy if matches one of these rejected
	char *      disallowed_email_custom_message;
	sh_int      level;

	// non saved data should be at the bottom for GIO to not stuff 
	// up with word alignments
    ban_data *  next;
    bool        valid;
	bool        permanent; // saved if true
	bool        enabled;
};

#endif // BAN_H