/*
 * $CC $CFLAGS debugm.c -lclamav -lefence (or what ever memory debugger)
 *
 * njh@bandsman.co.uk
 */
#include <stdio.h>
#include <errno.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <malloc.h>
#include <clamav.h>
#include <sys/resource.h>

int
main(int argc, char **argv)
{
	struct rlimit rlim;

	if(argc == 1) {
		fprintf(stderr, "Usage: %s files...\n", argv[0]);
		return 1;
	}
	rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY;
	if(setrlimit(RLIMIT_CORE, &rlim) < 0)
		perror("setrlimit");

	if(mkdir("/tmp/mboxtest", 0750) < 0) {
		perror("/tmp/mboxtest");
		return errno;
	}
	while(*++argv) {
		int fd = open(*argv, 0);

		if(fd < 0) {
			perror(*argv);
			return errno;
		}
		printf("cl_mbox(%s) returns %d\n",
			*argv, cl_mbox("/tmp/mboxtest", fd));
		close(fd);
	}
	puts("Finished - don't forget to rm -rf /tmp/mboxtest");

	exit(0);
}