/* Defines for the ax.25 mailbox facility */

#define MBXLINE	    256		/* max length of line */

struct mbxpath {
    struct mbxpath *next;
    unsigned int y,m,d;		/* forwarding date */
    unsigned int hh,mm,z;	/* forwarding time */
    char name[7];		/* name of forwarding box */
};
#define NULLMBXPATH	((struct mbxpath *) 0)

struct mbx {
    struct mbx *next;
    struct mbx *prev;
    struct ax25_cb  *ax25_cb;	/* ax.25 link control block */
    int state;			/* mailbox state */
#define MBX_CMD		0	/* in command mode */
#define MBX_INFO	1	/* sending info file */
#define MBX_SUBJ	2	/* waiting for a subject line */
#define MBX_HEAD	3	/* collecting the headers */
#define MBX_DATA	4	/* collecting the message */
#define MBX_CONN	5	/* connecting remote box */
#define MBX_SEND	6	/* sending mail to remote box */
#define MBX_BODY	7	/* sending mail body */
#define MBX_DISC	8	/* ready for disconnect */
    char name[10];		/* Name of remote station */
    char *to;			/* To-address in form user or user@host */
    char *tofrom;		/* Optional <from in to-address */
    char *tomsgid;		/* Optional $msgid in to-address */
    char *subject;		/* Message subject */
    char *fullfrom;		/* Full "from" address of sender */
    struct mbxpath *mbpath;	/* Linked list of path elements */
    FILE *tfile;		/* Temporary file for message */
    int sid;			/* Characteristics indicated by the SID */
				/* banner of the attaching station.  If */
				/* no SID was sent, this is zero.  If an */
				/* SID of any kind was received, it is */
				/* assumed that the station supports */
				/* abbreviated mail forwarding mode. */
#define MBX_SID	    0x01	/* Got any SID */
#define MBX_SID_RLI 0x02	/* This is an RLI BBS, disconnect after F> */
				/* Space here for others, currently not of */
				/* interest to us. */
    char stype;			/* BBS send command type (B,P,T, etc.) */
    struct smtp_cb  *smtp_cb;	/* SMTP control block */
    FILE *script;		/* connect/mail script when sending */
    long mpos;			/* where "l" line is in script */
    char sline[MBXLINE];	/* line from script */
};
#define	    NULLMBX	(struct mbx *)0

