2008-08-15 20:16 mavrik * README.INSTALL: Added basic MinGW/MSYS build instructions. Updated other nits and bits. 2008-08-12 00:34 jesterchef * configure.in: Added ac_cv_func_malloc_0_nonnull=yes to prevent AC_FUNC_MALLOC from deciding that rpl_malloc() is needed when cross compiling under MinGW for Windows platforms, which, in turn, causes the build to fail since that routine is not included in the source. In this particular case, the compiling platform was MacOS 10.4.11. 2008-08-11 06:09 mavrik * src/ftimes.h: Bumped the build number (0x30900007). 2008-08-11 06:02 mavrik * tests/ftimes/common/compare/test_3/test_harness.local: Added back a qx() that got lost in the last patch. 2008-08-11 05:48 mavrik * tests/: ftimes/common/compare/test_1/test_harness.local, ftimes/common/compare/test_2/test_harness.local, ftimes/common/compare/test_3/test_harness.local, ftimes/common/decoder/test_1/test_harness.local, ftimes/common/dig/test_4/test_harness.local, ftimes/common/map/test_7/test_harness.local, ftimes/common_windows_ads/map/test_1/test_harness.local, tarmap/common/map/test_1/test_harness.local, tarmap/common/map/test_2/test_harness.local: Modified tests to work under MinGW. 2008-08-11 04:46 mavrik * configure.in: Added a missing quote. 2008-08-11 04:14 mavrik * tests/: ftimes/common/compare/test_1/test_harness.local, ftimes/common/compare/test_2/test_harness.local, ftimes/common/compare/test_3/test_harness.local, ftimes/common/decoder/test_1/test_harness.local, ftimes/common/dig/test_4/test_harness.local, ftimes/common/map/test_7/test_harness.local, ftimes/common_windows_ads/map/test_1/test_harness.local, tarmap/common/map/test_1/test_harness.local, tarmap/common/map/test_2/test_harness.local: Added code to convert path separators from UNIX to Windows format. When executing tests under MinGW on a Windows platform, IO redirections of the form '2>&1' cause the following error when UNIX path separators are used: "'..' is not recognized as an internal or external command, operable program or batch file.". 2008-08-11 03:50 mavrik * configure.in: Added logic that instructs users to manually build/install the Perl modules on Windows platforms. Currently this process can't be done from the MSYS shell, and it requires a combination of ActivePerl, dmake (or nmake), and a native command shell. Once the Perl modules have been built and installed, the normal FTimes build process can resume in the MSYS shell. 2008-08-11 01:27 mavrik * tests/ftimes/common/map/test_7/test_harness.local: Modified tests to work under MinGW. 2008-08-10 03:33 mavrik * src/ftimes.h: Added LL to the UNIX_EPOCH_IN_NT_TIME and UNIX_LIMIT_IN_NT_TIME defines to prevent warnings that appear when compiling under MinGW. The warnings were of the form: "warning: integer constant is too large for 'long' type". These warnings were generated by gcc 3.4.2 on a Windows 2K SP4 system. 2008-08-10 02:47 mavrik * Makefile.in: Added the '-h' option (follow symlinks) to the tar command in the ctar, dtar, and star targets. While this increases the size of the tar ball and adds unwanted redundancies, it eases the MinGW build process on Win32 platforms. 2008-07-27 21:39 mavrik * src/ftimes.h: Bumped the build number (0x30900006). 2008-07-27 21:38 mavrik * doc/ftimes/sections/MODES-OF-OPERATION.pod, src/compare.c, src/compare.h, tests/ftimes/common/compare/test_1/test_harness.local, tests/ftimes/common/compare/test_2/test_harness.local, tests/ftimes/common/compare/test_3/test_harness.local, tools/ftimes-xformer/ftimes-xformer, tools/map/ftimes-cmp2dbi.pl: Added support for the 'records' field in compare mode output. This information will make it easier for post-processing tools to locate and extract records from the original baseline and snapshot files. 2008-07-24 17:45 jesterchef * src/ftimes.h: Bumped the build number (0x30900005). 2008-07-24 17:34 mavrik * tools/tarmap/tarmap.h: Bumped the update version number. 2008-07-24 17:29 mavrik * tools/tarmap/tarmap.c: Added casts to prevent compiler warnings. The warnings were of the form: "warning: long long unsigned int format, K_UINT64 arg (arg N)" where N was either 4 or 5. These warnings were generated by gcc 3.4.6 running on a FreeBSD 6.3 system (64-bit AMD). 2008-07-24 17:04 jesterchef * src/: fsinfo.c, fsinfo.h: Added support for Common Internet File System (CIFS) under Linux. This file system is a public variation of the Server Message Block (SMB) file system. 2008-07-18 22:17 jesterchef * README.CREDITS: Added Andy Bair and Jason Smith as new project maintainers. 2008-07-18 22:06 andybair * src/ftimes.h: Bumped the build number (0x30900004). 2008-07-18 18:40 mavrik * tests/ftimes/common/map/test_7/test_harness.local: Added a sort on the actual output to fix an issue on Fedora Core 6 where the output was not being generated in the expected order. Thanks to Andy Bair for discovering and reporting this problem, and thanks to the test harness for doing its job. 2008-07-17 20:22 mavrik * src/ftimes.h: Bumped the build number (0x30900003). 2008-07-17 20:21 mavrik * Makefile.in, Makefile.vs, README.LICENSE, cgi/Makefile.in, cgi/nph-ftimes.cgi, etc/Makefile.in, src/all-includes.h, src/analyze.c, src/app-includes.h, src/cfgtest.c, src/cmpmode.c, src/compare.c, src/compare.h, src/decode.c, src/decode.h, src/decoder.c, src/develop.c, src/dig.c, src/dig.h, src/digmode.c, src/error.c, src/error.h, src/fsinfo.c, src/fsinfo.h, src/ftimes.c, src/ftimes.h, src/getmode.c, src/http.c, src/http.h, src/ktypes.h, src/map.c, src/mapmode.c, src/mask.c, src/mask.h, src/md5.c, src/md5.h, src/message.c, src/message.h, src/properties.c, src/sha1.c, src/sha1.h, src/sha256.c, src/sha256.h, src/socket.c, src/socket.h, src/ssl-pool.h, src/ssl.c, src/ssl.h, src/support.c, src/sys-includes.h, src/time.c, src/url.c, src/xmagic.c, src/xmagic.h, tools/dig/Makefile.in, tools/dig/ftimes-crv2dbi.pl, tools/dig/ftimes-crv2raw.pl, tools/dig/ftimes-dig2ctx.pl, tools/dig/ftimes-dig2dbi.pl, tools/dig/hipdig.pl, tools/ftimes-xformer/ftimes-xformer, tools/hashdig/Makefile.in, tools/hashdig/hashdig-bash.pl, tools/hashdig/hashdig-bind.pl, tools/hashdig/hashdig-dump.pl, tools/hashdig/hashdig-filter.pl, tools/hashdig/hashdig-find.pl, tools/hashdig/hashdig-harvest-sunsolve.pl, tools/hashdig/hashdig-harvest.pl, tools/hashdig/hashdig-make.pl, tools/hashdig/hashdig-resolve-sunsolve.pl, tools/hashdig/hashdig-stat.pl, tools/hashdig/hashdig-weed.pl, tools/lrs/pool2string.c, tools/lrs/string2pool.c, tools/map/Makefile.in, tools/map/ftimes-cmp2dbi.pl, tools/map/ftimes-map2dbi.pl, tools/map/ftimes-map2mac.pl, tools/tarmap/all-includes.h, tools/tarmap/tarmap.c, tools/tarmap/tarmap.h, utils/tree_builder: Updated copyright information. 2008-07-17 20:01 mavrik * src/: analyze.c, md5.c, md5.h, sha1.c, sha1.h, sha256.c, sha256.h, url.c: Modified {MD5,SHA1,SHA256}HashStream() to track (in a user-supplied variable) the number of bytes hashed. 2008-07-17 18:29 mavrik * src/ftimes.h: Bumped the build number (0x30900002). 2008-07-17 18:20 mavrik * src/dig.c: Added a cast to fix the following warning: "pointer targets in assignment differ in signedness". This warning was generated by gcc 4.1.1 running on a Fedora Core 6 system (32-bit). 2008-07-17 18:16 mavrik * src/: dig.c, xmagic.c: Added a cast to fix the following warning: "pointer targets in passing argument 3 of pcre_exec() differ in signedness". This warning was generated by gcc 4.1.1 running on a Fedora Core 6 system (32-bit). 2008-07-17 18:14 mavrik * src/dig.c: Added a cast to fix the following warning: "pointer targets in assignment differ in signedness". This warning was generated by gcc 4.1.1 running on a Fedora Core 6 system (32-bit). 2008-07-17 18:09 mavrik * src/xmagic.c: Added a cast to fix the following warning: "pointer targets in passing argument 1 of strcasecmp() differ in signedness". This warning was generated by gcc 4.1.1 running on a Fedora Core 6 system (32-bit). 2008-07-17 18:07 mavrik * src/: dig.c, xmagic.c: Added a cast to fix the following warning: "pointer targets in passing argument 1 of strncpy() differ in signedness". This warning was generated by gcc 4.1.1 running on a Fedora Core 6 system (32-bit). 2008-07-17 16:33 mavrik * src/dig.c: Added a cast to fix the following warning: "pointer targets in passing argument 1 of SupportNeuterString() differ in signedness". This warning was generated by gcc 4.1.1 running on a Fedora Core 6 system (32-bit). 2008-07-17 16:13 mavrik * src/: dig.c, map.c: Added a cast to fix the following warning: "pointer targets in passing argument 2 of MD5Cycle() differ in signedness". This warning was generated by gcc 4.1.1 running on a Fedora Core 6 system (32-bit). 2008-07-17 16:04 mavrik * src/: develop.c, ftimes.h: Changed a function prototype to fix the following warning: "pointer targets in passing argument 1 of DevelopCompressHex() differ in signedness". This warning was generated by gcc 4.1.1 running on a Fedora Core 6 system (32-bit). 2008-07-16 14:40 mavrik * doc/ftimes/sections/DESCRIPTION.pod: Added StrictControls control. 2008-07-16 04:32 mavrik * Makefile.in: Changed the suffix appended to the star-generated tar ball. 2008-07-16 04:14 mavrik * src/ftimes.h: Bumped the build number (0x30900001). 2008-07-16 04:14 mavrik * Makefile.in, src/ftimes.h, src/support.c, tests/ftimes/test_harness.local: Updated the version numbering scheme to that used by The DDP Project. The primary purpose for moving to the new scheme is to produce monotonically increasing version numbers that can be translated from a 4-byte integer to a human readable string. This makes it possible to use integer-based compare logic in code to enable/disable certain features and functionality (e.g., backwards compatibility). A secondary purpose for moving to the new scheme is to assign every checkpoint in the development life-cycle a particular state and build number. This is useful for cutting snapshot (or checkpoint) releases, and it makes it easier to identify non-standard releases that may have been deployed on operational systems (e.g., emergency patch). 2008-07-16 03:33 mavrik * utils/: version2string, version_helper: Initial checkin. 2008-07-16 01:08 mavrik * utils/test_harness: Made a minor comment change. 2008-07-15 19:42 mavrik * doc/ftimes/controls/StrictControls.pod, src/ftimes.h, src/properties.c: Added StrictControls control. 2008-06-25 05:04 mavrik * utils/test_harness: Modified the code to individually track pass/fail/skip results. This allows for finer control over group results. In particular, if all tests in a group are skipped, the group result should be a skip. Prior to this, that outcome would have been reported as a pass, which can be misleading. 2008-06-04 13:55 mavrik * Makefile.in: Added an experimental target, star, that creates a snapshot tar ball based on the value of VERSION in ftimes.h. This is useful for creating unofficial releases or field updates. 2008-06-04 04:46 mavrik * tools/ftimes-encoder/ftimes-encoder: Added support for Shell Safe String (SSS) encoding, which is a special case of URL encoding. If the encoder does its job correctly, it should be possible to encode a string such that it can be assigned as a Bourne shell variable without the need for quotes. This capability is useful in cases where config files containing URLs as values are sourced by various scripts. 2008-06-04 04:30 mavrik * lib/perl/Makefile.PL.in: Bumped up the version number. 2008-06-04 04:30 mavrik * lib/perl/lib/FTimes/EadRoutines.pm: Fixed a bug identified by the test harness. The problem was that '+' characters where not being converted back into spaces. 2008-06-04 04:28 mavrik * lib/perl/t/FTimes-EadRoutines.t: Added unit tests for EadFTimesSssEncode() and EadFTimesSssDecode(). 2008-06-04 04:11 mavrik * lib/perl/lib/FTimes/EadRoutines.pm: Added two new routines: EadFTimesSssDecode() and EadFTimesSssEncode(). 2008-05-20 04:11 mavrik * tests/ftimes/common/dig/test_4/test_harness.local: Added a test that corresponds to the patch that produced revision 1.54 of xmagic.c. Thanks to Andy Bair for writing the initial test. 2008-05-19 22:56 mavrik * README.CREDITS: Added a section for past and current sponsors. Added a section for maintainers. Indented the list of contributors. 2008-05-19 22:23 mavrik * configure.in: Whitespace cleanup. 2008-05-19 22:11 mavrik * README.STYLE: Turned document into a link to the real README.STYLE, which is being maintained in The WebJob Project. 2008-05-19 21:02 mavrik * tests/hipdig/common/dig/test_harness.local, tests/hipdig/common/dig/test_1/Makefile.in, tools/dig/hipdig.pl: Modified hipdig to use FTimes::EadRoutines. This required some changes to the test harness infrastructure. 2008-05-19 20:54 mavrik * tests/ftimes-crv2raw/common/carve/test_harness.local, tests/ftimes-crv2raw/common/carve/test_1/Makefile.in, tools/dig/ftimes-crv2raw.pl: Modified ftimes-crv2raw to use FTimes::EadRoutines. This required some changes to the test harness infrastructure. 2008-05-19 20:44 mavrik * tools/dig/ftimes-dig2ctx.pl: Modified ftimes-dig2ctx to use FTimes::EadRoutines. 2008-05-19 20:38 mavrik * tests/ftimes-xformer/common/xform/test_1/Makefile.in, tests/ftimes-xformer/common/xform/test_1/test_harness.local, tools/ftimes-xformer/ftimes-xformer: Modified ftimes-xformer to use FTimes::EadRoutines. This required some changes to the test harness infrastructure. 2008-05-19 18:55 mavrik * tests/ftimes-encoder/common/decode/test_1/Makefile.in, tests/ftimes-encoder/common/decode/test_1/test_harness.local, tests/ftimes-encoder/common/encode/test_1/Makefile.in, tests/ftimes-encoder/common/encode/test_1/test_harness.local, tools/ftimes-encoder/ftimes-encoder: Modified ftimes-encoder to use FTimes::EadRoutines. This required some changes to the test harness infrastructure. 2008-05-19 18:37 mavrik * utils/test_harness: Synchronized test_harness with revision 1.16 of the same in The WebJob Project. 2008-05-19 18:08 mavrik * Makefile.in, configure.in, lib/Makefile.in, lib/perl/MANIFEST, lib/perl/Makefile.PL.in, lib/perl/README, lib/perl/config, lib/perl/lib/FTimes/EadRoutines.pm, lib/perl/t/FTimes-EadRoutines.t: Added initial support for an integrated Perl library. This action was driven by the need to reduce duplicate code and provide standard routines for common tasks. 2008-05-19 00:55 mavrik * tools/dig/ftimes-dig2ctx.pl: Replaced URLDecode() and URLEncode() with FTimesUrlDecode() and FTimesUrlEncode(), respectively. The new encoder produces the same encoded output as ftimes. 2008-05-19 00:54 mavrik * tools/ftimes-xformer/ftimes-xformer: Replaced UrlDecode() and UrlEncode() with FTimesUrlDecode() and FTimesUrlEncode(), respectively. The new encoder produces the same encoded output as ftimes. 2008-05-19 00:44 mavrik * configure.in, Mk/common.mk.in, tests/hipdig/Makefile.in, tests/hipdig/test_harness.local, tests/hipdig/common/Makefile.in, tests/hipdig/common/test_harness.local, tests/hipdig/common/dig/Makefile.in, tests/hipdig/common/dig/test_harness.local, tests/hipdig/common/dig/test_1/Makefile.in, tests/hipdig/common/dig/test_1/test_harness.local: Added tests for hipdig. These tests are functionally equivalent to those used for ftimes. The idea is that both tools should produce the same results when given the same regular expressions and inputs. 2008-05-19 00:29 mavrik * tools/dig/hipdig.pl: Replaced UrlEncode() with FTimesUrlEncode(). The new encoder produces the same encoded output as ftimes. 2008-05-19 00:23 mavrik * tools/ftimes-encoder/ftimes-encoder: Renamed NssDecode() and NssEncode() as FTimesNssDecode() and FTimesNssEncode(), respectively. 2008-05-19 00:21 mavrik * tools/ftimes-encoder/ftimes-encoder: Replaced UrlDecode() and UrlEncode() with FTimesUrlDecode() and FTimesUrlEncode(), respectively. The new encoder produces the same encoded output as ftimes. 2008-05-19 00:15 mavrik * tests/ftimes-encoder/common/: decode/test_1/test_harness.local, encode/test_1/test_harness.local: Switched over to the official URL encode/decode routines. 2008-05-19 00:10 mavrik * tests/test_harness.local: Added two helper routines: FTimesUrlDecode() and FTimesUrlEncode(). 2008-05-18 04:05 mavrik * configure.in, Mk/common.mk.in, doc/ftimes-encoder/Makefile.in, tests/ftimes-encoder/Makefile.in, tests/ftimes-encoder/test_harness.local, tests/ftimes-encoder/common/Makefile.in, tests/ftimes-encoder/common/test_harness.local, tests/ftimes-encoder/common/decode/Makefile.in, tests/ftimes-encoder/common/decode/test_harness.local, tests/ftimes-encoder/common/decode/test_1/Makefile.in, tests/ftimes-encoder/common/decode/test_1/test_harness.local, tests/ftimes-encoder/common/encode/Makefile.in, tests/ftimes-encoder/common/encode/test_harness.local, tests/ftimes-encoder/common/encode/test_1/Makefile.in, tests/ftimes-encoder/common/encode/test_1/test_harness.local, tools/ftimes-encoder/Makefile.in: Added configure/build support and tests for ftimes-encoder. 2008-05-18 01:52 mavrik * doc/ftimes/controls/DigStringRegExp.pod, doc/ftimes/controls/ExcludeFilter.pod, doc/ftimes/controls/IncludeFilter.pod, doc/ftimes/sections/EXAMPLES.pod, src/dig.c, src/dig.h, src/support.c, src/xmagic.c, src/xmagic.h, tests/ftimes/common/dig/test_harness.local, tests/ftimes/common/dig/test_3/test_harness.local: Modified the code to allow up to nine (9) capturing ()'s. This was done to support backreferences in expressions. 2008-05-17 21:35 mavrik * tests/test_harness.local: Added two helper routines: UrlDecode() and UrlEncode(). 2008-05-17 16:08 mavrik * src/decode.c: Added a FIXME reminder. 2008-05-13 19:13 mavrik * tools/ftimes-encoder/ftimes-encoder: Fixed a documentation error. 2008-05-12 21:31 mavrik * src/: fsinfo.c, fsinfo.h: Added support for the /dev/pts file system under Linux. 2008-05-12 03:45 mavrik * tools/: dig/ftimes-crv2dbi.pl, dig/ftimes-crv2raw.pl, dig/ftimes-dig2ctx.pl, dig/ftimes-dig2dbi.pl, dig/hipdig.pl, ftimes-xformer/ftimes-xformer, hashdig/README, map/ftimes-cmp2dbi.pl, map/ftimes-map2dbi.pl, map/ftimes-map2mac.pl: Fixed a subject/verb agreement error. Cleaned up other minor nits and bits along the way. 2008-05-12 03:28 mavrik * tools/ftimes-encoder/ftimes-encoder: Added ftimes-encoder to the project. The purpose of this utility is to encode/decode strings/records using various algorithms. 2008-05-11 23:52 mavrik * tools/ftimes-xformer/ftimes-xformer: Eliminated the practice of modifying @_ values (e.g., $_[0]) directly since they are implicit references to the actual scalar parameters. Unless parameters are explicitly passed by reference, they should be treated as if they were immutable. 2008-04-30 16:09 mavrik * tools/dig/ftimes-dig2ctx.pl: Added a missing semi-colon. 2008-04-28 20:37 mavrik * tools/hashdig/: hashdig-bash.pl, hashdig-bind.pl, hashdig-dump.pl, hashdig-filter.pl, hashdig-find.pl, hashdig-harvest-sunsolve.pl, hashdig-harvest.pl, hashdig-make.pl, hashdig-resolve-sunsolve.pl, hashdig-stat.pl, hashdig-weed.pl: Made a minor change to the LICENSE section. 2008-04-28 17:16 mavrik * tools/hashdig/: hashdig-bash.pl, hashdig-harvest-sunsolve.pl, hashdig-resolve-sunsolve.pl, hashdig-weed.pl: Made minor comment changes. 2008-04-15 23:43 mavrik * tools/dig/ftimes-dig2ctx.pl: Modified logic to ensure that an empty pattern file will match no records. Previously, the pattern matching logic would not be applied if the array holding the patterns was empty or undefined. 2008-04-15 23:12 mavrik * tools/dig/ftimes-dig2ctx.pl: Added initial support for the '-M', '-m', '-T', '-t', and '-v' options. These options work together to provide a pattern matching and filtering capability. 2008-04-14 23:56 mavrik * tools/dig/hipdig.pl: Changed 'N/A's to 'N/V's (Not Valid) in DumpEinInformation(), and added the real 'N/A's, which were derived through process of elimination. 2008-04-14 23:22 mavrik * tools/dig/hipdig.pl: Added DumpEinInformation() to dump the list of EIN prefixes assigned to each campus. 2008-04-09 19:49 mavrik * tools/ftimes-xformer/ftimes-xformer: Added several new convenience routines: NssDecode(), NssEncode, Strip(), and UrlEncode(). These routines are accessible from the command line through the various eval-block options. NSS is short for Neuter Safe String. NSS-encoded paths should not be altered by the neutering process imposed by ftimes. This is useful in cases where you want to guarantee that the real and neutered paths will be the same. 2008-04-06 03:00 mavrik * tools/dig/hipdig.pl: Added DumpStateInformation() to dump a list of state abbreviations. 2008-04-04 18:54 mavrik * tools/dig/hipdig.pl: Reviewed and updated %hSSNAreaList in DumpSSNInformation(). A number of entries were not assigned to a particular area (e.g., state). 2008-02-12 22:12 mavrik * tools/map/ftimes-map2dbi.pl: Added a key length of 64 bytes to the 'magic' index. 2008-02-08 04:36 mavrik * tools/tarmap/tarmap.h: Bumped the update version number. 2008-02-05 20:29 mavrik * tools/tarmap/: tarmap.c, tarmap.h: Added initial support for GNUTYPE_LONGNAME types. This code is still in development. 2008-02-05 20:19 mavrik * tools/tarmap/tarmap.h: Bumped the update version number. 2008-02-05 20:18 mavrik * tools/tarmap/tarmap.c: Ran into the 8GB limit sooner than expected. This patch attempts to handle binary encoded sizes, but it only does so up to 64-bits. In other words, only the low 8 bytes of the size field (which contains a total of 12 bytes) are processed to compute the size. 2008-02-05 18:25 mavrik * tools/tarmap/tarmap.h: Bumped the update version number. 2008-02-05 18:22 mavrik * tools/tarmap/: tarmap.c, tarmap.h: Changed ulSize to ui64Size to handle files with sizes greater than 4 GB. There is another size-related barrier at 8 GB (the default maximum size) that will need to be addressed at some point. Apparently, some versions of tar overcome the 8 GB limit by binary encoding the size. 2008-02-05 04:17 mavrik * tools/tarmap/tarmap.h: Bumped the update version number. 2008-02-05 04:15 mavrik * configure.in, tests/tarmap/common/map/Makefile.in, tests/tarmap/common/map/test_2/Makefile.in, tests/tarmap/common/map/test_2/test_harness.local: Added a test to ensure that 100-byte names are handled properly by tarmap. Thanks to Andy Bair for writing and testing the initial patch. 2008-02-04 22:43 mavrik * tools/tarmap/: tarmap.c, tarmap.h: Fixed a bug where names having a length of exactly 100 bytes weren't being handled and terminated properly. The faulty assumption was that each name in the tar header is null-terminated. However, this is not true in the case where the name's length is exactly 100. Thanks to Andy Bair for discovering and reporting this problem and for helping me test the patch. 2008-02-01 22:25 mavrik * tools/: dig/ftimes-dig2dbi.pl, map/ftimes-map2dbi.pl: Modified map2dbi and dig2dbi so their corresponding tables can be joined on the 'joiner' column, which is new in dig2dbi and a modified version of namemd5 in map2dbi. 2008-01-29 02:33 mavrik * src/support.c: Fixed a memory corruption error detected by glibc under Linux. The problem was that HTTPUnEscape() returns a length-based string (i.e., a string with no NULL terminator), and SupportNewListItem() was attempting to terminate that string one byte beyond the amount that had been allocated by malloc(). 2008-01-28 19:40 mavrik * doc/ftimes/controls/: Exclude.pod, Include.pod: Updated the documentation for the Include/Exclude controls to include a description of the new URL-encoded format. 2008-01-28 18:35 mavrik * doc/ftimes/sections/NOTES.pod, src/support.c, tests/ftimes/common/dig/test_harness.local: Added '#' to the list of special characters that get URL-encoded by SupportNeuterString(). This was done because '#' is interpreted as the start of a comment in config files. Making this change will allow some controls (e.g., dig strings, includes, and excludes) that are printed in the log stream to be used directly as input in new config files. 2008-01-28 17:21 mavrik * src/: digmode.c, ftimes.h, mapmode.c, properties.c, support.c: Continued to refine support for URL-encoded paths as Includes or Excludes. 2008-01-27 06:37 mavrik * src/: digmode.c, ftimes.h, mapmode.c, properties.c, support.c: Added initial support to accept URL-encoded paths as Includes or Excludes. This allows the user to specify paths that would otherwise be difficult or impossible to do. For example, a path that contains a newline or some non-printable character (yes, these types of paths do occur). In the process of making this change, the FILE_LIST structure and associated code have been modified to be more memory efficient. This was done by only allocating enough memory to hold each specified path. Previously FTIMES_MAX_PATH bytes were allocated for every path, which was wasteful and led to severe memory consumption when the number of Includes/Excludes grew beyond several thousand. 2008-01-22 01:25 mavrik * tools/ftimes-xformer/ftimes-xformer: Changed the scope of $sFile. 2008-01-22 01:24 mavrik * tools/ftimes-xformer/ftimes-xformer: Put options in alphabetical order. 2008-01-20 21:30 mavrik * tests/ftimes/common/map/test_7/test_harness.local: Added support for testing generic, depth-based filter expressions. 2008-01-20 04:07 mavrik * tests/ftimes/common/map/Makefile.in: Added test_7 sub-directory to enable recursion tests. 2008-01-20 04:02 mavrik * src/map.c: Fixed a logic error where the EnableRecursion control was being applied incorrectly in MapFile(). When a directory is specified as an include, MapFile() must call MapTree() at least once to process the contents of that directory. If recursion is disabled, the expectation is that directory contents (e.g., files) will be processed, but any sub-directories will not. 2008-01-19 23:00 mavrik * Mk/common-tests.mk.in: Added an alias for CHECK_DEBUG_LEVEL to save on typing when debugging tests in the test harness. 2008-01-19 22:47 mavrik * configure.in, tests/ftimes/test_harness.local, tests/ftimes/common/map/test_7/Makefile.in, tests/ftimes/common/map/test_7/test_harness.local: Added initial support for recursion testing. 2008-01-19 05:19 mavrik * tools/ftimes-xformer/ftimes-xformer: Added '=' as a valid delimiter. 2008-01-17 23:04 mavrik * src/map.c: Added a check to ensure that NFS3 file systems are treated as remote file systems under UNIX. 2008-01-17 06:29 mavrik * tools/ftimes-xformer/ftimes-xformer: Added compressed field names so the script can operate on compressed map files. 2008-01-17 05:55 mavrik * tools/ftimes-xformer/ftimes-xformer: Added the 'DeriveHeader' option to handle cases where the input file does not contain its own header. 2008-01-17 04:41 mavrik * tools/ftimes-xformer/ftimes-xformer: Added the '-I' option to ignore input lines that match a specified pattern. 2008-01-17 04:13 mavrik * tools/ftimes-xformer/ftimes-xformer: Added the '-i' option to ignore leading input lines. 2007-11-29 22:13 mavrik * src/: fsinfo.c, fsinfo.h: Added support for Veritas file systems (VxFS) under AIX. This requirement popped up on a forensics gig where we needed to map a vxfs share mounted on a AIX system: AIX 5.2. Thanks to Jason Smith for writing and testing the initial patch. 2007-11-28 03:35 mavrik * src/: fsinfo.c, fsinfo.h: Added support for Veritas file systems (VxFS) under Linux. This requirement popped up on a forensics gig where we needed to map a vxfs share mounted on a Linux system: Red Hat Enterprise Linux AS release 4 (Nahant Update 3). Thanks to Jason Smith for writing and testing the initial patch. 2007-11-27 06:37 mavrik * src/analyze.c: Added logic to terminate analysis after first block of data (per file) if XMagic was the only type of analysis requested. 2007-11-26 17:51 mavrik * configure.in: Added ac_cv_func_malloc_0_nonnull=yes to prevent AC_FUNC_MALLOC from deciding that rpl_malloc() is needed on AIX platforms, which, in turn, causes the build to fail since that routine is not included in the source. 2007-11-22 16:15 mavrik * src/: analyze.c, ftimes.h, support.c: Added code to track and report the amount of time spent performing analysis (AnalysisTime). Reduced the divide-by-zero protection on this variable from 1 second to 1 microsecond. 2007-11-21 22:45 mavrik * src/: analyze.c, ftimes.c, ftimes.h, support.c, time.c: Added initial support for microsecond resolution for AverageDps and Duration calculations. Removed FTimesGetEpoch() and added TimeGetTimeValue() and TimeGetTimeValueAsDouble() in the process. 2007-11-16 17:42 mavrik * doc/ftimes/controls/LogDigStrings.pod, doc/ftimes/sections/DESCRIPTION.pod, src/digmode.c, src/ftimes.h, src/properties.c: Added a new control, LogDigStrings, to enable/disable the writing of dig strings to the log file. Preserving this information along side the dig output is often convenient and useful, but in some cases (e.g., searches for sensitive data), it's better to suppress it. 2007-11-14 04:41 mavrik * configure.in: Added ftimes-xformer to the list of additional test directories. 2007-11-14 04:22 mavrik * configure.in, Mk/common.mk.in, doc/ftimes-xformer/Makefile.in, tests/ftimes-xformer/Makefile.in, tests/ftimes-xformer/test_harness.local, tests/ftimes-xformer/common/Makefile.in, tests/ftimes-xformer/common/test_harness.local, tests/ftimes-xformer/common/xform/Makefile.in, tests/ftimes-xformer/common/xform/test_harness.local, tests/ftimes-xformer/common/xform/test_1/Makefile.in, tests/ftimes-xformer/common/xform/test_1/test_harness.local, tools/ftimes-xformer/Makefile.in, tools/ftimes-xformer/ftimes-xformer: Added ftimes-xformer to the project. The purpose of this utility is to transform FTimes data based on user-specified input. 2007-11-13 22:16 mavrik * Mk/common-src-perl.mk.in, configure.in: Added common-src-perl.mk.in to the project. The purpose of this template is to hold common Makefile guts for perl-script tools. 2007-11-07 17:06 mavrik * tools/hashdig/hashdig-resolve-sunsolve.pl: Added a User-Agent field to the HTTP request header. This was needed to get sunsolve.sun.com to return data for each query. In the past, the queries worked fine, so Sun must have recently changed something in their environment and/or configuration. 2007-11-05 04:42 mavrik * src/: fsinfo.c, fsinfo.h: Added support for the Compressed ROM File System (CRAMFS) under Linux. 2007-11-05 04:25 mavrik * src/: fsinfo.c, fsinfo.h: Added support for the Journaled File System (JFS) under Linux. 2007-10-12 17:29 mavrik * src/ftimes.c: Added code to free the memory associated with pcNonce. 2007-10-12 17:25 mavrik * src/cmpmode.c: Changed all instances of pcCmpProperties to psCmpProperties. The former variable type, 'pc' (which means pointer to a character), was not correct. 2007-10-12 15:24 mavrik * src/compare.c: Reviewed how memory is being allocated and freed. Made adjustments and added comments as necessary. 2007-10-11 19:38 mavrik * src/support.c: Modified the code such that the average DPS is only reported if FTimes is in map or dig mode. 2007-10-11 17:29 mavrik * src/: cmpmode.c, compare.c, compare.h, ftimes.c, ftimes.h, sys-includes.h: Added initial support for using memory mapped files in conjunction with compare mode. This should help systems with low memory (e.g., less than 128 MB) or systems that must run many large (e.g., more than 1 million records) compare jobs concurrently (e.g., more than 20). However, this feature is disabled by default. To activate it, the user must define the FTIMES_MMAP_ENABLE environment variable and set it to '1'. When active, the backing file will be created in a temporary directory that corresponds to the value of TMPDIR (TEMP for WIN32). If this environment variable is not defined, the logic attempts to use the value of TMP (all platforms). If a suitable environment variable is still not found, the temporary directory defaults to /tmp (\temp for WIN32). 2007-10-07 16:37 mavrik * src/: fsinfo.c, fsinfo.h: Added support for the Zettabyte File System (ZFS) under Solaris 10. 2007-09-01 01:23 mavrik * doc/ftimes/controls/ExcludeFilterSha256.pod, doc/ftimes/controls/IncludeFilterSha256.pod, doc/ftimes/sections/DESCRIPTION.pod, etc/mapfull.cfg.sample, etc/maplean.cfg.sample, src/develop.c, src/ftimes.h, src/mapmode.c, src/properties.c: Added initial support for include/exclude SHA256 filters via PCRE. 2007-08-31 19:32 mavrik * src/: xmagic.c, xmagic.h: Added a missing USE_PCRE #ifdef and moved a variable that was in the wrong location. 2007-08-31 19:18 mavrik * configure.in: Added '-lws2_32' and '-lgdi32' to LIBS for MinGW. Both of these were required to eliminate a number of "undefined reference" errors when compiling with both PCRE and SSL enabled. The errors removed by '-lgdi32' were tied to rand_win.c from libcrypto.a. The errors removed by '-lws2_32' were tied to bss_sock.c from libcrypto.a. See below for the relevant bits of the error messages. ... bss_sock.c: undefined reference to 'shutdown@8' ... bss_sock.c: undefined reference to 'WSASetLastError@4' ... bss_sock.c: undefined reference to 'WSASetLastError@4' ... bss_sock.c: undefined reference to 'shutdown@8' ... rand_win.c: undefined reference to 'CreateDCA@16' ... rand_win.c: undefined reference to 'CreateCompatibleDC@4' ... rand_win.c: undefined reference to 'GetDeviceCaps@8' ... rand_win.c: undefined reference to 'GetDeviceCaps@8' ... rand_win.c: undefined reference to 'CreateCompatibleBitmap@12' ... rand_win.c: undefined reference to 'SelectObject@8' ... rand_win.c: undefined reference to 'GetObjectA@12' ... rand_win.c: undefined reference to 'BitBlt@36' ... rand_win.c: undefined reference to 'GetBitmapBits@12' ... rand_win.c: undefined reference to 'SelectObject@8' ... rand_win.c: undefined reference to 'DeleteObject@4' ... rand_win.c: undefined reference to 'DeleteDC@4' 2007-08-30 03:48 mavrik * configure.in: Changed the --enable-xmagic configure option to --disable-xmagic so that XMagic support is included by default. 2007-08-30 03:46 mavrik * Makefile.vs: Changed the default value for USE_XMAGIC to 'Y' so that XMagic support is included by default. 2007-08-30 03:10 mavrik * doc/ftimes/controls/ExcludeFilterSha1.pod, doc/ftimes/controls/IncludeFilterSha1.pod, doc/ftimes/sections/DESCRIPTION.pod, etc/mapfull.cfg.sample, etc/maplean.cfg.sample, src/develop.c, src/ftimes.h, src/mapmode.c, src/properties.c: Added initial support for include/exclude SHA1 filters via PCRE. 2007-08-30 03:08 mavrik * Makefile.vs: Added '/D _CRT_SECURE_NO_DEPRECATE' in an attempt to eliminate a number of deprecation warnings that appear when compiling with Visual Studio 8.0.50727.42. 2007-08-30 02:28 mavrik * src/develop.c: Adjusted several format statements and casts in an attempt to eliminate MinGW compiler warnings without affecting the native Windows build. One thing to note is that MinGW does not like %I64x, but it seems to be OK with %I64u. Removed several unused variables. 2007-08-30 02:21 mavrik * src/analyze.c: The (unsigned long long) cast worked for the target AMD 64-bit system, but it broke the native Windows build, which worked fine with either no cast or a (K_UINT64) cast. However, the native Windows build would not work with the (unsigned long long) cast. For now, it's not critical to include the start offset in the error message, so it has been removed. 2007-08-29 21:24 mavrik * src/analyze.c: Added a cast to prevent a compiler warning. The specific warning was: "warning: long long unsigned int format, K_UINT64 arg (arg 5)". This warning was generated by gcc 3.4.4 running on a FreeBSD 6.2 system (64-bit AMD). 2007-08-29 20:46 mavrik * doc/ftimes/controls/: AnalyzeByteCount.pod, AnalyzeMaxDps.pod, AnalyzeStartOffset.pod, ExcludeFilterMd5.pod, IncludeFilterMd5.pod: Added a note stating the FTimes release when this control was officially introduced/supported. 2007-08-29 18:30 mavrik * doc/ftimes/controls/AnalyzeByteCount.pod, doc/ftimes/sections/DESCRIPTION.pod, etc/digfull.cfg.sample, etc/diglean.cfg.sample, etc/mapfull.cfg.sample, etc/maplean.cfg.sample, src/analyze.c, src/ftimes.h, src/properties.c: Added initial support for specifying a byte count. This capability is useful in situations where analysis activities need to stop once the specified number of bytes have been processed. 2007-08-29 15:42 mavrik * configure.in, doc/ftimes/controls/AnalyzeStartOffset.pod, doc/ftimes/sections/DESCRIPTION.pod, etc/digfull.cfg.sample, etc/diglean.cfg.sample, etc/mapfull.cfg.sample, etc/maplean.cfg.sample, src/analyze.c, src/develop.c, src/dig.c, src/dig.h, src/ftimes.h, src/properties.c, src/support.c: Added initial support for specifying a start offset. This capability is useful in situations where analysis activities need to begin at a nonzero offset. For block and character device files, this capability should be treated as experimental until all of the system-specific issues have been worked out and more testing can be done. The main concerns, at this point, are seeking to very large offsets and seeking to offsets that do not fall on a block boundary. 2007-08-29 15:36 mavrik * doc/ftimes/controls/DigStringRegExp.pod: Added a note that embedded white space is not allowed in the regular expression. 2007-08-27 22:39 mavrik * src/app-includes.h: Added several defines to prevent a compiler warning. The specific warning was: "The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: ...". This warning was generated by Visual Studio 8.0.50727.42 on a Windows XP SP2 system. So far, this change appears to be backwards compatible with Visual Studio 6.0. 2007-08-27 19:12 mavrik * src/decode.c: Moved the declaration of a variable to eliminate an "unused variable" warning that appears when compiling under MinGW. 2007-08-27 15:02 mavrik * doc/ftimes/controls/AnalyzeMaxDps.pod, doc/ftimes/sections/DESCRIPTION.pod, etc/digfull.cfg.sample, etc/diglean.cfg.sample, etc/mapfull.cfg.sample, etc/maplean.cfg.sample, src/analyze.c, src/ftimes.h, src/properties.c, src/support.c: Added initial support for throttling the Data Processing Speed (DPS). This capability is useful for systems that are sensitive to the load imposed by running FTimes on a periodic basis. 2007-08-23 01:32 mavrik * tools/hashdig/hashdig-resolve-sunsolve.pl: Added the '-c' option to allow the user to specify a block count less than 256. This may help in situations where Sun's online database appears to be sluggish or is having difficulty answering requests containing 256 hashes. I have noticed this behavior recently. In particular, it can take tens of seconds for the server to respond to a request of 256 known hashes, and the resulting output can contain a fair amount of data (roughly 350-1700 KB). In some cases, the connection is closed/broken or the response contains no body. 2007-08-22 22:55 mavrik * tools/hashdig/hashdig-resolve-sunsolve.pl: Modified diagnostic messages to reflect the check that is currently being performed. 2007-08-18 13:24 mavrik * tools/hashdig/README: Updated Sun's online fingerprint database URL path. Thanks to Nick Manos for reporting that the old path is no longer valid. 2007-08-18 04:31 mavrik * tools/hashdig/hashdig-resolve-sunsolve.pl: Added more logic to BlockIsGood() to determine if output files are good. Now, if an output file has a nonzero size, it must contain at least one valid hash record to be considered good. This logic was added because some requests were partially filling the output files, but they were missing valid content. 2007-08-18 03:33 mavrik * tools/hashdig/hashdig-resolve-sunsolve.pl: Changed the POST path from /pub-cgi/fileFingerprints.pl to /fileFingerprints.do. Thanks to Nick Manos for reporting that the old path is no longer valid. 2007-08-05 02:48 mavrik * src/mapmode.c: Added a dependency check to ensure that the MD5 attribute is set when include/exclude MD5 filters are active. If this is not done, the user would get unexpected output since the filtering logic would never get executed. 2007-08-01 01:23 mavrik * doc/ftimes/controls/ExcludeFilterMd5.pod, doc/ftimes/controls/IncludeFilterMd5.pod, doc/ftimes/sections/DESCRIPTION.pod, etc/mapfull.cfg.sample, etc/maplean.cfg.sample, src/develop.c, src/error.h, src/ftimes.h, src/map.c, src/mapmode.c, src/properties.c: Added initial support for include/exclude MD5 filters via PCRE. 2007-05-25 00:39 mavrik * src/: xmagic.c, xmagic.h: Added initial support for various combinations of relative and indirect offsets. Now, the following offset expressions are supported: 'offset', '&offset', '(offset)', '&(offset)', '(&offset)', and '&(&offset)'. Previously, only 'offset', '&offset', and '(offset)' were supported. 2007-05-24 05:51 mavrik * tests/ftimes/common/dig/: test_harness.local, test_4/test_harness.local: Added tests to check the warp logic and operators for indirect offsets. 2007-05-24 05:20 mavrik * src/xmagic.c: Fixed a paste-o. This problem was discovered while attempting to devise XMagic tests for the test harness. 2007-05-24 05:18 mavrik * utils/test_harness: Modified code to sort numerically. 2007-05-23 21:56 mavrik * src/xmagic.c: Added masks for 32-bit values even though they weren't strictly needed under the current implementation. Updated the in-line comments for all similar masks. These changes were made to keep things consistent. 2007-05-23 04:53 mavrik * src/: xmagic.c, xmagic.h: Replaced all instances of iOperator with iTestOperator to clarify the purpose of the variable. Additionally, a similar replacement was made for the XMAGIC_OPERATORS enum in the header file. 2007-05-23 04:42 mavrik * src/: xmagic.c, xmagic.h: Replaced all instances of ui32Type with iType as a matter of preference and consistency. 2007-05-22 21:47 mavrik * src/xmagic.c: Removed an extra argument. 2007-05-22 21:37 mavrik * src/: xmagic.c, xmagic.h: Added initial support for simple warp transformations in indirect offsets. This is an extension of the old +/- logic. The following operators are now supported: '%', '&', '*', '+', '-', '/', '<', '>', '^', and '|'. Due to the restriction that the operator be a single character, the the left- and right-shift operators were abbreviated as '<' and '>', respectively. 2007-05-21 19:50 mavrik * configure.in, tests/test_harness.local, tests/ftimes/common/dig/Makefile.in, tests/ftimes/common/dig/test_harness.local, tests/ftimes/common/dig/test_4/Makefile.in, tests/ftimes/common/dig/test_4/test_harness.local, utils/test_windows.bat: Added several dig tests to the test harness. These tests were designed to check various XMagic incantations and capabilities. In particular, some tests were specifically included to check the new warp logic and operators. 2007-05-21 18:41 mavrik * src/xmagic.c: Added checks to ensure the left- and right-shift values are in the range [0-31]. Shifting a 32-bit number by a value outside this range is not allowed. This problem was discovered while attempting to devise XMagic tests for the test harness. 2007-05-21 16:02 mavrik * src/xmagic.c: Added masks to keep byte and short values from exceeding the allowed range for the type. The new warp operations made this change necessary since each value is actually stored in a 32-bit variable. For example, shifting a byte value of 1 to the left by 8 bits should produce a new byte value of 0. However, since the value was stored as a 32-bit variable, the new value was actually 256. This problem was discovered while attempting to devise XMagic tests for the test harness. 2007-05-21 15:46 mavrik * src/xmagic.c: Added a check to ensure that a modulus of zero is not allowed as it would cause a divide by zero error. This problem was discovered while attempting to devise XMagic tests for the test harness. 2007-05-21 13:35 mavrik * src/xmagic.c: Added a FIXME reminder. 2007-05-19 05:32 mavrik * src/: xmagic.c, xmagic.h: Added initial support for simple warp transformations. This is an extension of the old mask logic, which would perform a bitwise AND on the value before testing it. The following operators are now supported for integers: '%', '&', '*', '+', '-', '/', '<', '>', '^', and '|'. Due to the restriction that the operator be a single character, the the left- and right-shift operators were abbreviated as '<' and '>', respectively. 2007-05-19 01:47 mavrik * src/analyze.c: Fixed a bug where the incorrect value was being returned on error. 2007-05-19 00:05 mavrik * tests/ftimes-crv2raw/common/carve/test_harness.local: Fixed the test harness to match the changes that were applied to revision 1.8 of ftimes-crv2raw.pl. 2007-05-02 03:23 mavrik * tools/map/ftimes-map2dbi.pl: Fixed an incorrect index name. 2007-05-01 15:56 mavrik * tools/dig/ftimes-crv2raw.pl: Put MD5 and SHA1 fields in the proper order. 2007-04-18 17:03 mavrik * tools/dig/ftimes-crv2raw.pl: Enabled binmode() for RAW/OUT file handles to support WIN32 platforms. 2007-04-14 20:22 mavrik * src/ftimes.h: Removed the alpha designator. 2007-04-14 20:10 mavrik * src/properties.c: Relaxed the requirement that imported config files must exist -- under the old logic, the program would abort if they didn't. By making this allowance, an admin can (more easily) create a generic config file that spans multiple clients or an entire FTimes deployment. 2007-04-14 19:42 mavrik * Mk/common-tests.mk.in: Synchronized common-tests.mk.in with revision 1.8 of the same in The WebJob Project. 2007-04-14 19:35 mavrik * README.INSTALL: Fixed a paste-o. 2007-03-26 16:37 mavrik * utils/test_harness: Synchronized test_harness with revision 1.12 of the same in The WebJob Project. 2007-03-23 03:09 mavrik * src/: fsinfo.c, fsinfo.h: Added support for the NTFS3G file system under UNIX. This change was made in response to an anonymous feature request (SF-Tracker/Feature Requests/1672565). Thanks to Jason Smith for writing and testing the initial patch. 2007-02-23 00:39 mavrik * Mk/common.mk.in: Removed INDENT-related macros, and simplified the {SUBDIR,TARGET}_MAKE and {SUBDIR,TARGET}_TRACE macros. The extra commands were overkill. 2007-02-23 00:34 mavrik * README.INSTALL: Added more details to the Requirements section, and included some new gotchas. 2007-02-23 00:22 mavrik * Makefile.in, Makefile.vs, README.LICENSE, cgi/Makefile.in, cgi/nph-ftimes.cgi, etc/Makefile.in, src/all-includes.h, src/analyze.c, src/app-includes.h, src/cfgtest.c, src/cmpmode.c, src/compare.c, src/compare.h, src/decode.c, src/decode.h, src/decoder.c, src/develop.c, src/dig.c, src/dig.h, src/digmode.c, src/error.c, src/error.h, src/fsinfo.c, src/fsinfo.h, src/ftimes.c, src/ftimes.h, src/getmode.c, src/http.c, src/http.h, src/ktypes.h, src/map.c, src/mapmode.c, src/mask.c, src/mask.h, src/md5.c, src/md5.h, src/message.c, src/message.h, src/properties.c, src/sha1.c, src/sha1.h, src/sha256.c, src/sha256.h, src/socket.c, src/socket.h, src/ssl-pool.h, src/ssl.c, src/ssl.h, src/support.c, src/sys-includes.h, src/time.c, src/url.c, src/xmagic.c, src/xmagic.h, tools/dig/Makefile.in, tools/dig/ftimes-crv2dbi.pl, tools/dig/ftimes-crv2raw.pl, tools/dig/ftimes-dig2ctx.pl, tools/dig/ftimes-dig2dbi.pl, tools/dig/hipdig.pl, tools/hashdig/Makefile.in, tools/hashdig/hashdig-bash.pl, tools/hashdig/hashdig-bind.pl, tools/hashdig/hashdig-dump.pl, tools/hashdig/hashdig-filter.pl, tools/hashdig/hashdig-find.pl, tools/hashdig/hashdig-harvest-sunsolve.pl, tools/hashdig/hashdig-harvest.pl, tools/hashdig/hashdig-make.pl, tools/hashdig/hashdig-resolve-sunsolve.pl, tools/hashdig/hashdig-stat.pl, tools/hashdig/hashdig-weed.pl, tools/lrs/pool2string.c, tools/lrs/string2pool.c, tools/map/Makefile.in, tools/map/ftimes-cmp2dbi.pl, tools/map/ftimes-map2dbi.pl, tools/map/ftimes-map2mac.pl, tools/tarmap/all-includes.h, tools/tarmap/tarmap.c, tools/tarmap/tarmap.h, utils/test_harness, utils/tree_builder: Updated copyright information. 2007-02-23 00:12 mavrik * Makefile.in, Mk/common-subdir.mk.in: Adopted the "end-of-list" fix from the corresponding files in The WebJob Project. 2007-02-23 00:06 mavrik * README.STYLE: Synchronized README.STYLE with revision 1.5 of the same in The WebJob Project. 2007-02-23 00:00 mavrik * Makefile.in: Collapsed SUBDIRS to a single line. This will make it easier to modify the list with sed(1) when cutting/testing releases. 2007-01-02 23:11 mavrik * doc/README: Modified README to reflect the current build process. 2007-01-02 22:44 mavrik * tools/Makefile.in: Modified Makefile to use the common Makefile guts found in common-subdir.mk. 2007-01-02 22:34 mavrik * configure.in, Mk/common-doc-c.mk.in, Mk/common-doc-perl.mk.in, Mk/common-docs-perl.mk.in, Mk/common-subdir.mk.in, doc/Makefile.in, doc/ftimes/Makefile, doc/ftimes/Makefile.in, doc/ftimes-cmp2dbi/Makefile, doc/ftimes-cmp2dbi/Makefile.in, doc/ftimes-crv2dbi/Makefile, doc/ftimes-crv2dbi/Makefile.in, doc/ftimes-crv2raw/Makefile, doc/ftimes-crv2raw/Makefile.in, doc/ftimes-dig2ctx/Makefile, doc/ftimes-dig2ctx/Makefile.in, doc/ftimes-dig2dbi/Makefile, doc/ftimes-dig2dbi/Makefile.in, doc/ftimes-map2dbi/Makefile, doc/ftimes-map2dbi/Makefile.in, doc/ftimes-map2mac/Makefile, doc/ftimes-map2mac/Makefile.in, doc/hashdig-bash/Makefile, doc/hashdig-bash/Makefile.in, doc/hashdig-bind/Makefile, doc/hashdig-bind/Makefile.in, doc/hashdig-dump/Makefile, doc/hashdig-dump/Makefile.in, doc/hashdig-filter/Makefile, doc/hashdig-filter/Makefile.in, doc/hashdig-find/Makefile, doc/hashdig-find/Makefile.in, doc/hashdig-harvest/Makefile, doc/hashdig-harvest/Makefile.in, doc/hashdig-harvest-sunsolve/Makefile, doc/hashdig-harvest-sunsolve/Makefile.in, doc/hashdig-make/Makefile, doc/hashdig-make/Makefile.in, doc/hashdig-resolve-sunsolve/Makefile, doc/hashdig-resolve-sunsolve/Makefile.in, doc/hashdig-stat/Makefile, doc/hashdig-stat/Makefile.in, doc/hashdig-weed/Makefile, doc/hashdig-weed/Makefile.in, doc/hipdig/Makefile, doc/hipdig/Makefile.in, doc/tarmap/Makefile, doc/tarmap/Makefile.in: Added initial configure/build support for automatically creating documentation at build time (rather than release time). Note that this change will likely break some build environments out there. To ease this transitional problem, consider adding a configure option to disable the building of documents. 2007-01-02 03:52 mavrik * configure.in, Mk/common-macros.mk.in, Mk/common.mk.in: Removed common-macros.mk.in from the project, and moved its contents to common.mk.in. This was done because there's not enough difference between the two templates to justify maintaining both. 2007-01-02 03:47 mavrik * configure.in, Mk/common-macros.mk.in, Mk/common-src-c.mk.in, Mk/common.mk.in, src/Makefile.in: Added common Makefile guts for gcc-compiled tools, and modified src/Makefile.in to use them. 2007-01-01 21:55 mavrik * src/properties.c: Fixed a bug where various pointers/arrays could be indexed to the left of their initial pointer value or with an index value of -1. The purpose of the logic, in each case, was to remove trailing whitespace. The problem was that the string being tested could be empty. Therefore, checks were added to ensure that the string's length is greater than zero before computing an index. This bug caused 64-bit FreeBSD, Linux, and Solaris builds to dump core when the config file contained the following entry (note the empty value): Exclude= Actually, the problem was not limited to the Exclude control. When these control values were empty, the pc pointer/array was being indexed with a value of -1. An example of the affected code would be something like this: pcEnd = &pc[iLength - 1]; where iLength was set to 0. Based on limited testing, this problem does not appear to affect 32-bit builds for FreeBSD, Linux, Solaris, or Windows. Thanks to Jason Smith for discovering and reporting this problem and for helping me test the patch. 2007-01-01 19:17 mavrik * src/map.c: Added a check to ensure that SMB file systems are treated as remote file systems under UNIX. Thanks to Jason Smith for writing and testing the initial patch. 2007-01-01 19:12 mavrik * src/: fsinfo.c, fsinfo.h: Added support for Universal Disk Format file systems (UDF) under MacOS X (and the BSD's by extension). 2007-01-01 17:18 mavrik * tools/hashdig/hashdig-harvest.pl: Added missing quotes around SHA256. 2006-10-04 03:14 mavrik * tools/hashdig/: README, hashdig-bind.pl, hashdig-find.pl, hashdig-harvest.pl, hashdig-make.pl, hashdig-stat.pl, hashdig-weed.pl: Added initial support for SHA256 hashes to HashDig utilities. 2006-10-03 22:52 mavrik * Mk/common-macros.mk.in, tests/tarmap/common/map/test_1/Makefile.in, tests/tarmap/common/map/test_1/test_harness.local, tools/tarmap/all-includes.h, utils/test_windows.bat: Replaced dummy test with a real, but very basic, test. Fixed other nits and bits required to get the tarmap portion of the test harness working on FreeBSD, Linux, Solaris, and Windows. 2006-10-03 04:08 mavrik * configure.in, doc/Makefile.in, doc/ftimes-crv2dbi/Makefile, tools/dig/Makefile.in, tools/dig/ftimes-crv2dbi.pl: Added ftimes-crv2dbi.pl to the project. The purpose of this tool is to preprocess FTimes carve data for MySQL DB import. 2006-10-02 23:50 mavrik * tools/dig/ftimes-dig2dbi.pl: Added a missing index keyword. 2006-10-02 15:09 mavrik * src/: fsinfo.c, fsinfo.h: Added support for a DataPlow file system (DATAPLOW_ZFS) under Windows. This file system is used on the NETGEAR SC101 NAS appliance. The drive was attached to a Windows XP System: Windows NT 5.1 Build 2600 Service Pack 2. Thanks to Jason Smith for writing and testing the initial patch. 2006-10-01 22:58 mavrik * src/: fsinfo.c, fsinfo.h: Put file systems in alphabetical order -- except for UNSUPPORTED, which must be first. 2006-10-01 12:49 mavrik * src/: fsinfo.c, fsinfo.h: Added support for NetWare Compatible file systems (NWCOMPAT) under Windows. This requirement popped up on a forensics gig where we needed to map a NetWare 4.11 share mounted on a Windows XP system: Windows NT 5.1 Build 2600 Service Pack 2. Thanks to Jason Smith for writing and testing the initial patch. 2006-09-18 15:31 mavrik * doc/baselining/baselining.tex: Committed final edits for version 1.3. 2006-09-17 12:56 mavrik * doc/baselining/baselining.tex: Incorporated version 1.3 feedback from Dave Bailey. 2006-09-17 12:38 mavrik * doc/baselining/: baselining.sty, baselining.tex: Whitespace cleanup. 2006-09-15 18:46 mavrik * utils/tree_builder: Added '-M' option to disable map output. This allows someone to use the script even if they don't have Digest::{MD5,SHA1} installed on their system. This change required a switch from functional to object-oriented code. Also, this option is incompatible with the '-n' option. 2006-09-15 17:09 mavrik * utils/tree_builder: Swapped 'sha1' and 'md5' field order. 2006-09-14 20:33 mavrik * doc/baselining/: FTimes-Scroll-250x127-deb887.jpg, Makefile: Added missing files that are required to build baselining.pdf and/or baselining-screen.pdf. 2006-09-14 20:00 mavrik * doc/baselining/baselining.tex: Updated the document version to 1.3. 2006-09-14 19:57 mavrik * doc/baselining/: baselining.bib, baselining.tex: Performed a full review of the paper. Modified and added content as required to bring the paper up to date. Replaced \href macros with \url macros as they no longer work with some of the links. Apparently, the links in question were too long. 2006-09-14 19:16 mavrik * doc/baselining/baselining.sty: Updated screen layout section and added a comment that explains how to switch between screen and print layouts. 2006-09-14 19:13 mavrik * doc/baselining/baselining.sty: Replaced fancyheadings with fancyhdr as the latter appears to be more current. 2006-09-10 15:50 mavrik * src/decode.c: Modified the way the time argument is passed to TimeFormatTime(). This was done in an attempt to fix a bug on Solaris 64-bit builds that caused ftimes to dump core. The strange thing with this bug was that the value passed to TimeFormatTime() was valid outside the routine, but inside the routine, it was invalid. In fact, it was zero, and this is what caused gmtime() to fail. It is not clear, if this fix actually resolved the root problem or not -- it may have only displaced it. Thanks to Jason Smith for discovering and reporting this problem and for helping me test the patch. 2006-09-08 16:20 mavrik * src/xmagic.c: Added a check to ensure that the head node in the XMagic tree is a level zero test. Without this, the tree could end up with a child test (i.e., level one or higher) assigned to the head node, which is invalid since all child tests must have a parent. In the case of a relative child test, this situation would result in a core dump since XMagicGetValueOffset() would attempt to calculate its value using a NULL parent pointer. Thanks to Andy Bair for reporting this issue and writing the initial patch. 2006-09-08 13:54 mavrik * doc/tarmap/sections/DESCRIPTION.pod: Swapped 'sha1' and 'md5' field order. 2006-09-07 20:00 mavrik * src/digmode.c: Added a cast to prevent a 64-bit compiler warning. 2006-09-07 19:51 mavrik * tools/tarmap/tarmap.h: Bumped minor version number. 2006-09-07 19:46 mavrik * tools/tarmap/tarmap.c: Finished doing what should have been done in the previous commit. 2006-09-07 19:29 mavrik * config.guess, config.sub, configure.in, install-sh, utils/config.guess, utils/config.sub, utils/install-sh: Relocated config.guess, config.sub, and install-sh to the utils directory. 2006-09-07 19:17 mavrik * src/develop.c: Reworked the ER_NullFields output to eliminate the trailing comma. 2006-09-07 18:31 mavrik * src/ftimes.h: Bumped minor version number, and added alpha designator. 2006-09-07 16:45 mavrik * src/xmagic.c: Relocated a malloc() to prevent a memory leak. 2006-09-07 14:52 mavrik * src/: compare.c, compare.h, ftimes.h: Fixed a bug that was exposed by the test harness during testing of the new hash ordering (i.e., MD5 first). The problem was that CompareDecodeLine() was using the baseline's field mask (ulFieldMask) rather than its lookup table (aiIndex2Map) to determine slots in the ppcFields array. In other words, the slots were derived from the bit position of a given field in the mask. Therefore, a reversal of two fields, say 'md5' and 'sha1', would cause the values for those fields to be stored in the wrong slots. Since the hash ordering for legacy versions is SHA1 followed by MD5, comparing a current snapshot to a legacy snapshot with the same fields would result in MD5s being compared to SHA1s and vice-versa. This problem was not restricted to the hash fields as can be demonstrated by the following example: --- snapshot_old --- name|uid|gid "foo"|10|100 --- snapshot_old --- --- snapshot_new --- name|gid|uid "foo"|100|10 --- snapshot_new --- Running ftimes 3.7.0 as shown below yields the expected results (i.e., no changes): $ ftimes --compare all snapshot_old snapshot_new -l 6 category|name|changed|unknown but running it this way triggers the bug: $ ftimes --compare all snapshot_new snapshot_old -l 6 category|name|changed|unknown C|"foo"|uid,gid| In the second case, snapshot_new is the baseline, which means that its records are processed by CompareDecodeLine(). Since its 'uid' and 'gid' fields are reversed with respect to the bits in the field mask, the 'uid' and 'gid' slots were filled with the values 100 and 10, respectively. 2006-09-07 02:37 mavrik * doc/ftimes/controls/FieldMask.pod, src/decode.c, src/develop.c, src/map.c, src/mask.c, src/mask.h, tools/dig/ftimes-crv2raw.pl, tools/hashdig/README, tools/map/ftimes-cmp2dbi.pl, tools/map/ftimes-map2dbi.pl, tools/tarmap/tarmap.c: Updated the hash order such that the MD5 field is first. 2006-09-06 17:17 mavrik * tools/hashdig/README: Updated README to include the new sha256 field. 2006-09-06 17:16 mavrik * tools/map/: ftimes-cmp2dbi.pl, ftimes-map2dbi.pl: Updated script to use the new sha256 field. 2006-09-06 16:51 mavrik * configure.in, doc/ftimes/controls/FieldMask.pod, src/analyze.c, src/decode.c, src/decode.h, src/develop.c, src/ftimes.h, src/map.c, src/mask.c, src/mask.h, tests/ftimes/common/map/Makefile.in, tests/ftimes/common/map/test_harness.local, tests/ftimes/common/map/test_5/Makefile.in, tests/ftimes/common/map/test_5/test_harness.local, tests/ftimes/common/map/test_6/Makefile.in, tests/ftimes/common/map/test_6/test_harness.local, utils/test_windows.bat: Added map mode support for SHA256 hashes. 2006-09-05 15:49 mavrik * src/: ftimes.h, map.c, url.c: Replaced all instances of FTIMEX with FTIMES. The incorrect value was introduced in the 3.3.0 release. 2006-09-05 15:40 mavrik * src/: decode.c, digmode.c, mapmode.c: Renamed several incorrectly named variables. 2006-09-05 15:34 mavrik * src/analyze.c, src/decode.c, src/develop.c, src/digmode.c, src/mapmode.c, tools/tarmap/all-includes.h: Modified the code to utilize the new HashToHex and HashToBase64 routines. The main reasons for this change are to reduce the amount of duplicate code, standardize the way hash values are formatted, and make the process of adding additional hash types easier. 2006-09-05 14:44 mavrik * src/: sha256.c, sha256.h: Added SHA256HashTo{Hex,Base64}() conversion routines. Note that the HashToHex routine operates on 32-bit words, which gives it significantly better performance over the traditional byte-oriented, for-loop approach. However, this implementation does introduce a dependency on htonl() and its associated include files. It's not clear if that will cause portability problems or not. The main concerns, going forward, are byte ordering and word sizes. 2006-09-05 14:42 mavrik * src/: sha1.c, sha1.h: Added SHA1HashTo{Hex,Base64}() conversion routines. Note that the HashToHex routine operates on 32-bit words, which gives it significantly better performance over the traditional byte-oriented, for-loop approach. However, this implementation does introduce a dependency on htonl() and its associated include files. It's not clear if that will cause portability problems or not. The main concerns, going forward, are byte ordering and word sizes. 2006-09-05 14:39 mavrik * src/: md5.c, md5.h: Added MD5HashTo{Hex,Base64}() conversion routines. Note that the HashToHex routine operates on 32-bit words, which gives it significantly better performance over the traditional byte-oriented, for-loop approach. However, this implementation does introduce a dependency on htonl() and its associated include files. It's not clear if that will cause portability problems or not. The main concerns, going forward, are byte ordering and word sizes. 2006-09-05 03:08 mavrik * tools/tarmap/all-includes.h: Added missing include files (ctype.h and stdarg.h). These files are required for compiling tarmap on Solaris 7 platforms. 2006-09-03 16:31 mavrik * src/mask.h: Fixed alignment of field mask defines. 2006-09-03 16:29 mavrik * doc/ftimes/controls/FieldMask.pod, src/mask.c, src/mask.h: Added initial support for group fields (e.g., none+hashes). 2006-09-03 13:31 mavrik * src/map.c: Fixed up comments and vertical spacing in the various Have_Nothing cases. 2006-09-03 13:25 mavrik * src/map.c: Added a filter to remove "." and ".." from being developed in the Have_Nothing case for MapTree(). 2006-09-03 13:03 mavrik * src/: develop.c, ftimes.h: Added DevelopHaveNothingOutput() to handle the case where UNIX or Windows platforms are unable to harvest any attributes for a given file. This fixes a long standing lstat() failure issue with UNIX implementations where bogus file attributes were being developed based on an uninitialized stat structure. Thanks to Jason Smith for discovering and reporting this problem. 2006-09-02 18:13 mavrik * src/decode.c: Fixed minor nits and bits. 2006-08-30 05:49 mavrik * src/map.c: Added additional MEMORY_FREE()s to stop a memory leak. 2006-08-30 04:57 mavrik * src/map.c: Added a missing variable declaration. 2006-08-29 19:55 mavrik * doc/ftimes/controls/ExcludeFilter.pod, doc/ftimes/controls/IncludeFilter.pod, doc/ftimes/sections/DESCRIPTION.pod, etc/digfull.cfg.sample, etc/diglean.cfg.sample, etc/mapfull.cfg.sample, etc/maplean.cfg.sample, src/ftimes.h, src/map.c, src/properties.c, src/support.c: Added initial support for include/exclude filters via PCRE. 2006-08-29 19:45 mavrik * doc/ftimes/controls/Exclude.pod: Fixed an incorrect statement. 2006-08-29 16:23 mavrik * src/: digmode.c, mapmode.c: Replaced all instances of pList with psList. Made other minor changes along the way. 2006-08-22 04:12 mavrik * src/: xmagic.c, xmagic.h: Added a define, XMAGIC_LOG2_OF_10, to represent the value of log2(10). Inserted, as a comment, the equation used to compute entropy. This is equation 3.7.1 (see page 215) of the 30th edition of the following CRC handbook: Standard Mathematical Tables and Formulae. 2006-08-22 01:47 mavrik * configure.in, doc/Makefile.in, doc/hashdig-find/Makefile, tools/hashdig/Makefile.in, tools/hashdig/hashdig-find.pl: Added hashdig-find.pl to the project. The purpose of this tool is to find one or more hashes in a HashDig database. 2006-08-07 01:38 mavrik * Makefile.in: Reviewed and refined Makefile macros and targets. 2006-08-02 03:27 mavrik * tools/: dig/ftimes-dig2ctx.pl, dig/hipdig.pl, hashdig/hashdig-bash.pl, hashdig/hashdig-bind.pl, hashdig/hashdig-dump.pl, hashdig/hashdig-filter.pl, hashdig/hashdig-harvest-sunsolve.pl, hashdig/hashdig-harvest.pl, hashdig/hashdig-make.pl, hashdig/hashdig-resolve-sunsolve.pl, hashdig/hashdig-stat.pl, hashdig/hashdig-weed.pl: Added missing '(1)'s where needed. Stripped '.pl' extensions for all man page references. The project is moving away from production tool names that use extensions since they tie the utility and its implementation together (e.g., '.pl' implies a Perl script). Without the extension, the implementation can be changed, if desired or necessary, between releases. 2006-08-02 03:02 mavrik * configure.in, doc/Makefile.in, doc/ftimes-cmp2dbi/Makefile, doc/ftimes-map2dbi/Makefile, doc/ftimes-map2mac/Makefile: Added initial support for building and installing map-related man pages. 2006-08-02 02:55 mavrik * configure.in, doc/Makefile.in, doc/ftimes-crv2raw/Makefile, doc/ftimes-dig2ctx/Makefile, doc/ftimes-dig2dbi/Makefile, doc/hipdig/Makefile: Added initial support for building and installing dig-related man pages. 2006-08-02 02:41 mavrik * configure.in, Mk/common-docs-perl.mk.in, doc/Makefile.in, doc/hashdig-bash/Makefile, doc/hashdig-bind/Makefile, doc/hashdig-dump/Makefile, doc/hashdig-filter/Makefile, doc/hashdig-harvest/Makefile, doc/hashdig-harvest-sunsolve/Makefile, doc/hashdig-make/Makefile, doc/hashdig-resolve-sunsolve/Makefile, doc/hashdig-stat/Makefile, doc/hashdig-weed/Makefile: Added initial support for building and installing HashDig man pages. 2006-08-02 01:50 mavrik * tools/hashdig/hashdig-filter.pl: Added a missing '=back' tag. 2006-08-02 00:46 mavrik * README, README.INSTALL: Updated FTimes description. 2006-08-02 00:45 mavrik * tools/hashdig/README: Fixed a typo. 2006-08-02 00:34 mavrik * tools/hashdig/hashdig-harvest.pl: Added missing SHA1 support to ProcessGenericFile(). 2006-08-02 00:29 mavrik * tools/hashdig/: hashdig-bind.pl, hashdig-harvest.pl: Added a comment to clarify the use of tabs as delimiters. 2006-08-02 00:07 mavrik * tools/hashdig/: README, hashdig-bind.pl, hashdig-harvest.pl, hashdig-make.pl, hashdig-stat.pl, hashdig-weed.pl: Added initial support for SHA1 hashes to HashDig utilities. 2006-07-30 15:43 mavrik * Makefile.vs, src/Makefile.in, src/app-includes.h, src/sha256.c, src/sha256.h, src/xmagic.c, src/xmagic.h: Added additional support for hash-based XMagic. The newest hash type implemented was SHA256. 2006-07-29 20:55 mavrik * tools/dig/ftimes-dig2dbi.pl: Tags can be null, but offsets should never be null. 2006-07-29 20:46 mavrik * tools/dig/: Makefile.in, ftimes-dig2dbi.pl: Added ftimes-dig2dbi.pl to the project. The purpose of this tool is to preprocess FTimes dig data for MySQL DB import. 2006-07-29 20:43 mavrik * tools/map/: ftimes-cmp2dbi.pl, ftimes-map2dbi.pl: Reviewed code/documentation and refined/fixed various nits and bits. Added a new option, '-t', that allows the user to specify an alternate table name. 2006-07-24 05:20 mavrik * Makefile.in, configure.in, doc/Makefile.in, doc/tarmap/Makefile, doc/tarmap/sections/AUTHOR.pod, doc/tarmap/sections/DESCRIPTION.pod, doc/tarmap/sections/EXAMPLES.pod, doc/tarmap/sections/HISTORY.pod, doc/tarmap/sections/MODES-OF-OPERATION.pod, doc/tarmap/sections/NAME.pod, doc/tarmap/sections/RETURN-VALUES.pod, doc/tarmap/sections/SEE-ALSO.pod, doc/tarmap/sections/SYNOPSIS.pod, tests/tarmap/Makefile.in, tests/tarmap/test_harness.local, tests/tarmap/common/Makefile.in, tests/tarmap/common/test_harness.local, tests/tarmap/common/map/Makefile.in, tests/tarmap/common/map/test_harness.local, tests/tarmap/common/map/test_1/Makefile.in, tests/tarmap/common/map/test_1/test_harness.local, tools/tarmap/Makefile.in, tools/tarmap/Makefile.vs, tools/tarmap/all-includes.h, tools/tarmap/tarmap.c, tools/tarmap/tarmap.h: Added tarmap to the project. The purpose of this utility is to map the files in a tar archive without having to unpack and write them to disk first. This utility is currently in a developmental state. 2006-07-18 19:49 mavrik * src/ftimes.h: Removed the alpha designator. 2006-07-17 06:39 mavrik * tests/ftimes-crv2raw/common/carve/test_harness.local: Modified the code to expect two lines of output rather than one. The extra line is a header. 2006-07-17 05:40 mavrik * src/xmagic.c: Added XMAGIC_OP_LE and XMAGIC_OP_GE as valid entropy/average/percent operators. 2006-07-16 20:04 mavrik * tools/dig/ftimes-crv2raw.pl: Added logic to conditionally output a map header. 2006-07-15 18:11 mavrik * tools/dig/ftimes-crv2raw.pl: Fixed a bug where the errors from MakeCarveList() were not being reported properly. 2006-07-15 05:38 mavrik * tools/dig/ftimes-crv2raw.pl: Modified script to skip blank lines or lines that begin with a '#'. 2006-07-15 03:54 mavrik * configure.in, Mk/common-macros.mk.in, Mk/common-tests.mk.in, tests/ftimes-crv2raw/Makefile.in, tests/ftimes-crv2raw/test_harness.local, tests/ftimes-crv2raw/common/Makefile.in, tests/ftimes-crv2raw/common/test_harness.local, tests/ftimes-crv2raw/common/carve/Makefile.in, tests/ftimes-crv2raw/common/carve/test_harness.local, tests/ftimes-crv2raw/common/carve/test_1/Makefile.in, tests/ftimes-crv2raw/common/carve/test_1/test_harness.local, tools/dig/Makefile.in, tools/dig/ftimes-crv2raw.pl: Added ftimes-crv2raw.pl to the project. The purpose of this utility is to carve blocks of data and assemble them into raw files. 2006-07-14 15:12 mavrik * Mk/common-tests.mk.in, tests/ftimes/common/compare/test_1/Makefile.in, tests/ftimes/common/compare/test_2/Makefile.in, tests/ftimes/common/compare/test_3/Makefile.in, tests/ftimes/common/decoder/test_1/Makefile.in, tests/ftimes/common/dig/test_1/Makefile.in, tests/ftimes/common/dig/test_2/Makefile.in, tests/ftimes/common/dig/test_3/Makefile.in, tests/ftimes/common/map/test_1/Makefile.in, tests/ftimes/common/map/test_2/Makefile.in, tests/ftimes/common/map/test_3/Makefile.in, tests/ftimes/common/map/test_4/Makefile.in, tests/ftimes/common_windows_ads/map/test_1/Makefile.in: Pushed the initialization of TARGET_PROGRAM down to the lowest Makefiles in the test harness. This was done because the harness is now being used to test multiple tools. 2006-07-14 01:09 mavrik * configure.in, tests/Makefile.in, tests/test_harness.local, tests/common/Makefile.in, tests/common/test_harness.local, tests/common/compare/Makefile.in, tests/common/compare/test_harness.local, tests/common/compare/test_1/Makefile.in, tests/common/compare/test_1/test_harness.local, tests/common/compare/test_2/Makefile.in, tests/common/compare/test_2/test_harness.local, tests/common/compare/test_3/Makefile.in, tests/common/compare/test_3/test_harness.local, tests/common/decoder/Makefile.in, tests/common/decoder/test_harness.local, tests/common/decoder/test_1/Makefile.in, tests/common/decoder/test_1/test_harness.local, tests/common/dig/Makefile.in, tests/common/dig/test_harness.local, tests/common/dig/test_1/Makefile.in, tests/common/dig/test_1/test_harness.local, tests/common/dig/test_2/Makefile.in, tests/common/dig/test_2/test_harness.local, tests/common/dig/test_3/Makefile.in, tests/common/dig/test_3/test_harness.local, tests/common/map/Makefile.in, tests/common/map/test_harness.local, tests/common/map/test_1/Makefile.in, tests/common/map/test_1/test_harness.local, tests/common/map/test_2/Makefile.in, tests/common/map/test_2/test_harness.local, tests/common/map/test_3/Makefile.in, tests/common/map/test_3/test_harness.local, tests/common/map/test_4/Makefile.in, tests/common/map/test_4/test_harness.local, tests/common_windows_ads/Makefile.in, tests/common_windows_ads/test_harness.local, tests/common_windows_ads/map/Makefile.in, tests/common_windows_ads/map/test_harness.local, tests/common_windows_ads/map/test_1/Makefile.in, tests/common_windows_ads/map/test_1/test_harness.local, tests/ftimes/Makefile.in, tests/ftimes/test_harness.local, tests/ftimes/common/Makefile.in, tests/ftimes/common/test_harness.local, tests/ftimes/common/compare/Makefile.in, tests/ftimes/common/compare/test_harness.local, tests/ftimes/common/compare/test_1/Makefile.in, tests/ftimes/common/compare/test_1/test_harness.local, tests/ftimes/common/compare/test_2/Makefile.in, tests/ftimes/common/compare/test_2/test_harness.local, tests/ftimes/common/compare/test_3/Makefile.in, tests/ftimes/common/compare/test_3/test_harness.local, tests/ftimes/common/decoder/Makefile.in, tests/ftimes/common/decoder/test_harness.local, tests/ftimes/common/decoder/test_1/Makefile.in, tests/ftimes/common/decoder/test_1/test_harness.local, tests/ftimes/common/dig/Makefile.in, tests/ftimes/common/dig/test_harness.local, tests/ftimes/common/dig/test_1/Makefile.in, tests/ftimes/common/dig/test_1/test_harness.local, tests/ftimes/common/dig/test_2/Makefile.in, tests/ftimes/common/dig/test_2/test_harness.local, tests/ftimes/common/dig/test_3/Makefile.in, tests/ftimes/common/dig/test_3/test_harness.local, tests/ftimes/common/map/Makefile.in, tests/ftimes/common/map/test_harness.local, tests/ftimes/common/map/test_1/Makefile.in, tests/ftimes/common/map/test_1/test_harness.local, tests/ftimes/common/map/test_2/Makefile.in, tests/ftimes/common/map/test_2/test_harness.local, tests/ftimes/common/map/test_3/Makefile.in, tests/ftimes/common/map/test_3/test_harness.local, tests/ftimes/common/map/test_4/Makefile.in, tests/ftimes/common/map/test_4/test_harness.local, tests/ftimes/common_windows_ads/Makefile.in, tests/ftimes/common_windows_ads/test_harness.local, tests/ftimes/common_windows_ads/map/Makefile.in, tests/ftimes/common_windows_ads/map/test_harness.local, tests/ftimes/common_windows_ads/map/test_1/Makefile.in, tests/ftimes/common_windows_ads/map/test_1/test_harness.local: Moved tests/common and tests/common_windows_ads to tests/ftimes/common and tests/ftimes/common_windows_ads, respectively. Moved FillFile() upstream one level so that it's visible to all tools in the test harness. These changes will make it easier to add support for testing other tools going forward. 2006-07-14 01:08 mavrik * utils/test_windows.bat: Synchronized the script's layout with revision 1.1 of the same in The WebJob Project, and updated paths to work with the test harness changes that are about to be committed. 2006-07-14 00:30 mavrik * utils/test_harness: Changed the default harness type from 3 to 4. 2006-06-30 16:53 mavrik * src/ftimes.h: Bumped minor version number, and added alpha designator. 2006-06-30 16:52 mavrik * src/xmagic.c: Fixed a bug where iBytesLeft was being decremented improperly, which could result in its value going negative. The problem was that each time the results of a match were added to the description buffer iBytesLeft was being decremented by the value of iBytesUsed instead of the amount of bytes actually written to the buffer. Since iBytesUsed is accumulative, the error is compounded for each match that is made. 2006-06-28 22:52 mavrik * src/xmagic.h: Bumped XMAGIC_REGEXP_BUFSIZE up to 1024 bytes. This was done because some regular expressions can be quite large -- especially those that have many alternations. 2006-06-28 22:46 mavrik * src/xmagic.c: Dropped the size restriction on DigStringRegExp search buffers. This allows the user to specify a much larger range with an upper limit of AnalyzeBlockSize. Originally, the size restriction was used prevent a greedy expression from filling up the description buffer. However, there is additional logic that will truncate the captured string if it gets too large, so this change should not introduce any overflow issues. 2006-06-28 20:24 mavrik * src/xmagic.h: Bumped XMAGIC_MAX_LEVEL up to 128. This was done just to raise the ceiling well beyond any current or anticipated needs. 2006-06-28 20:20 mavrik * src/: dig.c, xmagic.c, xmagic.h: Added initial support for fallback XMagic tests. In fallback mode, accumulated output is only printed when all tests in a chain pass. A chain is a series of nested tests (e.g., parent->kid->grandkid). If any test in the chain fails, the net result is no match for the entire chain. In other words, all tests are logically ANDed together. This is different than the traditional mode of operation where output from the various sibling tests is accumulated. Fallback mode is denoted by the '<' test level token -- the traditional test level token is '>'. Here is an example: 0 percent_ctype_ascii:512 > 98 %1.2f <&0 percent_ctype_alnum:512 > 50 %1.2f <<&0 percent_ctype_space:512 [] 10,20 %1.2f <<<&0 percent_ctype_punct:512 < 10 %1.2f This test only prints out a result if all four tests pass. If any one of the test fail, the entire chain fails. 2006-06-27 15:30 mavrik * src/: xmagic.c, xmagic.h: Added initial support for percent-based XMagic. The first percent types added implement the following ctype(3) character classes: alnum, alpha, ascii, cntrl, digit, lower, print, punct, space, and upper. 2006-06-27 05:19 mavrik * src/xmagic.c: Reverted the changes committed in revision 1.34. A lot of magic tests use sibling tests to accumulate information in the description buffer. Therefore, it is necessary to test all sibling magic whether or not a previous sibling had a match. 2006-06-26 02:44 mavrik * src/xmagic.h: Put XMAGIC_OPERATORS and XMAGIC_TYPES in alphabetical order. 2006-06-24 21:00 mavrik * doc/ftimes/controls/DigString.pod, doc/ftimes/controls/DigStringNoCase.pod, doc/ftimes/controls/DigStringNormal.pod, doc/ftimes/controls/DigStringRegExp.pod, doc/ftimes/controls/DigStringXMagic.pod, doc/ftimes/sections/EXAMPLES.pod, doc/ftimes/sections/MODES-OF-OPERATION.pod, src/dig.c, src/dig.h, src/properties.c, tests/common/dig/test_harness.local, tools/dig/ftimes-dig2ctx.pl, tools/dig/hipdig.pl: Added initial support for dig string tags. These tags can be used to identify a given dig string or set of strings, and that can make the process of analyzing dig output much easier. Note that this change necessarily altered the output format. The new format is as follows: name|type|tag|offset|string 2006-06-21 22:55 mavrik * src/xmagic.c: Fixed a copyo. 2006-06-21 17:24 mavrik * src/xmagic.c: Added the noop ('x') operator and supporting logic for average and entropy types. 2006-06-21 17:16 mavrik * src/xmagic.c: Added the not equal ('!=') operator and supporting logic for string types. 2006-06-21 16:46 mavrik * src/: dig.c, digmode.c: The recent addition of XMagic dig strings has had an impact on the minimum value and use of the carry size. The current changes attempt to remedy those issues, but more testing is required to determine if these changes work as intended. 2006-06-21 03:58 mavrik * src/: xmagic.c, xmagic.h: Added initial support for hash-based XMagic. The first two hash types implemented are MD5 and SHA1. 2006-06-20 18:42 mavrik * src/: analyze.c, dig.c, ftimes.h, xmagic.c, xmagic.h: Modified XMagicLoadMagic() so that it returns a pointer to XMAGIC. This affected the arguments of several routines, and it required some other minor changes. The global XMAGIC pointer (gpsXMagicTree) was eliminated along the way. 2006-06-20 16:53 mavrik * src/analyze.c: Added more information to the error message that gets generated when the carry size is smaller than the largest dig string. 2006-06-20 16:50 mavrik * src/properties.c: A carry size of zero is OK. There are situations where having a zero-length carry size is desirable. For example, suppose you want to perform a calculation (e.g., entropy) on each block of a file with no overlaps along the way. 2006-06-20 05:20 mavrik * doc/ftimes/controls/AnalyzeStepSize.pod, doc/ftimes/controls/DigStringXMagic.pod, doc/ftimes/sections/DESCRIPTION.pod, etc/digfull.cfg.sample, etc/diglean.cfg.sample, src/analyze.c, src/app-includes.h, src/dig.c, src/dig.h, src/digmode.c, src/ftimes.c, src/ftimes.h, src/properties.c: Added initial support for XMagic digs. In map mode, XMagic tests are only performed once per file and only on the first block of data. This new feature gives ftimes the ability to perform XMagic tests for each block (AnalyzeBlockSize) of data read, and if the step size (AnalyzeStepSize) is small compared to the block size, the tests can be executed multiple times per block. This makes it possible for the user to really explore the limits of XMagic. For example, it is now possible to craft magic incantations that match any arbitrary section of a file. 2006-06-19 05:45 mavrik * src/: xmagic.c, xmagic.h: Added additional support for average-based XMagic. The second average type implemented is dubbed row_average_2. This type performs row-based average calculations using a 2-byte sliding window. 2006-06-19 05:13 mavrik * src/: xmagic.c, xmagic.h: Added initial support for average-based XMagic. The first average type implemented is dubbed row_average_1. This type performs row-based average calculations using a 1-byte sliding window. 2006-06-18 04:01 mavrik * src/xmagic.c: Fixed a snprintf() statement that had too many arguments. 2006-06-18 03:42 mavrik * src/xmagic.c: Added casts to prevent a compiler warning. The specific warning was: "warning C4018: '<' : signed/unsigned mismatch". This warning was generated by Visual Studio 6.0 on a Windows 2000 SP4 system. 2006-06-18 03:34 mavrik * Makefile.vs: Added references to user32.lib and advapi32.lib so that FTimes would compile cleanly with OpenSSL 0.9.8b. 2006-06-18 00:56 mavrik * src/xmagic.c: Added a new equal ('==') operator. The old operator ('=') will continue to be supported for a time, but it is being phased out. 2006-06-18 00:49 mavrik * src/xmagic.c: Fixed a bug where sibling magic was being tested even though a match had already been found by a previous sibling. 2006-06-18 00:19 mavrik * src/: xmagic.c, xmagic.h: Added additional support for entropy-based XMagic. The second entropy type implemented is dubbed row_entropy_2. This type performs row-based entropy calculations using a 2-byte sliding window. 2006-06-17 21:03 mavrik * src/: Makefile.in, xmagic.c, xmagic.h: Added initial support for entropy-based XMagic. The first entropy type implemented is dubbed row_entropy_1. This type performs row-based entropy calculations using a 1-byte sliding window. 2006-06-14 19:19 mavrik * src/properties.c: Renamed PROPERTIES_MAX_LINE_LENGTH as PROPERTIES_MAX_LINE and increased its value from 1024 to 8192. This was done for consistency with the other *_MAX_LINE defines and because it was not possible to specify a 1024 byte URL-encoded dig string -- such a string would require 3 * 1024 bytes when fully encoded. 2006-06-04 01:02 mavrik * src/ftimes.h: Increased the value for FTIMES_MAX_BLOCK_SIZE from 1 MB to 1 GB. This was done because having the ability to specify a large block size for certain types of regular expression digs is useful. The previous value was purposely set low to avoid potential out-of-memory errors induced by the user requesting overly large block/carry sizes. 2006-05-31 15:16 mavrik * README.INSTALL: Attempted to align various bits and pieces of the build process with their counterparts in The WebJob Project. 2006-05-26 20:39 mavrik * utils/test_harness: Added support for a 4-level test harness. 2006-05-26 19:38 mavrik * Makefile.in, doc/Makefile.in, tools/Makefile.in: Replaced hardwired references to make with ${MAKE}. 2006-05-26 19:34 mavrik * Mk/common-macros.mk.in: Removed the hardwired value for MAKE (i.e., 'make -s'). Besides potentially breaking user expectations with respect to the '-s' argument (some folks want all that output), it's not a good idea to arbitrarily override this macro. For example, if the build process is invoked using gmake and there is no link for make pointing to gmake, any recursive makes may yield unexpected results because they will have been forced to use 'make -s' instead of internally defined value for ${MAKE}, which, in this case, would be gmake. 2006-05-22 17:16 mavrik * tests/common/decoder/test_1/test_harness.local: Fixed incorrect hash key. 2006-05-04 00:53 mavrik * src/message.c: Added a comment block and fixed other minor nits and bits. 2006-05-04 00:50 mavrik * src/: cmpmode.c, decoder.c, digmode.c, getmode.c, mapmode.c, message.c, message.h: Added an auto flush mechanism to the message handler. The purpose of this mechanism is to improve message retention by enforcing mandatory flushing as soon as the output file (not stderr) is ready for writing. All run modes now call MessageSetAutoFlush() after they have initialized their log stream. The issue that prompted this change was the fact that the log file (not stderr redirected to a file) would be empty (or lag behind stderr) for a majority of the run. If the run completed without an error, this was not a problem. However, if the job was terminated prematurely or the disk filled up and stderr was not (or could not be) preserved, the log file would either be empty or missing potentially important log messages. 2006-05-03 21:27 mavrik * src/message.c: Added fflush() calls after each write to stderr in MessageHandler(). This was done because, it seems (based on initial testing) that stderr for cmd.exe on Windows is fully buffered -- as opposed to being unbuffered, which is the norm for UNIX platforms (see man page for setvbuf()). This condition is problematic in at least two scenarios where stderr is being redirected (e.g., '2> map.log') to a file: 1) the output device fills up and 2) the snapshot process is killed prematurely. The problem, in practice, is that the resulting file will be empty because its data could not be written out to disk until it was too late (i.e., the disk was already full). By flushing stderr each time through the MessageHandler(), it reduces the chances that log messages get lost due to these scenarios. 2006-05-03 21:26 mavrik * src/support.c: Modified the error checking logic in SupportWriteData() to address the different ways that various platforms handle fwrite() errors. Added error checking for fflush(). The focus of these changes was to improve the tool's ability to detect and handle write errors -- especially in the case where the output device fills up. During testing for example, FreeBSD and Solaris platforms were returning short write counts (as expected) when the device being written to filled up, but Linux and Windows platforms were not. The result was that FTimes would abort (as expected) for FreeBSD and Solaris platforms, but it would continue to run on Linux and Windows platforms. This meant that ATimes were being updated without their values being preserved in the output stream, and that's not acceptable for this type of utility. Thanks to Jason Smith for isolating and reporting this problem and for helping me test the patch. 2006-04-17 02:42 mavrik * tests/test_harness.local: Fixed the regular expression test in GetToolVersion(). When ftimes has a version with no compiled-in options (e.g., "ftimes 3.6.0 32-bit"), the expression contained one too many spaces to work correctly. 2006-04-16 20:45 mavrik * src/ftimes.h: Removed the gamma designator. 2006-04-16 20:42 mavrik * README, README.INSTALL: Reviewed and updated documentation in preparation for the 3.6.0 release. 2006-04-16 20:08 mavrik * doc/ftimes/sections/MODES-OF-OPERATION.pod: Added a note about comparing compressed snapshots. 2006-04-16 20:07 mavrik * doc/ftimes/controls/MagicFile.pod: Added a URL reference to XMagic. 2006-04-16 19:02 mavrik * Makefile.vs, utils/test_windows.bat: Added the test target and test_windows.bat to automate testing via the test harness for Windows Visual Studio builds. Note that ActivePerl is required to perform this testing. 2006-04-16 17:24 mavrik * tests/common_windows_ads/map/test_harness.local: Removed an obsolete instance of CreateConfig(). 2006-04-16 17:16 mavrik * src/support.c: Fixed a problem where Windows was not encoding several character codes in the range 0x7f - 0xff. This problem was fixed in revision 1.21 of dig.c, but it was re-introduced at revision 1.23 due to the switch to SupportNeuterString() as the standard encoding routine. Thanks to the test harness for doing its job! 2006-04-16 17:16 mavrik * tests/common/compare/test_3/test_harness.local: Modified tree builder command to not create symbolic links on Windows platforms. 2006-04-16 14:48 mavrik * utils/test_harness: Added missing '-s' argument to the usage statement. 2006-04-16 14:32 mavrik * utils/test_harness: Indented a block of code to the proper level. 2006-04-16 05:08 mavrik * src/xmagic.c: Added a cast to prevent a compiler warning. The specific warning was: "warning C4018: '<' : signed/unsigned mismatch". This warning was generated by Visual Studio 6.0 on a Windows 2000 SP4 system. 2006-04-16 04:56 mavrik * tests/common/compare/test_3/test_harness.local: Modified tree_builder command to run via perl. This was done to make testing on Windows platforms a bit easier. 2006-04-16 04:52 mavrik * tests/common/compare/test_3/test_harness.local: Changed test description. 2006-04-16 04:16 mavrik * configure.in, tests/common/compare/Makefile.in, tests/common/compare/test_3/Makefile.in, tests/common/compare/test_3/test_harness.local: Added additional compare tests to the test harness. 2006-04-16 03:28 mavrik * tests/: test_harness.local, common/dig/test_harness.local, common/map/test_harness.local: Moved CreateConfig() upstream two levels and merged map- and dig-specific bits into one general routine. This reduces duplicate code, and it makes the routine visible to all test directories. 2006-04-11 00:56 mavrik * src/xmagic.c: Fixed a bug where XMagicTestRegExp() was not returning false when there was a match and test operator was '!~'. 2006-04-10 21:40 mavrik * src/xmagic.c: Fixed a bug where pcre_exec() was not starting its search at the proper offset in the subject buffer. 2006-04-09 20:30 mavrik * src/dig.c, tests/common/dig/test_harness.local: Modified DigDevelopOutput() to use SupportNeuterString() rather than encoding the string field locally. While the algorithm in DigDevelopOutput() was mostly redundant, it was slightly different than that used by SupportNeuterString(). Because of this, the ["'`] characters were being encoded in map mode but not in dig mode. Updated DigEncode() in the test harness to adhere to the new encoding scheme. This was necessary because the new code modifications broke certain tests, and that was a good thing -- i.e., it was the expected result. 2006-04-09 00:28 mavrik * tools/dig/ftimes-dig2ctx.pl: Added '-L' and '-R' options to preserve the contents of the left- and right-hand boundaries, respectively. 2006-04-08 04:50 mavrik * src/map.c: Modified the NullFields log message to include NeuteredPath, which makes its more useful for diagnostic purposes. 2006-04-07 22:15 mavrik * Makefile.in, Makefile.vs, README.LICENSE, cgi/Makefile.in, cgi/nph-ftimes.cgi, doc/Makefile.in, doc/ftimes/Makefile, etc/Makefile.in, src/Makefile.in, src/all-includes.h, src/analyze.c, src/app-includes.h, src/cfgtest.c, src/cmpmode.c, src/compare.c, src/compare.h, src/decode.c, src/decode.h, src/decoder.c, src/develop.c, src/dig.c, src/dig.h, src/digmode.c, src/error.c, src/error.h, src/fsinfo.c, src/fsinfo.h, src/ftimes.c, src/ftimes.h, src/getmode.c, src/http.c, src/http.h, src/ktypes.h, src/map.c, src/mapmode.c, src/mask.c, src/mask.h, src/md5.c, src/md5.h, src/message.c, src/message.h, src/properties.c, src/sha1.c, src/sha1.h, src/socket.c, src/socket.h, src/ssl-pool.h, src/ssl.c, src/ssl.h, src/support.c, src/sys-includes.h, src/time.c, src/url.c, src/xmagic.c, src/xmagic.h, tools/Makefile.in, tools/dig/Makefile.in, tools/dig/ftimes-dig2ctx.pl, tools/dig/hipdig.pl, tools/hashdig/Makefile.in, tools/hashdig/hashdig-bash.pl, tools/hashdig/hashdig-bind.pl, tools/hashdig/hashdig-dump.pl, tools/hashdig/hashdig-filter.pl, tools/hashdig/hashdig-harvest-sunsolve.pl, tools/hashdig/hashdig-harvest.pl, tools/hashdig/hashdig-make.pl, tools/hashdig/hashdig-resolve-sunsolve.pl, tools/hashdig/hashdig-stat.pl, tools/hashdig/hashdig-weed.pl, tools/lrs/pool2string.c, tools/lrs/string2pool.c, tools/map/Makefile.in, tools/map/ftimes-map2dbi.pl, tools/map/ftimes-map2mac.pl, utils/test_harness, utils/tree_builder: Updated copyright information. 2006-04-07 21:13 mavrik * tools/map/ftimes-cmp2dbi.pl: Removed extraneous comment. 2006-04-07 21:12 mavrik * tools/map/: Makefile.in, ftimes-cmp2dbi.pl: Added ftimes-cmp2dbi.pl to the project. The purpose of this tool is to preprocess FTimes compare data for MySQL db import. 2006-04-07 21:09 mavrik * tools/map/ftimes-map2dbi.pl: Reviewed documentation and fixed various nits and bits. Ran each paragraph through fmt (i.e., '.,/^$/!fmt -l 0 -w 70'). 2006-04-07 19:28 mavrik * tools/map/ftimes-map2dbi.pl: Fixed a bug where two adjacent null fields (e.g., 'foo|||bar') were not being processed correctly. The result was 'foo|\N||bar', but it should have been 'foo|\N|\N|bar'. 2006-04-07 19:27 mavrik * tools/map/ftimes-map2dbi.pl: Put command line arguments in alphabetical order. 2006-04-07 01:18 mavrik * src/xmagic.h: Increased XMAGIC_MAX_LEVEL from 10 to 15. This was done because a test with 11 levels was found in the magic shipped with file-4.17. 2006-04-06 19:22 mavrik * src/ftimes.h: Bumped the beta designator up to gamma. 2006-04-06 19:16 mavrik * src/: xmagic.c, xmagic.h: Replaced XMagicCompareNumbers() with XMagicTestNumber(). The new routine is different only in name. This change was made to keep all the XMagicTest*() routines clustered together. 2006-04-06 19:10 mavrik * src/: xmagic.c, xmagic.h: Replaced XMagicCompareValues() with XMagicTestValue(). The new routine is a slightly refined version of the previous one. 2006-04-06 18:33 mavrik * src/: xmagic.c, xmagic.h: Replaced XMagicCompareStrings() with XMagicTestString(). The new routine is an overhauled version of the previous one with additional logic to prevent scanning past the end of the read buffer. Cleaned up various nits and bits in XMagicCompareValues() along the way. 2006-04-06 16:47 mavrik * src/xmagic.c: Added missing %s format specifiers. 2006-04-06 16:45 mavrik * src/xmagic.c: Modified XMagicFormatDescription() such that all string matches are neutered using SupportNeuterString(). The old code would neuter strings pulled from the subject file, but it did so using a custom encoding scheme. Also, if the string was an exact match, it would not get encoded at all. Therefore, test strings that contained special characters (e.g., 'abc\ndef') could pose a problem in the output stream. 2006-04-06 05:25 mavrik * configure.in, src/xmagic.c, src/xmagic.h: Added initial support for regular expression XMagic via PCRE. 2006-04-04 23:40 mavrik * src/: xmagic.c, xmagic.h: Added support for negative relative offsets (e.g., '>&-4'). In the process of doing this, several offset variables were converted to signed 32-bit integers. Therefore, new checks had to be added to ensure that absolute offsets are always positive. Also, an indirection (or BSL) parser bug was found and (potentially) fixed. The problem was that the character to the left of the [+-] should have been restricted to [0-9A-Fa-f] or [BSLbsl], but it was not. 2006-03-30 02:07 mavrik * src/: xmagic.c, xmagic.h: Modified indirection type (or BSL) logic to support big- and little-endian values. Under the old logic, only [bsl] type specifiers were supported -- where b=byte, s=short, and l=long. Now, the supported type specifiers are: [BSLbsl]. Under the new logic, upper and lower case specifiers represent big- and little-endian values, respectively. Actually, the [Bb] specifiers are synonyms since the endianness of byte values is expected to be the same. One thing to note is that XMagic will default to the native byte order if a type specifier is not given. 2006-03-29 23:19 mavrik * src/: xmagic.c, xmagic.h: Added a new not equal ('!=') operator. The old operator ('!') will continue to be supported for a time, but it is being phased out. 2006-03-29 22:45 mavrik * src/: xmagic.c, xmagic.h: Added two new test operators: less than or equal ('<=') and greater than or equal ('>='). 2006-03-29 21:52 mavrik * src/: error.h, xmagic.c, xmagic.h: Converted xmagic operators from character to string values. This makes it possible for us to define operators that require more than a single character to express (e.g., '!=', '<=', '>=', etc.). 2006-03-29 20:36 mavrik * src/xmagic.c: Fixed an issue where an error was not propagating all the way up the call tree. Also, some of the tests at various levels were incorrectly checking their return values, so even if an error occurred, it would not have been detected at the higher levels. 2006-03-29 02:02 mavrik * src/: compare.c, compare.h: Added CompareFreeNodeData() to free node data (i.e., pcData) consumed by CompareLoadBaseline(). 2006-03-28 20:09 mavrik * src/decode.c: Removed unnecessary snprintf()s and added error checking. 2006-03-28 17:40 mavrik * src/decode.c: Disabled the '{ 0 }' initialization of acOutput in DecodeWriteRecord() because it was having a huge impact on performance. According to the 2nd edition of "The C Programming Language" by Kernighan and Ritchie, an array initialized in this way will be zero filled when the number of initializers is less than the size of the array (section 4.9, page 86). In this particular case, the size of the array was quite large ((DECODE_FIELD_COUNT)*(DECODE_MAX_LINE)) and the routine, itself, is called frequently (once per record). The entire code base should be reviewed to identify any places where this may be a performance issue. Over the last few years, I have increasingly migrated to this initialization technique without realizing its potential performance impact. Certainly, all frequently called routines having relatively large buffers (e.g., >= 1024 bytes) should be reviewed -- acLocalError may be a good place to start since its use is pervasive. 2006-03-28 05:56 mavrik * src/: compare.c, decode.c: Replaced several strncpy()s with snprintf()s. This change made a huge difference in compare mode performance -- especially in CompareDecodeLine(). This is due to the fact that strncpy(), according to the man page, appends nulls to the destination buffer when the source string is less than the specified length. Since the specified length (CMP_MAX_LINE) was quite large (8192) and there were iMaskTableLength + 1 buffers to fill per record (+1 for acTempLine), a lot of time was wasted writing nulls. While a quantitative analysis was not performed, rough calculations indicate that the new code runs approximately 4 times faster on a pair of uncompressed files containing 100K records each -- run times went from 81 to 18 seconds. 2006-03-28 03:44 mavrik * src/decode.c: Increased the size of acOutput in DecodeWriteRecord(). This was done because each string array in ppcFields is DECODE_MAX_LINE bytes long. 2006-03-28 03:36 mavrik * src/decode.h: Removed unused and unnecessary variables. 2006-03-28 03:34 mavrik * src/decode.c: Made the name MD5 calculations more efficient by copying the name field to a temporary variable only when it does not begin with a slash ('/'). In other words, this temporary variable is required only when the name is not UNIX-based (i.e., it's Windows-based). 2006-03-27 23:19 mavrik * src/: compare.c, compare.h: Removed unused and unnecessary variables. 2006-03-27 23:06 mavrik * src/: compare.c, decode.c: Moved some code from decode.c to compare.c to eliminate an extra record copy in CompareLoadBaselineData(). This was done to improve performance. Overhauled DecodeWriteRecord(). The new code is modeled after DecodeWriteHeader(). 2006-03-27 05:55 mavrik * configure.in, src/cmpmode.c, src/compare.c, src/decode.c, src/decode.h, tests/common/compare/Makefile.in, tests/common/compare/test_2/Makefile.in, tests/common/compare/test_2/test_harness.local: Added a lookup table to ensure that the decoded values for each field are placed in the appropriate ppcFields slot, rather than having them placed in the next available slot. Prior to this, a file having N fields would consume the first N slots of ppcFields, and that was fine so long as the baseline and snapshot had exactly the same fields. If this condition was not true, CompareEnumerateChanges() could end up comparing values for two different fields -- just because they both happened to occupy the same slot. For example, suppose a baseline had the fields 'name', 'size', and 'md5' and the corresponding snapshot had the fields 'name' and 'md5'. If these files were compared with a mask of 'all', CompareEnumerateChanges() would end up (incorrectly) comparing 'size' values to 'md5' values because both of those fields would occupy slot 2 of ppcFields (i.e., ppcFields[1]). Added a battery of tests to verify that the new logic is working as expected for all 1-, 2-, and 3-field ('mtime', 'size', and 'md5') combinations (n!/k!(n-k)!) for the following file types: 'header', 'baseline', 'snapshot', and 'allnulls'. These file types are permuted (n**k) to yield 784 distinct tests. The assumption, here, is that testing all 3-field combinations should be sufficient to extrapolate the results to any N-field combination -- i.e., if the logic works for 3 fields, then it should work for any number of fields. The particular fields selected for this battery of tests were chosen based on the fact that they are common to both UNIX and Windows platforms and because they represent three different data types: date/time, number, and hash. Eliminated the use of CompareDecodeLine() for snapshot records since this functionality is now being handled by DecodeParseRecord(). 2006-03-24 22:45 mavrik * src/: fsinfo.c, fsinfo.h, map.c: Added support for NetWare file systems (NWFS) under Windows. This requirement popped up when a former coworker needed to map a NetWare share mounted on his Windows XP system: Windows NT 5.1 Build 2600 Service Pack 2. 2006-03-21 22:05 mavrik * src/decode.c: Added casts to prevent compiler warnings. The specific warning was: "warning: long long unsigned int format, K_UINT64 arg (arg 4)". This warning was generated by gcc 2.95.4 running on an Debian 3.0 system (64-bit Alpha). 2006-03-21 20:15 mavrik * src/cmpmode.c, src/compare.c, src/compare.h, src/decode.c, src/decode.h, src/ftimes.c, src/ftimes.h, src/mask.c, tests/common/compare/test_1/test_harness.local: Added initial support for comparing compressed snapshots. 2006-03-20 04:19 mavrik * src/: cmpmode.c, decoder.c, mapmode.c: Added code to print the name of the baseline and/or snapshot file as a property. 2006-03-20 02:59 mavrik * tests/test_harness.local: Updated GetToolVersion() to recognize hyphenated bit values (e.g., 32-bit). 2006-03-20 00:59 mavrik * src/develop.c: Fixed a compression bug. The problem was that a MAP_ATIME showed up in the code where there should have been a MAP_MTIME. The result was that the CTime and ChTime fields were not getting compressed as expected when the FieldMask excluded (or did not specifically include) the ATime attribute. This issue was limited to Windows platforms, and its only impact was a slight loss of compression. 2006-03-19 23:24 mavrik * src/develop.c: Identified a compression bug. 2006-03-19 23:24 mavrik * src/: decode.h, decode.c: Continued the process of refactoring/overhauling decode logic. This is a major step towards adding support for comparing compressed map files. 2006-03-19 21:17 mavrik * configure.in, tests/common/Makefile.in, tests/common/decoder/Makefile.in, tests/common/decoder/test_harness.local, tests/common/decoder/test_1/Makefile.in, tests/common/decoder/test_1/test_harness.local: Added initial support for decoder mode testing. 2006-03-15 21:46 mavrik * tools/hashdig/hashdig-harvest-sunsolve.pl: Added a missing closedir(). 2006-03-14 14:57 mavrik * src/develop.c: Fixed the use of commas in the error message that gets displayed when there are one or more null fields in the output. The recent column shifts and the addition of SHA1 support induced this problem, but the real issue is that commas are hard-coded to the end of each field. Perhaps it'd be better to reimplement these bits of code using an array. Then, the array elements could be joined with commas as needed to produce the final error message. 2006-03-08 23:58 mavrik * src/: fsinfo.c, fsinfo.h: Added support for SGI's X file system (XFS) under Linux. 2006-02-28 04:34 mavrik * src/: fsinfo.c, fsinfo.h: Added support for RAM file systems (RAMFS) under Linux. 2006-02-18 21:14 mavrik * src/support.c: Added '-' to the FTimes version string so that the bit string will be hyphenated (e.g., 32-bit). 2006-02-18 21:01 mavrik * cgi/nph-ftimes.cgi: Added code to calculate the script's version and print it out in the .rdy file. 2006-02-18 20:42 mavrik * cgi/nph-ftimes.cgi: Added '()' to the end of each time call. 2006-02-18 20:37 mavrik * cgi/nph-ftimes.cgi: Enabled warnings, '-w', by default. 2006-02-18 20:36 mavrik * cgi/nph-ftimes.cgi: Moved the '-' in every regular expression character class to the end of the class. For example, all instances of '[\\w-./]' were changed to '[\\w./-]'. This was done because Perl was generating "False [] range" warnings when the '-w' option was enabled. 2006-02-18 20:27 mavrik * cgi/nph-ftimes.cgi: Added '-'s to the FTimes version string so that the bit string can be hyphenated (e.g., 32-bit). 2006-02-09 02:07 mavrik * configure.in: Consolidated several duplicated AC_SUBST/variable lines. 2006-01-18 17:03 mavrik * README.INSTALL: Fixed minor errors and omissions. 2006-01-10 05:42 mavrik * configure.in, tests/Makefile.in, tests/common_windows_ads/Makefile.in, tests/common_windows_ads/test_harness.local, tests/common_windows_ads/map/Makefile.in, tests/common_windows_ads/map/test_harness.local, tests/common_windows_ads/map/test_1/Makefile.in, tests/common_windows_ads/map/test_1/test_harness.local: Added initial support for testing Alternate Data Streams. These tests include a check that should detect the bug fixed in revision 1.44 of map.c -- directories with one ADS were not being flagged as having any streams at all. 2006-01-10 05:37 mavrik * tests/common/: dig/Makefile.in, dig/test_1/Makefile.in, dig/test_2/Makefile.in, dig/test_3/Makefile.in, map/Makefile.in, map/test_1/Makefile.in, map/test_2/Makefile.in, map/test_3/Makefile.in, map/test_4/Makefile.in: Removed $Id$ tags and comment blocks from all Makefiles in the tests tree. Other than a few values, the content of these Makefiles is fairly static, and since CVS tags typically get in the way of using one subtree as the template for another, I'd rather not have them there at all. 2006-01-10 04:33 mavrik * tests/: Makefile.in, common/Makefile.in, common/compare/Makefile.in, common/compare/test_1/Makefile.in: Removed $Id$ tags and comment blocks from all Makefiles in the tests tree. Other than a few values, the content of these Makefiles is fairly static, and since CVS tags typically get in the way of using one subtree as the template for another, I'd rather not have them there at all. 2006-01-10 04:09 mavrik * tests/: test_harness.local, common/test_harness.local: Moved FillFile() upstream one level. This will make it visible to custom test directories -- as they are added to the project. 2006-01-09 07:44 mavrik * src/map.c: Fixed a bug with the ADS counting and mapping logic. The problem was that directories with one ADS were not being flagged as having any streams at all -- i.e., their stream counts were reported to be zero. However, if a given directory had more than one ADS, then the reported and actual stream counts would match, so the logic was not completely broken. The root cause, as near as I can tell, was the assumption that directories have an unnamed (i.e., default) stream when, in fact, they do not. Refer to the Data attribute description in Table 9-1 of Inside Windows NT Second Edition, page 412. The relevant text is quoted here: "In NTFS, a file has one default unnamed data attribute and can have additional named data attributes; that is, a file can have multiple data streams. A directory has no default data attribute but can have optional named data attributes." Note: This bug was introduced somewhere between version 2.1l and 3.0.0. The 2.1l release used do-loops instead of for-loops, which says it all. 2006-01-08 23:13 mavrik * src/ftimes.c: Removed an SSL-specific #ifdef block around the declaration of acLocalError. Recent code changes require this variable to be present during non-SSL enabled builds. 2005-12-09 16:18 mavrik * src/: decode.c, decode.h, decoder.c, error.h, ftimes.c, ftimes.h, support.c: Started refactoring/overhauling decode logic. This is the first step towards adding support for comparing compressed map files. Added pass-through logic to handle uncompressed snapshots. Previously, these files would be rejected and the program would abort. 2005-12-03 18:08 mavrik * src/: cmpmode.c, mapmode.c: The FieldMask dependency check was not updated when the new mask logic was put in place. Thus, the following invocation was causing ftimes to dump core: echo BaseName=- | ftimes --maplean - This invocation, however, is incorrect, and ftimes should have aborted with an error message stating that the FieldMask is missing. 2005-11-16 05:15 mavrik * src/ftimes.h: Bumped the alpha designator up to beta. 2005-11-16 05:04 mavrik * etc/Makefile.in, etc/digfull.cfg.sample, etc/mapfull.cfg.sample, etc/put.cfg.sample, src/Makefile.in, src/cfgtest.c, src/digmode.c, src/ftimes.c, src/ftimes.h, src/mapmode.c, src/properties.c, src/putmode.c: Finished removing --putmode support. For some unknown reason, the previous commit did get everything. Hopefully, this one will. 2005-11-16 04:34 mavrik * src/: cmpmode.c, decoder.c, digmode.c, ftimes.c, getmode.c, mapmode.c, message.h, putmode.c, support.c: Replaced all instances of {EXEC,MODE}DATA with PROPERTY. Originally, I wanted to label log information based on its origin. The three sources listed above had the following meanings: EXEC data comes from the main EXECutable, MODE data comes from the runMODE being executed (e.g., dig mode), and PROPERTY data comes from user-specified settings on the command line or in a config file. In some cases, the distinction between these labels was arbitrary or blurry. Therefore, everything in these three categories will be treated as a PROPERTY going forward. Hopefully, this will make the log data more intuitive and easier to read. 2005-11-16 04:00 mavrik * Makefile.vs, README.INSTALL, doc/ftimes/controls/BaseName.pod, doc/ftimes/controls/DataType.pod, doc/ftimes/controls/DateTime.pod, doc/ftimes/controls/FieldMask.pod, doc/ftimes/controls/Import.pod, doc/ftimes/controls/LogFileName.pod, doc/ftimes/controls/OutFileHash.pod, doc/ftimes/controls/OutFileName.pod, doc/ftimes/controls/RunType.pod, doc/ftimes/controls/SSLBundledCAsFile.pod, doc/ftimes/controls/SSLExpectedPeerCN.pod, doc/ftimes/controls/SSLMaxChainLength.pod, doc/ftimes/controls/SSLPassPhrase.pod, doc/ftimes/controls/SSLPrivateKeyFile.pod, doc/ftimes/controls/SSLPublicCertFile.pod, doc/ftimes/controls/SSLUseCertificate.pod, doc/ftimes/controls/SSLVerifyPeerCert.pod, doc/ftimes/controls/URLAuthType.pod, doc/ftimes/controls/URLCreateConfig.pod, doc/ftimes/controls/URLPassword.pod, doc/ftimes/controls/URLPutURL.pod, doc/ftimes/controls/URLUsername.pod, doc/ftimes/sections/DESCRIPTION.pod, doc/ftimes/sections/EXAMPLES.pod, doc/ftimes/sections/FILES.pod, doc/ftimes/sections/MODES-OF-OPERATION.pod, doc/ftimes/sections/SYNOPSIS.pod: Removed --putmode support. This mode was an afterthought, has never been widely used, and just isn't worth maintaining -- especially when there are better ways (e.g., scp, rsync, webjob etc.) to recover a lost snapshot. 2005-11-16 01:59 mavrik * src/analyze.c, src/cmpmode.c, src/compare.c, src/compare.h, src/develop.c, src/digmode.c, src/ftimes.c, src/ftimes.h, src/map.c, src/mapmode.c, src/mask.c, src/mask.h, src/properties.c, src/putmode.c, src/url.c, tests/common/compare/test_1/test_harness.local: Moved all remaining mask-related code to mask.[ch]. This was a fairly major undertaking. A lot of code was affected, and many sweeping changes were needed to get the job done. At this point, things should be stable, but there may be a few wrinkles left to iron out. 2005-11-12 06:27 mavrik * src/mask.c: Replaced all instances of gasMaskTable with gasMapMaskTable. 2005-11-12 06:21 mavrik * src/: compare.c, map.c, mask.h: Replaced all instances of MaskName with acName. 2005-11-12 04:42 mavrik * src/: analyze.c, compare.c, develop.c, map.c, mapmode.c, mask.h: Added MASK_BIT_IS_SET macro. Renamed all map-related defines. Removed DEFAULT_MASK as it is not being used. 2005-11-12 04:41 mavrik * src/mask.c: Code cleanup. 2005-11-12 03:44 mavrik * Makefile.vs, src/Makefile.in, src/app-includes.h, src/ftimes.c, src/ftimes.h, src/mask.c, src/mask.h: Moved mask-related code (map mode only) to mask.[ch]. These new files will serve as the focal point for mask-related code. 2005-11-12 02:30 mavrik * src/: ftimes.c, ftimes.h, map.c: Removed the HeaderName and Mask structure elements from MASK_TABLE. This is the first step in a bigger refactoring process. The goal of which is to consolidate all mask logic. 2005-11-12 00:53 mavrik * src/map.c: Removed unused arguments. 2005-11-10 23:44 mavrik * src/: compare.c, compare.h: Added CompareBuildStringMask() to convert compare masks into to human readable strings. 2005-11-09 23:04 mavrik * utils/tree_builder: Added a tree builder utility to help with testing. 2005-11-09 16:51 mavrik * src/: compare.c, compare.h: Fixed an old bug with compare mode that became more annoying with the addition of SHA1 support. The problem was that compare mode could not properly handle snapshots created using different field masks -- especially when the baseline contains fewer fields than the snapshot. The solution was to give each input file its own mask. These two masks are ANDed with the user-specified compare mask to create the final compare mask. This eliminates unwanted fields and fields that don't exist in both files. Then, each line of input in the baseline and snapshot is parsed using the individual mask for that particular file. 2005-10-25 01:21 mavrik * src/cmpmode.c: Initialized all local variables. 2005-10-25 00:32 mavrik * src/: compare.c, compare.h: Removed unused iFields variable and structure element. 2005-10-24 21:31 mavrik * doc/ftimes/controls/HashSymbolicLinks.pod, etc/mapfull.cfg.sample, etc/maplean.cfg.sample, src/mapmode.c: Enabled HashSymbolicLinks by default as there doesn't appear to be a strong negative impact. This modification makes it possible to detect change simply by inspecting a link's hash(es). To determine if a particular file is, in fact, a symbolic link, one can still use the information in the mode and/or magic fields. In other words, the fact that a file is a symbolic link is not inherently lost by enabling HashSymbolicLinks. The exception to this is the case where both the mode and magic fields are missing in the output. Not having the string 'SYMLINK' in the sha1/md5 fields does make it somewhat harder for a person to manually weed out symbolic links -- if that's something they want/need to do. However, hashdig utilities should be unaffected -- as long as the mode field is captured in the output. 2005-10-24 20:11 mavrik * doc/ftimes/sections/MODES-OF-OPERATION.pod, src/compare.c, src/compare.h, tests/common/compare/test_1/test_harness.local: Added support for reading baseline data from stdin while in compare mode. Previously, only snapshot data could be read from stdin. This lack of flexibility was brought out by the recently added compare mode test harness. 2005-10-24 18:55 mavrik * tests/common/compare/test_1/test_harness.local: Added a new set of tests designed to check input file magic. 2005-10-24 17:16 mavrik * src/: xmagic.c, xmagic.h: Fixed a problem with the way that relative and indirect offsets are computed in XMagicGetValueOffset(). The problem was that the old logic only looked at the parent node when computing the current node's true offset. If the parent's offset was relative or indirect, then the current offset computation would be incorrect. The fix was to recursively walk up the magic tree until an absolute offset is found. Once found, the absolute offset is used to anchor the computation. 2005-10-24 16:34 mavrik * src/: compare.c, decode.c, url.c, xmagic.c: Modified various f{open,read,seek,tell}() error messages for consistency. 2005-10-24 16:18 mavrik * configure.in, tests/common/Makefile.in, tests/common/compare/Makefile.in, tests/common/compare/test_harness.local, tests/common/compare/test_1/Makefile.in, tests/common/compare/test_1/test_harness.local: Added initial support for compare mode testing. 2005-10-11 18:36 mavrik * README.INSTALL: Fixed incorrect variable name. 2005-10-11 18:34 mavrik * Makefile.vs: Added '/D PCRE_STATIC' to PCRE_COMPILER_FLAGS. According to the documentation: "If you want to statically link against the .a file, you must define PCRE_STATIC before including pcre.h, otherwise the pcre_malloc and pcre_free exported functions will be declared __declspec(dllimport), with hilarious results." Even though this was quoted from the MinGW section of NON-UNIX-USE, it does improve the Visual Studio build process. Thanks to Andy Bair for reporting this issue and writing the initial patch. 2005-10-10 19:06 mavrik * src/dig.c: Fixed an unexpected result revealed by the test harness. Apparently, several character codes in the range 0x7f - 0xff are considered printable by isprint() on Windows systems. This causes an unwanted difference in the output produced by UNIX and Windows platforms. Therefore, isprint() has been replaced with code that'll yield uniform output across all platforms. 2005-10-08 23:30 mavrik * Mk/common-tests.mk.in: Modified the clean target to remove all files beginning with '_config'. 2005-10-08 23:28 mavrik * tests/common/: test_harness.local, dig/test_harness.local, dig/test_1/test_harness.local, dig/test_2/test_harness.local, dig/test_3/test_harness.local: Consolidated common code in a new routine called DigUnitTest(). Added new normal, nocase, and regexp tests to check all possible strings from '%00%00' to '%ff%ff'. However, these tests do take a long time to run -- perhaps a bit too long. 2005-10-06 15:26 mavrik * tests/common/dig/: test_2/test_harness.local, test_3/test_harness.local: Fixed incorrect test descriptions. 2005-10-06 04:44 mavrik * configure.in: Added an entry for tests/common/dig/test_3/Makefile. 2005-10-06 04:34 mavrik * tests/common/dig/test_harness.local: Regular expression tests need to be skipped when ftimes has been built without PCRE support. 2005-10-06 03:21 mavrik * tests/common/dig/: Makefile.in, test_harness.local, test_1/test_harness.local, test_2/test_harness.local, test_3/Makefile.in, test_3/test_harness.local: Added a new set of tests to check that each byte value in the range [0x00-0xff] can be detected in a 256 byte file where the offset in the file is also the value being sought. This change induced some code restructuring and consolidation. 2005-10-06 02:31 mavrik * src/dig.c: Fixed a bug revealed by the test harness. The output delimiter for dig mode is '|', so this character must be encoded whenever it shows up in the raw data. If this is not done, the output will contain more fields than expected. 2005-10-05 22:58 mavrik * tests/common/: test_harness.local, map/test_harness.local: Consolodated common code in the common-level harness. 2005-10-03 19:35 mavrik * tests/common/dig/: test_harness.local, test_1/test_harness.local, test_2/test_harness.local: Consolodated common code in the dig-level harness. 2005-10-03 04:34 mavrik * src/test/dig/: Makefile, test1.c: The tests in src/test/dig are deprecated. 2005-10-03 02:44 mavrik * src/: decode.c, map.c: Modified code to handle special case header fields for WIN32 platforms. Instead of getting "z_{a,m,c,ch}time|z_{a,m,c,ch}ms" in the header, we got "z_{a,m,c,ch}time|{a,m,c,ch}ms". This particular issue was overlooked in the previous commit. 2005-10-03 01:10 mavrik * src/: compare.c, decode.c, decode.h, map.c: Changed the format of the compressed header. Each field in the new format is the uncompressed field name prefixed with "z_". This was done to create a uniform header format. Legacy support for the old format was added, but it will be removed at some point. 2005-10-03 00:54 mavrik * src/compare.c: Caught and fixed a straggler on the magic/md5 field swap. 2005-10-02 18:59 mavrik * doc/ftimes/controls/FieldMask.pod, doc/ftimes/controls/MagicFile.pod, src/decode.c, src/develop.c, src/ftimes.c, src/ftimes.h, tools/map/ftimes-map2dbi.pl: Swapped the order of the magic and md5 fields. This was done to ensure that the sha1 and md5 fields are adjacent to one another. Also, XMagic output can be highly variable, so it's better off at the end of the line anyway. 2005-10-02 18:06 mavrik * src/ftimes.h: Bumped minor version number, and added alpha designator. 2005-10-02 18:01 mavrik * Makefile.vs, configure.in, doc/ftimes/controls/FieldMask.pod, doc/ftimes/controls/HashDirectories.pod, doc/ftimes/sections/EXAMPLES.pod, src/Makefile.in, src/analyze.c, src/app-includes.h, src/compare.c, src/compare.h, src/decode.c, src/decode.h, src/develop.c, src/ftimes.c, src/ftimes.h, src/map.c, src/mapmode.c, src/sha1.c, src/sha1.h, tests/common/map/Makefile.in, tests/common/map/test_harness.local, tests/common/map/test_1/test_harness.local, tests/common/map/test_2/test_harness.local, tests/common/map/test_3/Makefile.in, tests/common/map/test_3/test_harness.local, tests/common/map/test_4/Makefile.in, tests/common/map/test_4/test_harness.local, tools/hashdig/README, tools/map/ftimes-map2dbi.pl: Added support for SHA1 hashes. 2005-10-02 05:26 mavrik * tools/hashdig/README: Added a comma after each 'i.e.'. 2005-10-02 05:21 mavrik * tools/hashdig/hashdig-resolve-sunsolve.pl: Relaxed the input expression to accommodate HD formatted inputs. 2005-09-28 05:24 mavrik * src/: fsinfo.c, fsinfo.h: Added support for Virtuozzo file systems (VZFS) under Linux. This requirement popped up when a friend of a friend needed to map his Virtual Private Server (VPS). A VPS is a guest OS that runs on top of the native OS. The system being mapped was running the following kernel: 2.4.20-021stab028.17.777. 2005-09-09 05:47 mavrik * tools/hashdig/hashdig-stat.pl: Removed the requirement to specify a file type. If a type is not specified, the new code will attempt to parse the file using ProcessHDFile(). If that fails or yields an indeterminate count, then the file will be parsed using ProcessDBFile(). Also, the output format has been modified to show the type of file (HD or DB) that was processed. 2005-07-18 00:13 mavrik * doc/ftimes/controls/Include.pod: MapRemoteFiles is deprecated. 2005-06-16 18:17 mavrik * src/ftimes.h: Removed the delta designator. 2005-06-06 20:43 mavrik * tools/map/ftimes-map2dbi.pl: Added indexes to the altstreams, findex, gid, inode, magic, mode, size, and uid columns. Increased hostname size to 64 bytes. 2005-06-05 16:25 mavrik * tests/common/map/: test_harness.local, test_1/test_harness.local, test_2/test_harness.local: Moved duplicate code up to the mode-level harness. Set BlockSizes to a standard value for all tests that use it. 2005-06-05 16:01 mavrik * Mk/common-tests.mk.in: Allow overrides on DEBUG variables