diff options
author | rsc <devnull@localhost> | 2005-10-29 16:26:44 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-10-29 16:26:44 +0000 |
commit | 5cdb17983ae6e6367ad7a940cb219eab247a9304 (patch) | |
tree | 8ca1ef49af2a96e7daebe624d91fdf679814a057 /src/cmd/upas/scanmail/spam.h | |
parent | cd3745196389579fb78b9b01ef1daefb5a57aa71 (diff) | |
download | plan9port-5cdb17983ae6e6367ad7a940cb219eab247a9304.tar.gz plan9port-5cdb17983ae6e6367ad7a940cb219eab247a9304.tar.bz2 plan9port-5cdb17983ae6e6367ad7a940cb219eab247a9304.zip |
Thanks to John Cummings.
Diffstat (limited to 'src/cmd/upas/scanmail/spam.h')
-rw-r--r-- | src/cmd/upas/scanmail/spam.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/cmd/upas/scanmail/spam.h b/src/cmd/upas/scanmail/spam.h new file mode 100644 index 00000000..f1d24b2e --- /dev/null +++ b/src/cmd/upas/scanmail/spam.h @@ -0,0 +1,62 @@ + +enum{ + Dump = 0, /* Actions must be in order of descending importance */ + HoldHeader, + Hold, + SaveLine, + Lineoff, /* Lineoff must be the last action code */ + Nactions, + + Nhash = 128, + + regexp = 1, /* types: literal string or regular expression */ + string = 2, + + MaxHtml = 256, + Hdrsize = 4096, + Bodysize = 8192, + Maxread = 64*1024, +}; + +typedef struct spat Spat; +typedef struct pattern Pattern; +typedef struct patterns Patterns; +struct spat +{ + char* string; + int len; + int c1; + Spat* next; + Spat* alt; +}; + +struct pattern{ + struct pattern *next; + int action; + int type; + Spat* alt; + union{ + Reprog* pat; + Spat* spat[Nhash]; + }; +}; + +struct patterns { + char *action; + Pattern *strings; + Pattern *regexps; +}; + +extern int debug; +extern Patterns patterns[]; +extern char header[]; +extern char cmd[]; + +extern void conv64(char*, char*, char*, int); +extern int convert(char*, char*, char*, int, int); +extern void* Malloc(long n); +extern int matchpat(Pattern*, char*, Resub*); +extern char* readmsg(Biobuf*, int*, int*); +extern void parsepats(Biobuf*); +extern void* Realloc(void*, ulong); +extern void xprint(int, char*, Resub*); |