Thanks to John Cummings.
This commit is contained in:
parent
cd37451963
commit
5cdb17983a
94 changed files with 26853 additions and 0 deletions
108
src/cmd/upas/send/send.h
Normal file
108
src/cmd/upas/send/send.h
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
#define MAXSAME 16
|
||||
#define MAXSAMECHAR 1024
|
||||
|
||||
/* status of a destination*/
|
||||
typedef enum {
|
||||
d_undefined, /* address has not been matched*/
|
||||
d_pipe, /* repl1|repl2 == delivery command, rep*/
|
||||
d_cat, /* repl1 == mail file */
|
||||
d_translate, /* repl1 == translation command*/
|
||||
d_alias, /* repl1 == translation*/
|
||||
d_auth, /* repl1 == command to authorize*/
|
||||
d_syntax, /* addr contains illegal characters*/
|
||||
d_unknown, /* addr does not match a rewrite rule*/
|
||||
d_loop, /* addressing loop*/
|
||||
d_eloop, /* external addressing loop*/
|
||||
d_noforward, /* forwarding not allowed*/
|
||||
d_badmbox, /* mailbox badly formatted*/
|
||||
d_resource, /* ran out of something we needed*/
|
||||
d_pipeto, /* pipe to from a mailbox*/
|
||||
} d_status;
|
||||
|
||||
/* a destination*/
|
||||
typedef struct dest dest;
|
||||
struct dest {
|
||||
dest *next; /* for chaining*/
|
||||
dest *same; /* dests with same cmd*/
|
||||
dest *parent; /* destination we're a translation of*/
|
||||
String *addr; /* destination address*/
|
||||
String *repl1; /* substitution field 1*/
|
||||
String *repl2; /* substitution field 2*/
|
||||
int pstat; /* process status*/
|
||||
d_status status; /* delivery status*/
|
||||
int authorized; /* non-zero if we have been authorized*/
|
||||
int nsame; /* number of same dests chained to this entry*/
|
||||
int nchar; /* number of characters in the command*/
|
||||
};
|
||||
|
||||
typedef struct message message;
|
||||
struct message {
|
||||
String *sender;
|
||||
String *replyaddr;
|
||||
String *date;
|
||||
String *body;
|
||||
String *tmp; /* name of temp file */
|
||||
String *to;
|
||||
int size;
|
||||
int fd; /* if >= 0, the file the message is stored in*/
|
||||
char haveto;
|
||||
String *havefrom;
|
||||
String *havesender;
|
||||
String *havereplyto;
|
||||
char havedate;
|
||||
char havemime;
|
||||
String *havesubject;
|
||||
char bulk; /* if Precedence: Bulk in header */
|
||||
char rfc822headers;
|
||||
int received; /* number of received lines */
|
||||
char *boundary; /* bondary marker for attachments */
|
||||
};
|
||||
|
||||
/*
|
||||
* exported variables
|
||||
*/
|
||||
extern int rmail;
|
||||
extern int onatty;
|
||||
extern char *thissys, *altthissys;
|
||||
extern int xflg;
|
||||
extern int nflg;
|
||||
extern int tflg;
|
||||
extern int debug;
|
||||
extern int nosummary;
|
||||
|
||||
/*
|
||||
* exported procedures
|
||||
*/
|
||||
extern void authorize(dest*);
|
||||
extern int cat_mail(dest*, message*);
|
||||
extern dest *up_bind(dest*, message*, int);
|
||||
extern int ok_to_forward(char*);
|
||||
extern int lookup(char*, char*, Biobuf**, char*, Biobuf**);
|
||||
extern dest *d_new(String*);
|
||||
extern void d_free(dest*);
|
||||
extern dest *d_rm(dest**);
|
||||
extern void d_insert(dest**, dest*);
|
||||
extern dest *d_rm_same(dest**);
|
||||
extern void d_same_insert(dest**, dest*);
|
||||
extern String *d_to(dest*);
|
||||
extern dest *s_to_dest(String*, dest*);
|
||||
extern void gateway(message*);
|
||||
extern dest *expand_local(dest*);
|
||||
extern void logdelivery(dest*, char*, message*);
|
||||
extern void loglist(dest*, message*, char*);
|
||||
extern void logrefusal(dest*, message*, char*);
|
||||
extern int default_from(message*);
|
||||
extern message *m_new(void);
|
||||
extern void m_free(message*);
|
||||
extern message *m_read(Biobuf*, int, int);
|
||||
extern int m_get(message*, long, char**);
|
||||
extern int m_print(message*, Biobuf*, char*, int);
|
||||
extern int m_bprint(message*, Biobuf*);
|
||||
extern String *rule_parse(String*, char*, int*);
|
||||
extern int getrules(void);
|
||||
extern int rewrite(dest*, message*);
|
||||
extern void dumprules(void);
|
||||
extern void regerror(char*);
|
||||
extern dest *translate(dest*);
|
||||
extern char* skipequiv(char*);
|
||||
extern int refuse(dest*, message*, char*, int, int);
|
||||
Loading…
Add table
Add a link
Reference in a new issue