@@ -5,8 +5,6 @@
PROGNAME = ${PACKAGE_NAME}
PROGVERSION = ${PACKAGE_VERSION}
PROGDATE = December\ 2011
-LOCKDIR = /var/lib/ebtables
-LOCKFILE = ${LOCKDIR}/lock
INITDIR = /etc/rc.d/init.d
initddir = ${INITDIR}
sysconfigdir = ${sysconfdir}/sysconfig
@@ -21,7 +19,7 @@ AM_CPPFLAGS = ${regular_CPPFLAGS} -I${top_srcdir}/include \
-DPROGVERSION=\"${PACKAGE_VERSION}\" -DPROGNAME=\"${PACKAGE_NAME}\" \
-DPROGDATE=\"${PROGDATE}\" \
-D_PATH_ETHERTYPES=\"${sysconfdir}/ethertypes\" \
- -DLOCKFILE=\"${LOCKFILE}\" -DLOCKDIR=\"${LOCKDIR}\" \
+ -DLOCKFILE=\"${LOCKFILE}\" \
-DEBTD_ARGC_MAX=${EBTD_ARGC_MAX} -DEBTD_CMDLINE_MAXLN=${EBTD_CMDLINE_MAXLN} \
-DEBTD_PIPE=\"${PIPE}\" -DEBTD_PIPE_DIR=\"${PIPE_DIR}\"
AM_CFLAGS = ${regular_CFLAGS}
@@ -10,6 +10,9 @@ AC_DISABLE_STATIC
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
AM_PROG_LIBTOOL
+AC_ARG_VAR([LOCKFILE], [Custom libebtc lockfile path (default: /var/lib/ebtables/lock)])
+AS_IF([test "x$LOCKFILE" = x], [LOCKFILE="/var/lib/ebtables/lock"])
+
regular_CFLAGS="-Wall -Wunused"
regular_CPPFLAGS=""
case "$host" in
@@ -36,6 +36,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
+#include <libgen.h>
static void decrease_chain_jumps(struct ebt_u_replace *replace);
static int iterate_entries(struct ebt_u_replace *replace, int type);
@@ -134,10 +135,6 @@ void ebt_list_extensions()
}
}
-#ifndef LOCKFILE
-#define LOCKDIR "/var/lib/ebtables"
-#define LOCKFILE LOCKDIR"/lock"
-#endif
int use_lockfd;
/* Returns 0 on success, -1 when the file is locked by another process
* or -2 on any other error. */
@@ -148,7 +145,7 @@ static int lock_file()
retry:
fd = open(LOCKFILE, O_CREAT, 00600);
if (fd < 0) {
- if (try == 1 || mkdir(LOCKDIR, 00700))
+ if (try == 1 || mkdir(dirname(LOCKFILE), 00700))
return -2;
try = 1;
goto retry;
Users may pass LOCKFILE=/some/path/to/file when calling configure to make libebtc use that path for its lockfile. To simplify things, drop LOCKDIR completely and instead call dirname() when trying to create the parent directory. Given that we always define LOCKFILE via compiler flag, drop the fallback define from libebtc.c. Signed-off-by: Phil Sutter <phil@nwl.cc> --- Makefile.am | 4 +--- configure.ac | 3 +++ libebtc.c | 7 ++----- 3 files changed, 6 insertions(+), 8 deletions(-)