diff -urN wwwcount2.5.orig/configure wwwcount2.5/configure --- wwwcount2.5.orig/configure Mon Mar 19 10:59:50 2001 +++ wwwcount2.5/configure Mon Nov 25 18:41:32 2002 @@ -1357,7 +1357,7 @@ fi -for ac_func in flock strcasecmp mktime strftime gmtime +for ac_func in fcntl flock strcasecmp mktime strftime gmtime do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:1364: checking for $ac_func" >&5 diff -urN wwwcount2.5.orig/configure.in wwwcount2.5/configure.in --- wwwcount2.5.orig/configure.in Mon Mar 19 10:59:50 2001 +++ wwwcount2.5/configure.in Mon Nov 25 18:41:52 2002 @@ -28,7 +28,7 @@ dnl AC_CHECK_FUNC(flock,AC_DEFINE(HAVE_FLOCK)) dnl AC_CHECK_FUNC(strcasecmp,AC_DEFINE(HAVE_STRCASECMP)) dnl AC_CHECK_FUNC(mktime,AC_DEFINE(HAVE_MKTIME)) -AC_CHECK_FUNCS(flock strcasecmp mktime strftime gmtime) +AC_CHECK_FUNCS(fcntl flock strcasecmp mktime strftime gmtime) AC_MSG_CHECKING([for system type]) case "$host_os" in diff -urN wwwcount2.5.orig/src/Makefile wwwcount2.5/src/Makefile --- wwwcount2.5.orig/src/Makefile Mon Apr 9 01:15:51 2001 +++ wwwcount2.5/src/Makefile Mon Nov 25 19:12:09 2002 @@ -20,7 +20,7 @@ INCLUDES= -I. $(CFG_INCLUDES) $(BIGPLUS_INCLUDES) $(COMBINE_INCLUDES) CC= gcc -DEFS= -DSTDC_HEADERS=1 -DHAVE_SYS_WAIT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_STRING_H=1 -DHAVE_FCNTL_H=1 -DHAVE_MEMORY_H=1 -DHAVE_MALLOC_H=1 -DHAVE_UNISTD_H=1 -DHAVE_CTYPE_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_FILE_H=1 -DHAVE_STDLIB_H=1 -DHAVE_FLOCK=1 -DHAVE_STRCASECMP=1 -DHAVE_MKTIME=1 -DHAVE_STRFTIME=1 -DHAVE_GMTIME=1 +DEFS= -DSTDC_HEADERS=1 -DHAVE_SYS_WAIT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_STRING_H=1 -DHAVE_FCNTL_H=1 -DHAVE_MEMORY_H=1 -DHAVE_MALLOC_H=1 -DHAVE_UNISTD_H=1 -DHAVE_CTYPE_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_FILE_H=1 -DHAVE_STDLIB_H=1 -DHAVE_FCNTL=1 -DHAVE_FLOCK=1 -DHAVE_STRCASECMP=1 -DHAVE_MKTIME=1 -DHAVE_STRFTIME=1 -DHAVE_GMTIME=1 PROGNAME=Count.cgi CFG_LIB= ../libs/mcfg/libmcfg.a diff -urN wwwcount2.5.orig/src/parse.c wwwcount2.5/src/parse.c --- wwwcount2.5.orig/src/parse.c Mon Apr 9 01:15:51 2001 +++ wwwcount2.5/src/parse.c Mon Nov 25 18:18:53 2002 @@ -1086,24 +1086,44 @@ int fd; { +#ifdef HAVE_FCNTL + static struct flock lock; + lock.l_type = F_WRLCK; + lock.l_start = 0; + lock.l_whence = SEEK_SET; + lock.l_len = 0; + lock.l_pid = getpid(); + (void) fcntl(fd, F_SETLKW, &lock); +#else #ifdef HAVE_FLOCK (void) flock(fd,LOCK_EX); #else lseek(fd,0L,0); (void) lockf(fd,F_LOCK,0L); #endif +#endif } void UnsetLock (fd) int fd; { +#ifdef HAVE_FCNTL + static struct flock lock; + lock.l_type = F_UNLCK; + lock.l_start = 0; + lock.l_whence = SEEK_SET; + lock.l_len = 0; + lock.l_pid = getpid(); + (void) fcntl(fd, F_SETLK, &lock); +#else #ifdef HAVE_FLOCK (void) flock(fd,LOCK_UN); #else lseek(fd,0L,0); (void) lockf(fd,F_ULOCK,0L); #endif +#endif } #endif /* SYS_UNIX */