From bc20169deb07e4577ff91f0667e7a02db3e3abf7 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Wed, 31 Mar 2004 03:27:58 +0000 Subject: [PATCH] optimized some things now check, if getppid()==original_parent instead of getppid()!=1 (might make a difference in vservers) git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1409 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/src/lockfile.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/util-vserver/src/lockfile.c b/util-vserver/src/lockfile.c index d65b84e..074bbea 100644 --- a/util-vserver/src/lockfile.c +++ b/util-vserver/src/lockfile.c @@ -30,6 +30,7 @@ #include #include #include +#include static void showHelp(int fd, char const *cmd, int res) @@ -73,12 +74,9 @@ showVersion() exit(0); } -static volatile int timeout_flag = 0; - static void alarmFunc(int UNUSED sig) { - timeout_flag = 1; signal(SIGALRM, alarmFunc); } @@ -93,6 +91,7 @@ int main(int argc, char *argv[]) int fd, sync_fd; int idx = 1; time_t end_time; + pid_t const ppid = getppid(); if (argc>=2) { if (strcmp(argv[1], "--help") ==0) showHelp(1, argv[0], 0); @@ -108,8 +107,6 @@ int main(int argc, char *argv[]) end_time = time(0); if (argc==idx+3) end_time += atoi(argv[idx+2]); else end_time += 300; - - if ((fd=open(argv[idx], O_CREAT|O_RDONLY|O_NOFOLLOW|O_NONBLOCK, 0644))==-1) perror("lockfile: open()"); @@ -120,24 +117,24 @@ int main(int argc, char *argv[]) else if (siginterrupt(SIGALRM, 1)==-1) perror("lockfile: siginterrupt()"); else if (signal(SIGALRM, alarmFunc)==SIG_ERR || - signal(SIGHUP, quitFunc)==SIG_ERR) + signal(SIGHUP, quitFunc) ==SIG_ERR) perror("lockfile: signal()"); - else while (time(0)