@echo "Compiling $<"
$(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) $(PYTHON_INC) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
#-------------------------------------------------------------------------
-all: Makefile $(TOOLS) gigaslam
+all: Makefile $(TOOLS) gigaslam grow
@echo "==== Make of tools is good ===="
@echo " "
gigaslam: gigaslam.o
$(CC) -o $@ gigaslam.o
+grow: grow.o ../lib/libbac.a
+ $(CXX) $(LDFLAGS) -L../lib -o $@ grow.o -lbac -lm $(DLIB) $(LIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS)
Makefile: $(srcdir)/Makefile.in $(topdir)/config.status
cd $(topdir) \
--- /dev/null
+/*
+ By John Walker written ages ago.
+
+ Create a sparse file.
+
+ Beat denial of service floggers to death by persuading
+ them to download a HOW_BIG pseudo GIF file which is actually
+ a holey file occupying trivial space on our server.
+
+ Make: make gigaslam
+ Run: ./gigaslam
+ Output: a file named gigaslam.gif that contains something like
+ 16K bytes (i.e. 2-8K blocks), but appears to be 1GB in
+ length because the second block is written at a 1GB
+ address.
+
+ Be careful what you do with this file as not all programs know
+ how to deal with sparse files.
+
+ Tweaked by Kern Sibbald, July 2007 to grow a file to a specified
+ size.
+
+*/
+
+#ifdef __GNUC__
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#ifndef _FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS 64
+#endif
+#endif
+
+#include "bacula.h"
+
+int main(int argc, char *argv[])
+{
+ off_t howBig;
+ FILE *fp;
+
+ if (argc != 3) {
+ Pmsg0(0, "Calling sequence: grow <filename> <size>\n");
+ exit(1);
+ }
+ howBig = str_to_int64(argv[2]);
+ fp = fopen(argv[1], "w+");
+ if (!fp) {
+ berrno be;
+ Pmsg2(0, "Could not open %s for write. ERR=%s\n", argv[1], be.bstrerror());
+ exit(1);
+ }
+ char trailer[] = "xxxxxxx\n";
+
+ fseeko(fp, howBig - strlen(trailer), SEEK_SET);
+ fwrite(trailer, strlen(trailer), 1, fp);
+ fclose(fp);
+ return 0;
+}
*/
#undef VERSION
-#define VERSION "2.1.28"
-#define BDATE "20 July 2007"
-#define LSMDATE "20Jul07"
+#define VERSION "2.1.29"
+#define BDATE "21 July 2007"
+#define LSMDATE "21Jul07"
#define PROG_COPYRIGHT "Copyright (C) %d-2007 Free Software Foundation Europe e.V.\n"
#define BYEAR "2007" /* year for copyright messages in progs */
Technical notes on version 2.1
General:
+21Jul07
+kes Implement grow tool to grow a file for testing very large databases.
+kes Add big-vol-test to test Bacula seeking with > 5GB.
Release 2.1.28 beta
19Jul07
kes Modify find_next_volume() to return all values in Media record.