diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 | 
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /maildir/testmaildirfilter.c | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2 | |
Initial checkin
Imported from subversion report, converted to git. Updated all paths in
scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'maildir/testmaildirfilter.c')
| -rw-r--r-- | maildir/testmaildirfilter.c | 86 | 
1 files changed, 86 insertions, 0 deletions
| diff --git a/maildir/testmaildirfilter.c b/maildir/testmaildirfilter.c new file mode 100644 index 0000000..6826208 --- /dev/null +++ b/maildir/testmaildirfilter.c @@ -0,0 +1,86 @@ +/* +** Copyright 2000 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +#include	"maildirfilter.h" +#include	"maildirfiltertypelist.h" +#include	<stdio.h> +#include	<string.h> +#include	<unistd.h> + + +int main(int argc, char **argv) +{ +const char *name; +enum maildirfiltertype type; +const char *header; +const char *value; +const char *folder; +int errcode, i; +struct maildirfilter mf; +struct maildirfilterrule *r; +int flags=0; + +	if (argc < 6) +	{ +		fprintf(stderr, "Invalid args\n"); +		return (1); +	} + +	name=argv[1]; + +	value=argv[2]; +	if (*value == '-') +	{ +		flags |= MFR_DOESNOT; +		++value; +	} +	if (*value == '/') +	{ +		flags |= MFR_BODY; +		++value; +	} + +	for (i=0; typelist[i].name; i++) +		if (strcasecmp(typelist[i].name, value) == 0) +			break; +	if (!typelist[i].name) +	{ +		fprintf(stderr, "unknown op: %s\n", argv[2]); +		return (1); +	} +	type=typelist[i].type; +	header=argv[3]; +	value=argv[4]; +	folder=argv[5]; + +	memset(&mf, 0, sizeof(mf)); + +	errcode=maildir_filter_loadrules(&mf, "testrules"); +	if (errcode && errcode != MF_LOADNOTFOUND) +	{ +		fprintf(stderr, "Error loading testrules: %d\n", errcode); +		return (1); +	} + +	r=maildir_filter_appendrule(&mf, name, type, flags, +		header, value, folder, "", &errcode); + +	if (!r) +	{ +		fprintf(stderr, "Error appending %s: %d\n", name, errcode); +		return (1); +	} + +	unlink("maildirsize"); +	errcode=maildir_filter_saverules(&mf, "testrules2", ".", "Maildir", "nobody@example.com"); +	if (errcode) +	{ +		fprintf(stderr, "Error saving testrules2: %d\n", errcode); +		return (1); +	} +	rename("testrules2", "testrules"); +	printf("Added %s\n", name); +	return (0); +} | 
