aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-12-24Implement basic library usage helperAdrian Kummerlaender
`change` calls the given command wrapped in `libChangeLog` and prints the recorded change log afterwards.
2015-12-24Prevent the libraries own log writes from being trackedAdrian Kummerlaender
2015-12-24Add path label for the file provided via standard inputAdrian Kummerlaender
2015-12-24Use full path for change trackingAdrian Kummerlaender
Prevents the same file being tracked multiple times due to relative input paths.
2015-12-24Add support for changing the `diff` command via an environment variableAdrian Kummerlaender
While the file arguments remain fixed the actual `diff` application and its output style can be changed using the `CHANGE_LOG_DIFF_CMD` environment variable.
2015-12-24Remove unnecessary headersAdrian Kummerlaender
2015-12-24Remove `exit` logging and interpositionAdrian Kummerlaender
The library is designed to track the file changes performed by a single process, i.e. there is no need for explicitly stating when the process has exited. Furthermore this reduces the set of function interpositions to the ones handled by the `get_actual_function` method template.
2015-12-24Match namespace and directory structureAdrian Kummerlaender
2015-12-23Implement file change tracking using `diff`Adrian Kummerlaender
The newly introduced `ChangeTracker` class is now keeping track of all tracked file in addition to spawning and managing a corresponding `diff` instance that enables printing pretty _patch-style_ change summaries to the logging target. This commit introduces `boost-process` and `diff` as dependencies of this library.
2015-12-21Add file mode check in `unlink`Adrian Kummerlaender
2015-11-30Extract actual function acquisitionAdrian Kummerlaender
The pointers to the actual function implementations are now fetched inside the `actual` namespace declared in the `actual_function.h` header. Fixed source of _noreturn_ related warning during compilation by adding the appropriate flag. Sadly this means that we can not use `std::function` in this context as it doesn't seem to carry these _c-like_ flags.
2015-11-14Fix rename tracking and enable logfile creationAdrian Kummerlaender
2015-10-18Implement logging of writable `mmap` creationsAdrian Kummerlaender
2015-10-18Add cmake build instructionsAdrian Kummerlaender
2015-10-18Prevent external changes to `FileDescriptorGuard`'s fd memberAdrian Kummerlaender
2015-10-18Move io and logging functionality into separate namespacesAdrian Kummerlaender
2015-10-18Implement support for sending logs to an arbitrary fileAdrian Kummerlaender
The `CHANGE_LOG_TARGET` environment variable enables passing the path of an arbitrary target file to the preloaded library. This may be used to e.g. print the log to a separate `cat` instance and is necessary for logging change events without altering the output of the wrapped process.
2015-10-17Implement basic logging of write, rename, rmdir, unlinkAdrian Kummerlaender
2015-10-10Implement basic `read` and `write` interpositionAdrian Kummerlaender
The goal is to implement a shared library to be loaded using `LD_PRELOAD` that tracks all file changes performed by a process. This information is required to enable general purpose change logging inside a shell session. i.e. I want to be able to display diffs and before- / after-hashes of all changes performed by every single command without requiring every changed file to be known prior to execution.