Define a main function with some meat in it.
[inoclam.git] / inotify.c
blob4413dd796df4ee8c75c532a55ce646ba149d9f12
1 /*
2 * inoclam - Inotify+ClamAV virus scanner
3 * Copyright (C) 2007 Vermont Department of Taxes
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 * Contributor(s):
19 * Tom Cort <tom.cort@state.vt.us>
22 #include <errno.h>
23 #include <idn-int.h>
24 #include <libdaemon/dlog.h>
25 #include <sys/inotify.h>
27 #include "inotify.h"
28 #include "sig.h"
30 /**
31 * Watch the specified directory for changes and call contains_virus()
32 * @param basedir the directory to watch.
34 void inotify_main(char *basedir) {
35 int fd;
36 uint32_t wd;
38 fd = inotify_init();
39 if (fd == -1) {
40 daemon_log(LOG_ERR, "(%s:%u) inotify_init failed: %s", __FILE__, __LINE__, strerror(errno));
43 wd = inotify_add_watch(fd, ".", IN_ALL_EVENTS);
45 daemon_log(LOG_INFO, "(%s:%u) entering inotify loop", __FILE__, __LINE__);
47 do {
49 } while (!exit_now);
51 daemon_log(LOG_INFO, "(%s:%u) leaving inotify loop", __FILE__, __LINE__);
53 inotify_rm_watch(fd, wd);
54 close(fd);