#ifndef lint
static const char rcsid[] =
- "$Id: itime.c,v 1.13 2000/12/04 15:43:16 stelian Exp $";
+ "$Id: itime.c,v 1.20 2001/07/18 09:12:05 stelian Exp $";
#endif /* not lint */
+#include <config.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#ifdef __STDC__
+#include <stdlib.h>
+#include <string.h>
+#endif
+
#include <sys/param.h>
#include <sys/time.h>
+#include <time.h>
#ifdef __linux__
+#ifdef HAVE_EXT2FS_EXT2_FS_H
+#include <ext2fs/ext2_fs.h>
+#else
#include <linux/ext2_fs.h>
+#endif
+#include <ext2fs/ext2fs.h>
#include <bsdcompat.h>
#include <sys/file.h>
#include <unistd.h>
-#else
-#ifdef sunos
+#elif defined sunos
#include <sys/vnode.h>
#include <ufs/fsdir.h>
#else
#include <ufs/ufs/dinode.h>
#endif
-#endif
#include <protocols/dumprestore.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#ifdef __STDC__
-#include <stdlib.h>
-#include <string.h>
-#endif
-
-#ifdef __linux__
-#include <ext2fs/ext2fs.h>
-#endif
-
#include "dump.h"
struct dumpdates **ddatev;
{
register struct dumpdates *ddp;
register int i;
- char *fname;
- fname = disk;
#ifdef FDEBUG
msg("Looking for name %s in dumpdates = %s for level = %c\n",
- fname, dumpdates, level);
+ disk, dumpdates, level);
#endif
spcl.c_ddate = 0;
lastlevel = '0';
* and older date
*/
ITITERATE(i, ddp) {
- if (strncmp(fname, ddp->dd_name, sizeof (ddp->dd_name)) != 0)
+ if (strncmp(disk, ddp->dd_name, sizeof (ddp->dd_name)) != 0)
continue;
if (ddp->dd_level >= level)
continue;
-#ifdef __linux__
if (ddp->dd_ddate <= (time_t)spcl.c_ddate)
-#else
- if (ddp->dd_ddate <= spcl.c_ddate)
-#endif
continue;
spcl.c_ddate = ddp->dd_ddate;
lastlevel = ddp->dd_level;
register struct dumpdates *dtwalk;
register int i;
int fd;
- char *fname;
if(uflag == 0)
return;
quit("cannot rewrite %s: %s\n", dumpdates, strerror(errno));
fd = fileno(df);
(void) flock(fd, LOCK_EX);
- fname = disk;
free((char *)ddatev);
ddatev = 0;
nddates = 0;
quit("fseek: %s\n", strerror(errno));
spcl.c_ddate = 0;
ITITERATE(i, dtwalk) {
- if (strncmp(fname, dtwalk->dd_name,
+ if (strncmp(disk, dtwalk->dd_name,
sizeof (dtwalk->dd_name)) != 0)
continue;
if (dtwalk->dd_level != level)
(struct dumpdates *)calloc(1, sizeof (struct dumpdates));
nddates += 1;
found:
- (void) strncpy(dtwalk->dd_name, fname, sizeof (dtwalk->dd_name));
+ (void) strncpy(dtwalk->dd_name, disk, sizeof (dtwalk->dd_name));
dtwalk->dd_level = level;
dtwalk->dd_ddate = spcl.c_date;
if (ftruncate(fd, ftell(df)))
quit("ftruncate (%s): %s\n", dumpdates, strerror(errno));
(void) fclose(df);
- msg("level %c dump on %s", level,
-#ifdef __linux__
- spcl.c_date == 0 ? "the epoch\n" : ctime4(&spcl.c_date));
-#else
- spcl.c_date == 0 ? "the epoch\n" : ctime(&spcl.c_date));
-#endif
}
static void