diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-12-22 21:39:23 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-12-22 21:54:43 +0200 |
commit | 67a64a6a7809c183516740696e15ab88f82d7ef0 (patch) | |
tree | b58f30a8cee98bac7c9f4bc8236c86eefdadb4ef /configure.ac | |
parent | 2c28190e77ce38b6437a2be8337680f77f58d37a (diff) | |
download | wydawca-67a64a6a7809c183516740696e15ab88f82d7ef0.tar.gz wydawca-67a64a6a7809c183516740696e15ab88f82d7ef0.tar.bz2 |
Implement inotify support.
* configure.ac: New option --with-inotify.
Bye default, use inotify if it is present.
* src/watcher.c: New file. Implements inotify watcher.
* src/Makefile.am [COND_INOTIFY] (wydawca_SOURCES): Add watcher.c
* src/diskio.c (dir_get_path): New function.
* src/job.c (job) <spool>: Remove const qualifier. All uses changed.
(inotify_spool): New pseudo-spool.
(fake_spool): Remove static qualifier.
(wydawca_scanner): Support for inotify spools.
* src/net.c (open_listener): Don't exit if the listener
address is not set.
(wydawca_listener): Listen on the listener socket and
on the inotify descriptor. If none is set, bail out.
* src/process.c (for_each_spool)
(file_info_cleanup)
(spool_cwd_add_new_file,spool_add_new_file): New functions.
(scan_spool_unlocked): Use spool_cwd_add_new_file.
Don't initialize dictionaries here: it will be done in
spool_commit_triplets.
(spool_open_dictionaries): New function.
(close_dictionaries): Rename to spool_close_dictionaries.
Clear dict_inited.
* src/triplet.c (hash_triplet_compare): Compare spools as well.
(register_file): Likewise.
(triplet_lookup): New function.
(check_triplet_state): New argument: noauth. All uses updated.
(enumerate_triplets): Rename to spool_commit_triplets.
Call spool_open_dictionaries.
(count_processable_triplets,triplet_remove_file): New functions.
* src/verify.c (verify_directive_file): New argument: noauth.
All uses updated.
* src/vtab.c (reg): Initialize get_path member.
(get_path): New function.
* src/wydawca.c (main): Set print_version_hook.
* src/wydawca.h (virt_tab) <get_path>: New method.
(spool) <dict_inited>: New member.
(fake_spool, inotify_spool): New externs.
(spool_add_new_file, spool_cwd_add_new_file)
(spool_open_dictionaries, spool_close_dictionaries)
(for_each_spool, count_processable_triplets)
(triplet_remove_file, get_path): New protos.
(enumerate_triplets): Rename to spool_commit_triplets.
(verify_directive_file): Take two arguments.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index a503cc7..2683b9b 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -15,7 +15,8 @@ | |||
15 | # along with wydawca. If not, see <http://www.gnu.org/licenses/>. | 15 | # along with wydawca. If not, see <http://www.gnu.org/licenses/>. |
16 | 16 | ||
17 | AC_PREREQ(2.63) | 17 | AC_PREREQ(2.63) |
18 | AC_INIT([wydawca], 2.1.90, [bug-wydawca@gnu.org.ua]) | 18 | AC_INIT([wydawca], 2.1.90, [bug-wydawca@gnu.org.ua], [wydawca], |
19 | [http://www.gnu.org.ua/software/wydawca]) | ||
19 | AC_CONFIG_SRCDIR([src/wydawca.c]) | 20 | AC_CONFIG_SRCDIR([src/wydawca.c]) |
20 | AC_CONFIG_AUX_DIR([build-aux]) | 21 | AC_CONFIG_AUX_DIR([build-aux]) |
21 | AC_CONFIG_HEADER([config.h]) | 22 | AC_CONFIG_HEADER([config.h]) |
@@ -33,7 +34,7 @@ AC_PROG_RANLIB | |||
33 | # Checks for header files. | 34 | # Checks for header files. |
34 | AC_HEADER_STDC | 35 | AC_HEADER_STDC |
35 | AC_HEADER_SYS_WAIT | 36 | AC_HEADER_SYS_WAIT |
36 | AC_CHECK_HEADERS([stdlib.h string.h sys/file.h unistd.h]) | 37 | AC_CHECK_HEADERS([stdlib.h string.h sys/file.h unistd.h sys/inotify.h]) |
37 | 38 | ||
38 | # Checks for typedefs, structures, and compiler characteristics. | 39 | # Checks for typedefs, structures, and compiler characteristics. |
39 | AC_C_CONST | 40 | AC_C_CONST |
@@ -50,7 +51,9 @@ AC_FUNC_MALLOC | |||
50 | AC_FUNC_MEMCMP | 51 | AC_FUNC_MEMCMP |
51 | AC_FUNC_STAT | 52 | AC_FUNC_STAT |
52 | AC_FUNC_VPRINTF | 53 | AC_FUNC_VPRINTF |
53 | AC_CHECK_FUNCS([fchdir memset strchr strdup strerror strrchr setegid setregid setresgid setresuid seteuid setreuid vsyslog sysconf getdtablesize]) | 54 | AC_CHECK_FUNCS([fchdir memset strchr strdup strerror strrchr setegid setregid\ |
55 | setresgid setresuid seteuid setreuid vsyslog sysconf getdtablesize\ | ||
56 | inotify_init]) | ||
54 | 57 | ||
55 | # ********************** | 58 | # ********************** |
56 | # Mailutils | 59 | # Mailutils |
@@ -107,6 +110,29 @@ if test "$status_tcpwrap" = yes; then | |||
107 | AC_DEFINE_UNQUOTED([WITH_LIBWRAP],1,[Defined if compiling with libwrap]) | 110 | AC_DEFINE_UNQUOTED([WITH_LIBWRAP],1,[Defined if compiling with libwrap]) |
108 | fi | 111 | fi |
109 | 112 | ||
113 | # ********************** | ||
114 | # TCP wrappers | ||
115 | # ********************** | ||
116 | AC_ARG_WITH(inotify, | ||
117 | AC_HELP_STRING([--with-inotify], | ||
118 | [compile with inotify(7) support (Linux-specific)]), | ||
119 | [status_inotify=${withval}], | ||
120 | [status_inotify=probe]) | ||
121 | if test $status_inotify != no; then | ||
122 | if test "$ac_cv_header_sys_inotify_h" = yes && | ||
123 | test "$ac_cv_func_inotify_init" = yes; then | ||
124 | status_inotify=yes | ||
125 | elif test $status_inotify = probe; then | ||
126 | status_inotify=no | ||
127 | else | ||
128 | AC_MSG_FAILURE([Requested inotify(7) support is not available]) | ||
129 | fi | ||
130 | fi | ||
131 | if test $status_inotify = yes; then | ||
132 | AC_DEFINE([WITH_INOTIFY],1,[Set to 1 if inotify(7) is to be used]) | ||
133 | fi | ||
134 | AM_CONDITIONAL([COND_INOTIFY],[test $status_inotify = yes]) | ||
135 | |||
110 | # Grecs subsystem | 136 | # Grecs subsystem |
111 | GRECS_SETUP([grecs],[git2chg getopt tests]) | 137 | GRECS_SETUP([grecs],[git2chg getopt tests]) |
112 | 138 | ||