aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/upas/scanmail/spam.h
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-10-29 16:26:44 +0000
committerrsc <devnull@localhost>2005-10-29 16:26:44 +0000
commit5cdb17983ae6e6367ad7a940cb219eab247a9304 (patch)
tree8ca1ef49af2a96e7daebe624d91fdf679814a057 /src/cmd/upas/scanmail/spam.h
parentcd3745196389579fb78b9b01ef1daefb5a57aa71 (diff)
downloadplan9port-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.h62
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*);