Blame


1 d1f529f4 2005-10-29 devnull #include "sys.h"
2 d1f529f4 2005-10-29 devnull
3 d1f529f4 2005-10-29 devnull /* format of REMOTE FROM lines */
4 d1f529f4 2005-10-29 devnull extern char *REMFROMRE;
5 d1f529f4 2005-10-29 devnull extern int REMSENDERMATCH;
6 d1f529f4 2005-10-29 devnull extern int REMDATEMATCH;
7 d1f529f4 2005-10-29 devnull extern int REMSYSMATCH;
8 d1f529f4 2005-10-29 devnull
9 d1f529f4 2005-10-29 devnull /* format of mailbox FROM lines */
10 d1f529f4 2005-10-29 devnull #define IS_HEADER(p) ((p)[0]=='F'&&(p)[1]=='r'&&(p)[2]=='o'&&(p)[3]=='m'&&(p)[4]==' ')
11 d1f529f4 2005-10-29 devnull #define IS_TRAILER(p) ((p)[0]=='m'&&(p)[1]=='o'&&(p)[2]=='r'&&(p)[3]=='F'&&(p)[4]=='\n')
12 d1f529f4 2005-10-29 devnull extern char *FROMRE;
13 d1f529f4 2005-10-29 devnull extern int SENDERMATCH;
14 d1f529f4 2005-10-29 devnull extern int DATEMATCH;
15 d1f529f4 2005-10-29 devnull
16 d1f529f4 2005-10-29 devnull enum
17 d1f529f4 2005-10-29 devnull {
18 d1f529f4 2005-10-29 devnull Elemlen= 28,
19 d1f529f4 2005-10-29 devnull Errlen= 128,
20 d1f529f4 2005-10-29 devnull Pathlen= 256,
21 5cc53af9 2006-02-12 devnull
22 cbeb0b26 2006-04-01 devnull RetryCode = 2
23 d1f529f4 2005-10-29 devnull };
24 d1f529f4 2005-10-29 devnull
25 d1f529f4 2005-10-29 devnull /*
26 d1f529f4 2005-10-29 devnull * routines in mail.c
27 d1f529f4 2005-10-29 devnull */
28 d1f529f4 2005-10-29 devnull extern int print_header(Biobuf*, char*, char*);
29 d1f529f4 2005-10-29 devnull extern int print_remote_header(Biobuf*, char*, char*, char*);
30 d1f529f4 2005-10-29 devnull extern int parse_header(char*, String*, String*);
31 d1f529f4 2005-10-29 devnull
32 d1f529f4 2005-10-29 devnull /*
33 d1f529f4 2005-10-29 devnull * routines in aux.c
34 d1f529f4 2005-10-29 devnull */
35 d1f529f4 2005-10-29 devnull extern String *abspath(char*, char*, String*);
36 d1f529f4 2005-10-29 devnull extern String *mboxpath(char*, char*, String*, int);
37 d1f529f4 2005-10-29 devnull extern char *basename(char*);
38 d1f529f4 2005-10-29 devnull extern int delivery_status(String*);
39 d1f529f4 2005-10-29 devnull extern void append_match(Resub*, String*, int);
40 d1f529f4 2005-10-29 devnull extern int shellchars(char*);
41 d1f529f4 2005-10-29 devnull extern String* escapespecial(String*);
42 d1f529f4 2005-10-29 devnull extern String* unescapespecial(String*);
43 d1f529f4 2005-10-29 devnull extern int returnable(char*);
44 d1f529f4 2005-10-29 devnull
45 d1f529f4 2005-10-29 devnull /* in copymessage */
46 d1f529f4 2005-10-29 devnull extern int appendfiletombox(int, int);
47 d1f529f4 2005-10-29 devnull extern int appendfiletofile(int, int);
48 d1f529f4 2005-10-29 devnull
49 d1f529f4 2005-10-29 devnull /* mailbox types */
50 d1f529f4 2005-10-29 devnull #define MF_NORMAL 0
51 d1f529f4 2005-10-29 devnull #define MF_PIPE 1
52 d1f529f4 2005-10-29 devnull #define MF_FORWARD 2
53 d1f529f4 2005-10-29 devnull #define MF_NOMBOX 3
54 d1f529f4 2005-10-29 devnull #define MF_NOTMBOX 4
55 d1f529f4 2005-10-29 devnull
56 d1f529f4 2005-10-29 devnull /* a pipe between parent and child*/
57 d1f529f4 2005-10-29 devnull typedef struct {
58 d1f529f4 2005-10-29 devnull Biobuf bb;
59 d1f529f4 2005-10-29 devnull Biobuf *fp; /* parent process end*/
60 d1f529f4 2005-10-29 devnull int fd; /* child process end*/
61 d1f529f4 2005-10-29 devnull } stream;
62 d1f529f4 2005-10-29 devnull
63 d1f529f4 2005-10-29 devnull /* a child process*/
64 d1f529f4 2005-10-29 devnull typedef struct process{
65 d1f529f4 2005-10-29 devnull stream *std[3]; /* standard fd's*/
66 d1f529f4 2005-10-29 devnull int pid; /* process identifier*/
67 d1f529f4 2005-10-29 devnull int status; /* exit status*/
68 d1f529f4 2005-10-29 devnull Waitmsg *waitmsg;
69 d1f529f4 2005-10-29 devnull } process;
70 d1f529f4 2005-10-29 devnull
71 d1f529f4 2005-10-29 devnull extern stream *instream(void);
72 d1f529f4 2005-10-29 devnull extern stream *outstream(void);
73 d1f529f4 2005-10-29 devnull extern void stream_free(stream*);
74 d1f529f4 2005-10-29 devnull extern process *noshell_proc_start(char**, stream*, stream*, stream*, int, char*);
75 d1f529f4 2005-10-29 devnull extern process *proc_start(char*, stream*, stream*, stream*, int, char*);
76 d1f529f4 2005-10-29 devnull extern int proc_wait(process*);
77 d1f529f4 2005-10-29 devnull extern int proc_free(process*);
78 d1f529f4 2005-10-29 devnull extern int proc_kill(process*);
79 d1f529f4 2005-10-29 devnull
80 a79cd783 2006-02-12 devnull