diff -u -urN -x CVS -x *.orig proftp.dist/Makefile.in proftpd-1.2.0pre9/Makefile.in
--- Makefile.in	Mon Dec 20 12:06:03 1999
Makefile.in	Mon Dec 20 12:09:13 1999
@@ -119,7 +119,7 @@
 	rm -f src/Makefile modules/Makefile lib/Makefile
 	rm -f config.h config.status config.cache config.log \
 	      Makefile proftpd.conf development.notes
-	rm -f Make.modules Make.rules contrib/proftpd.spec
+	rm -f Make.modules Make.rules contrib/dist/rpm/proftpd.spec
 	rm -f Makefile lib/Makefile modules/Makefile src/Makefile
 	rm -rf `find . -name "CVS"`
 	rm -rf `find . -name "*~"`
diff -u -urN -x CVS -x *.orig proftp.dist/Makefile.in.rej proftpd-1.2.0pre9/Makefile.in.rej
diff -u -urN -x CVS -x *.orig proftp.dist/NEWS proftpd-1.2.0pre9/NEWS
--- NEWS	Mon Dec 20 12:06:02 1999
NEWS	Mon Dec 20 12:08:31 1999
@@ -1,4 +1,13 @@
-$Id: NEWS,v 1.14 1999/10/27 03:01:18 macgyver Exp $
+$Id: NEWS,v 1.15 1999/11/29 05:26:40 macgyver Exp $
+
+1.2.0pre10 - Released: ???
+--------------------------
+- sendfile() handles errors and non-optimal conditions The Right Way(tm).
+
+- install_group works right in warped cases of having more than one GID 0
+  group defined.  No, don't ask. :)
+
+- sendfile() doesn't log spurious messages unless it's in debug mode now.
 
 1.2.0pre9 - Released: 10/27/99
 ------------------------------
diff -u -urN -x CVS -x *.orig proftp.dist/configure proftpd-1.2.0pre9/configure
--- configure	Mon Dec 20 12:06:01 1999
configure	Mon Dec 20 12:08:31 1999
@@ -1961,7 +1961,7 @@
 
 test x"$install_user" = x && install_user=root
 if test x"$install_group" = x ; then
-	install_group=`sed -n 's/^\(.*\):.*:0:.*/\1/p' /etc/group 2>/dev/null`
+	install_group=`sed -n '/.*:.*:0:/{s/^\(.*\):.*:0:.*/\1/p;q;}' /etc/group 2>/dev/null`
 fi
 
 
diff -u -urN -x CVS -x *.orig proftp.dist/configure.in proftpd-1.2.0pre9/configure.in
--- configure.in	Mon Dec 20 12:06:01 1999
configure.in	Mon Dec 20 12:08:31 1999
@@ -154,7 +154,7 @@
 
 test x"$install_user" = x && install_user=root
 if test x"$install_group" = x ; then
-	install_group=`sed -n 's/^\(.*\):.*:0:.*/\1/p' /etc/group 2>/dev/null`
+	install_group=`sed -n '/.*:.*:0:/{s/^\(.*\):.*:0:.*/\1/p;q;}' /etc/group 2>/dev/null`
 fi
 
 AC_SUBST(install_user)
diff -u -urN -x CVS -x *.orig proftp.dist/modules/mod_xfer.c proftpd-1.2.0pre9/modules/mod_xfer.c
--- modules/mod_xfer.c	Mon Dec 20 12:05:53 1999
modules/mod_xfer.c	Mon Dec 20 12:09:13 1999
@@ -20,7 +20,7 @@
 
 /*
  * Data transfer module for ProFTPD
- * $Id: mod_xfer.c,v 1.20 1999/10/27 01:58:03 macgyver Exp $
+ * $Id: mod_xfer.c,v 1.24 1999/10/27 20:43:03 macgyver Exp $
  */
 
 /* History Log:
@@ -707,14 +707,25 @@
       
       len = data_sendfile(retr_fd, &off, session.xfer.file_size - cnt);
       if(len == -1) {
-	log_pri(LOG_ERR, "data_sendfile error: %d:%s.",
-		errno, strerror(errno));
 	switch (errno) {
 	case EAGAIN:
+	case EINTR:
+	  /* Interrupted call, or the other side wasn't ready yet.
+	   */
 	  continue;
+	  
+	case EPIPE:
+	  /* Other side broke the connection.
+	   */
+	  break;
+	  
 	default:
+	  log_pri(LOG_ERR, "data_sendfile error %d: %s.",
+		  errno, strerror(errno));
+#if 0
 	  log_pri(LOG_ERR, "Unknown data_sendfile() error %d: %s.",
 		  errno, strerror(errno));
+#endif
 	}
       }
 
diff -u -urN -x CVS -x *.orig proftp.dist/src/data.c proftpd-1.2.0pre9/src/data.c
--- src/data.c	Mon Dec 20 12:05:54 1999
src/data.c	Mon Dec 20 12:09:25 1999
@@ -20,7 +20,7 @@
  
 /*
  * Data connection management functions
- * $Id: data.c,v 1.6 1999/10/05 05:37:21 macgyver Exp $
+ * $Id: data.c,v 1.7 1999/11/29 05:26:40 macgyver Exp $
  */
 
 #include "conf.h"
@@ -546,7 +546,7 @@
     if(fcntl(session.d->outf->fd, F_SETFL, flags ^ O_NONBLOCK) == -1)
       return -1;
   
-  log_pri(DEBUG4, "data_sendfile(%d,%d,%d)", retr_fd, *offset, count);
+  log_debug(DEBUG4, "data_sendfile(%d,%d,%d)", retr_fd, *offset, count);
 #if defined(HAVE_LINUX_SENDFILE)
   if ((len = sendfile(session.d->outf->fd, retr_fd, offset, count)) == -1) {
 #elif defined(HAVE_BSD_SENDFILE)
@@ -560,7 +560,7 @@
     return -1;
   }
   
-  log_pri(DEBUG4, "data_sendfile: %ld", len);
+  log_debug(DEBUG4, "data_sendfile: %ld", len);
   
   if (flags & O_NONBLOCK)
     fcntl(session.d->outf->fd, F_SETFL, flags);
diff -u -urN -x CVS -x *.orig proftp.dist/src/support.c proftpd-1.2.0pre9/src/support.c
--- src/support.c	Mon Dec 20 12:05:55 1999
src/support.c	Mon Dec 20 12:09:28 1999
@@ -19,7 +19,7 @@
 
 /* Various basic support routines for ProFTPD, used by all modules
  * and not specific to one or another.
- * $Id: support.c,v 1.9 1999/10/01 23:52:38 macgyver Exp $
+ * $Id: support.c,v 1.10 1999/12/09 14:54:17 macgyver Exp $
  */
 
 /* History Log:
@@ -512,7 +512,7 @@
       time(&now);
       tm = *(localtime(&now));
 
-      tm.tm_year = atoi(safe_token(&cp)) % 100;
+      tm.tm_year = atoi(safe_token(&cp)) - 1900;
       tm.tm_mon = atoi(safe_token(&cp));
       tm.tm_mday = atoi(safe_token(&cp));
       tm.tm_hour = atoi(safe_token(&cp));
@@ -522,7 +522,7 @@
       deny_str = safe_token(&cp);
       disc_str = safe_token(&cp);
 
-      if((shuttime = mktime(&tm)) == (time_t)-1) {
+      if((shuttime = mktime(&tm)) == (time_t) - 1) {
         fclose(fp);
         return 0;
       }
