[lockdev-devel] [PATCH] drop baudboy.h
Ludwig Nussel
ludwig.nussel at suse.de
Wed Apr 21 09:45:26 UTC 2010
whether or not a helper is needed to lock devices needs to be
defined by the distribution at build time. It's transparent to
applications that use the ttylock interface.
---
configure.ac | 15 +++++++++++++++
src/Makefile.am | 2 +-
src/baudboy.h | 42 ------------------------------------------
src/baudboy_test.c | 1 -
src/lockdev.c | 25 ++++++++-----------------
5 files changed, 24 insertions(+), 61 deletions(-)
delete mode 100644 src/baudboy.h
diff --git a/configure.ac b/configure.ac
index 533e228..b0f0608 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,6 +40,21 @@ AC_HEADER_STDC
LT_INIT([disable-static])
+AC_MSG_CHECKING([whether the library needs to call a helper])
+AC_ARG_ENABLE(helper,AS_HELP_STRING([--enable-helper],[use helper binary for locking]),,enable_helper=auto)
+if test x$enable_helper = xauto; then
+ varlockperms=`stat -c %a /var/lock`
+ if test x"$varlockperms" != x777; then
+ enable_helper=yes
+ fi
+fi
+if test x$enable_helper = xyes; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED([TTYLOCK_USE_HELPER], 1, [set to 1 to enable use of helper binary])
+else
+ AC_MSG_RESULT([no])
+fi
+
dnl check if user wants debug
AC_MSG_CHECKING([whether to enable debug output])
AC_ARG_ENABLE(debug,AS_HELP_STRING([--enable-debug],[turn on debugging code]),,enable_debug=no)
diff --git a/src/Makefile.am b/src/Makefile.am
index a5b31e3..85aa3a7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,7 @@
sbin_PROGRAMS = lockdev
noinst_PROGRAMS = baudboy
-include_HEADERS = lockdev.h baudboy.h ttylock.h
+include_HEADERS = lockdev.h ttylock.h
AM_CPPFLAGS = -include $(top_builddir)/config.h -DSBINDIR=\"$(sbindir)\"
diff --git a/src/baudboy.h b/src/baudboy.h
deleted file mode 100644
index 6e41afd..0000000
--- a/src/baudboy.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 2001 Red Hat, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License
- as published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
-
- It is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
- Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-
-#ifndef _BAUDBOY_H_
-#define _BAUDBOY_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int ttylock_helper (const char * devname);
-int ttywait_helper (const char * devname);
-int ttyunlock_helper (const char * devname);
-int ttylocked_helper (const char * devname);
-
-#ifndef _LIBLOCKDEV_NO_BAUDBOY_DEFINES
-#define ttylock(devname) ttylock_helper(devname)
-#define ttywait(devname) ttywait_helper(devname)
-#define ttyunlock(devname) ttyunlock_helper(devname)
-#define ttylocked(devname) ttylocked_helper(devname)
-#endif
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif /* _BAUDBOY_H_ */
diff --git a/src/baudboy_test.c b/src/baudboy_test.c
index 768e260..e481270 100644
--- a/src/baudboy_test.c
+++ b/src/baudboy_test.c
@@ -8,7 +8,6 @@
#include <unistd.h>
#include <errno.h>
#include <string.h>
-#include "baudboy.h"
void
usage (void)
diff --git a/src/lockdev.c b/src/lockdev.c
index 8bcf8c6..88305e9 100644
--- a/src/lockdev.c
+++ b/src/lockdev.c
@@ -120,8 +120,6 @@
#include <sys/wait.h>
#include "lockdev.h"
#include "ttylock.h"
-#define _LIBLOCKDEV_NO_BAUDBOY_DEFINES
-#include "baudboy.h"
#define LOCKDEV_PATH SBINDIR "/lockdev"
@@ -906,6 +904,7 @@ dev_unlock (const char *devname,
}
+#ifndef TTYLOCK_USE_HELPER
int
ttylock(const char *devname)
{
@@ -925,16 +924,7 @@ ttylocked(const char *devname)
return dev_testlock( devname) == 0 ? 0 : -1;
}
-int
-ttywait (const char *devname)
-{
-
- int rc;
- while((rc = ttylocked(devname)) == 0)
- sleep(1);
- return rc;
-}
-
+#else
static int _spawn_helper(const char * argv[])
{
pid_t child;
@@ -1003,7 +993,7 @@ static int _spawn_helper(const char * argv[])
}
int
-ttylock_helper(const char * devname)
+ttylock(const char * devname)
{
const char * argv[] = { LOCKDEV_PATH, "-l", NULL, NULL};
argv[2] = devname;
@@ -1011,7 +1001,7 @@ ttylock_helper(const char * devname)
}
int
-ttyunlock_helper(const char * devname)
+ttyunlock(const char * devname)
{
const char * argv[] = { LOCKDEV_PATH, "-u", NULL, NULL};
argv[2] = devname;
@@ -1019,18 +1009,19 @@ ttyunlock_helper(const char * devname)
}
int
-ttylocked_helper(const char * devname)
+ttylocked(const char * devname)
{
const char * argv[] = { LOCKDEV_PATH, NULL, NULL};
argv[1] = devname;
return _spawn_helper(argv);
}
+#endif
int
-ttywait_helper(const char * devname)
+ttywait(const char * devname)
{
int rc;
- while((rc = ttylocked_helper(devname)) == 0)
+ while((rc = ttylocked(devname)) == 0)
sleep(1);
return rc;
}
--
1.6.4.2
More information about the lockdev-devel
mailing list