#include "bacula.h"
#include "find.h"
-extern size_t name_max; /* filename max length */
-extern size_t path_max; /* path name max length */
+extern int32_t name_max; /* filename max length */
+extern int32_t path_max; /* path name max length */
/*
* Structure for keeping track of hard linked files, we
if (status != 0 || result == NULL) {
break;
}
- ASSERT(name_max+1 > sizeof(struct dirent) + (int)NAMELEN(entry));
+ ASSERT(name_max+1 > (int)sizeof(struct dirent) + (int)NAMELEN(entry));
p = entry->d_name;
/* Skip `.', `..', and excluded file names. */
if (p[0] == '\0' || (p[0] == '.' && (p[1] == '\0' ||
* a block device, we do a raw backup of it or if it is
* a fifo, we simply read it.
*/
+#ifdef HAVE_FREEBSD_OS
+ /*
+ * On FreeBSD, all block devices are character devices, so
+ * to be able to read a raw disk, we need the check for
+ * a character device.
+ * crw-r----- 1 root operator - 116, 0x00040002 Jun 9 19:32 /dev/ad0s3
+ * crw-r----- 1 root operator - 116, 0x00040002 Jun 9 19:32 /dev/rad0s3
+ */
+ if (top_level && (S_ISBLK(ff_pkt->statp.st_mode) || S_ISCHR(ff_pkt->statp.st_mode))) {
+#else
if (top_level && S_ISBLK(ff_pkt->statp.st_mode)) {
+#endif
ff_pkt->type = FT_RAW; /* raw partition */
} else if (top_level && S_ISFIFO(ff_pkt->statp.st_mode) &&
ff_pkt->flags & FO_READFIFO) {