r6825: Fall back to chsize if ftruncate is not available
authorJelmer Vernooij <jelmer@samba.org>
Mon, 16 May 2005 18:57:56 +0000 (18:57 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:16:47 +0000 (13:16 -0500)
patch from Steven Edwards

source/build/m4/rewrite.m4
source/lib/replace.c

index 0da7316f5af259f5b72564656e9a1cbc216f9065..6917138ba2496418fbac541d9e6390bb3b9a84d5 100644 (file)
@@ -192,7 +192,7 @@ AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy st
 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
 AC_CHECK_FUNCS(initgroups select rdchk getgrnam getgrent pathconf realpath)
-AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate)
+AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate chsize)
 AC_CHECK_FUNCS(setluid getpwanam setlinebuf)
 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
 AC_CHECK_FUNCS(syslog vsyslog getgrouplist timegm backtrace)
index ca367da9b560f5f5277ae3c92f8cc6185f4a786a..89612912b723d115079c023d25d5931c1818eb57 100644 (file)
@@ -32,6 +32,9 @@ ftruncate for operating systems that don't have it
 ********************************************************************/
  int ftruncate(int f,off_t l)
 {
+#ifdef HAVE_CHSIZE
+      return chsize(f,l);
+#else
       struct  flock   fl;
 
       fl.l_whence = 0;
@@ -39,6 +42,7 @@ ftruncate for operating systems that don't have it
       fl.l_start = l;
       fl.l_type = F_WRLCK;
       return fcntl(f, F_FREESP, &fl);
+#endif
 }
 #endif /* HAVE_FTRUNCATE */