Porting to SunOS 5.8:
authorGuus Sliepen <guus@tinc-vpn.org>
Tue, 7 Nov 2000 22:33:33 +0000 (22:33 +0000)
committerGuus Sliepen <guus@tinc-vpn.org>
Tue, 7 Nov 2000 22:33:33 +0000 (22:33 +0000)
- Include all header files necessary
- Check for flock() function

configure.in
lib/pidfile.c

index beab351..3295de9 100644 (file)
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
 dnl Process this file with autoconf to produce a configure script.
 
-dnl $Id: configure.in,v 1.13.2.13 2000/11/02 21:38:55 zarq Exp $
+dnl $Id: configure.in,v 1.13.2.14 2000/11/07 22:33:33 guus Exp $
 
 AC_INIT(src/tincd.c)
 AM_INIT_AUTOMAKE(tinc, 1.0pre3)
 
 AC_INIT(src/tincd.c)
 AM_INIT_AUTOMAKE(tinc, 1.0pre3)
@@ -46,7 +46,7 @@ dnl Checks for library functions.
 AC_FUNC_MEMCMP
 AC_FUNC_ALLOCA
 AC_TYPE_SIGNAL
 AC_FUNC_MEMCMP
 AC_FUNC_ALLOCA
 AC_TYPE_SIGNAL
-AC_CHECK_FUNCS(ftime socket select strtol strerror)
+AC_CHECK_FUNCS(ftime socket select strtol strerror flock)
 jm_FUNC_MALLOC
 jm_FUNC_REALLOC
 
 jm_FUNC_MALLOC
 jm_FUNC_REALLOC
 
index 2f30a4e..54a6b4c 100644 (file)
@@ -32,6 +32,8 @@
 #include <string.h>
 #include <errno.h>
 #include <signal.h>
 #include <string.h>
 #include <errno.h>
 #include <signal.h>
+#include <sys/types.h>
+#include <fcntl.h>
 
 /* read_pid
  *
 
 /* read_pid
  *
@@ -93,13 +95,15 @@ int write_pid (char *pidfile)
       fprintf(stderr, "Can't open or create %s.\n", pidfile);
       return 0;
   }
       fprintf(stderr, "Can't open or create %s.\n", pidfile);
       return 0;
   }
-
+  
+#ifdef HAVE_FLOCK
   if (flock(fd, LOCK_EX|LOCK_NB) == -1) {
       fscanf(f, "%d", &pid);
       fclose(f);
       printf("Can't lock, lock is held by pid %d.\n", pid);
       return 0;
   }
   if (flock(fd, LOCK_EX|LOCK_NB) == -1) {
       fscanf(f, "%d", &pid);
       fclose(f);
       printf("Can't lock, lock is held by pid %d.\n", pid);
       return 0;
   }
+#endif
 
   pid = getpid();
   if (!fprintf(f,"%d\n", pid)) {
 
   pid = getpid();
   if (!fprintf(f,"%d\n", pid)) {
@@ -109,11 +113,13 @@ int write_pid (char *pidfile)
   }
   fflush(f);
 
   }
   fflush(f);
 
+#ifdef HAVE_FLOCK
   if (flock(fd, LOCK_UN) == -1) {
       printf("Can't unlock pidfile %s, %s.\n", pidfile, strerror(errno));
       close(fd);
       return 0;
   }
   if (flock(fd, LOCK_UN) == -1) {
       printf("Can't unlock pidfile %s, %s.\n", pidfile, strerror(errno));
       close(fd);
       return 0;
   }
+#endif
   close(fd);
 
   return pid;
   close(fd);
 
   return pid;