Commit Graph

58 Commits

Author SHA1 Message Date
eleksir
a5d2c01cca Improve test suite, add more corner-case tests 2026-04-18 12:23:15 +03:00
eleksir
3a16bd2e08 GNU Tar does not tolerate with leading slashes, cut them off from hardlinks explicitly 2026-04-18 12:22:18 +03:00
eleksir
3a6a8e9644 Do not include test_data/{tmp,test1} in git commits v0.8 2026-04-18 10:45:57 +03:00
eleksir
5682bad5bb In Makefile also clean up test_data/{tmp,test1} 2026-04-18 10:44:26 +03:00
eleksir
a0fd7881c0 Update llms.txt and AGENTS.md 2026-04-18 10:42:05 +03:00
eleksir
7437af5742 Update tests, avoid relying on pre-existed test data set 2026-04-18 10:39:48 +03:00
eleksir
98e7d0f73e Fix symlinks treted as hardlinks in resulting tar archive 2026-04-18 09:25:13 +03:00
eleksir
d2e0fd2af0 There was a bug where all files treated as hardlinks in resulting tar archive, now it was hopefully fixed 2026-04-18 09:17:16 +03:00
eleksir
51897b20bd Update AGENTS.md 2026-04-18 02:18:02 +03:00
eleksir
8701938c75 Fix some debug messages logged on higher log levels. 2026-04-18 02:17:39 +03:00
eleksir
7df8bc1446 Update comment in newServer.go 2026-04-18 02:16:18 +03:00
eleksir
b87d520b61 Update README.md v0.7 2026-04-05 09:31:11 +03:00
eleksir
cc83c61561 Update AGENTS.md and llms.txt 2026-04-05 09:30:46 +03:00
eleksir
4fc69bcf3a Update example config and test config 2026-04-05 09:29:59 +03:00
eleksir
e4b6a84c2f Eliminate dead code 2026-04-05 09:27:53 +03:00
eleksir
0581d7430c Catch all other missing request patterns to logs 2026-04-05 09:27:15 +03:00
eleksir
b35851567c Fix paths in tests, hope this will fix all failing/flacky tests 2026-04-05 08:47:38 +03:00
eleksir
ebd09af6b1 Update tests results, add compression level mapping table to README.md v0.6 2026-04-05 01:08:11 +03:00
eleksir
0511d47765 Update rules for linter 2026-04-05 01:06:52 +03:00
eleksir
93b671775f Update AGENTS.md 2026-04-05 01:06:28 +03:00
eleksir
c18eb8fb07 Update .gitignore 2026-04-05 01:06:04 +03:00
eleksir
0cb4d355ab Fix tests path fragility 2026-04-05 01:05:25 +03:00
eleksir
6cea15f553 Implement dir_scan_timeout config option 2026-04-04 23:32:37 +03:00
eleksir
6e56e74df4 If configured directory is missing, archive will be created anyway, but this error will be logged. 2026-04-04 22:45:00 +03:00
eleksir
3c22b2e1a0 Now TLS handshake errors will respect your loglevel setting 2026-04-04 22:25:23 +03:00
eleksir
65a57a6af6 Fixed bug with file extentions, enhance logging
- Fix 404 on downloading archive with extension
- Add downloaded archive length to log
- Add md5 hash to log
2026-04-04 21:45:33 +03:00
eleksir
e063352252 Compression levels does not apply for bzip2, xz, zstd, lz4, now we map then as best as we can. 2026-04-04 16:45:07 +03:00
eleksir
f20f490c15 Disable keepalive connections and set idle timeout to 10 seconds, explicitly 2026-04-04 16:17:21 +03:00
eleksir
ae321a216d Explicitly hardcode MaxHeaderBytes as 1k, to prevent slowloris attack 2026-04-04 16:08:57 +03:00
eleksir
729b147b90 If no files found in configured directories warn in log about it 2026-04-04 16:03:08 +03:00
eleksir
7b001d710a Implement timing-safe string comparison for authentication
Prevents timing attacks where an attacker could deduce correct
credentials by measuring response times. Not sure if it is real threat,
but anyway.
2026-04-04 15:59:40 +03:00
eleksir
2201fc72f1 Implement proper signal handler 2026-04-04 15:50:09 +03:00
eleksir
5e7dd4b960 Make logging thread safe, useful to run tests in parallel 2026-04-04 15:32:42 +03:00
eleksir
c1444f8c1d Add cancellation after read and before write, to be able to cancel operation more quickly 2026-04-04 15:22:50 +03:00
eleksir
6955e14921 Add hardlink detection for *nix platforms, they stored as links in tar, so content is effectively deduplites 2026-04-04 15:08:54 +03:00
eleksir
fd8612cfc6 Log all requests, not only ones that hit backup target, fix comments to be docstring friendly. 2026-04-04 14:44:48 +03:00
eleksir
e449fb78c9 Add more tests 2026-04-04 13:59:09 +03:00
eleksir
958ef67f29 Move ssl/tls related error to debug loglevel, to avoid log cluttering. 2026-04-04 13:16:22 +03:00
eleksir
14b7a17b00 Move log message about selected default compression algo after logging subsystem fully initialized 2026-04-04 12:44:47 +03:00
eleksir
c3553de856 Add version and software name in first message during startup, fix typo in log message during config loading. 2026-04-04 12:33:40 +03:00
eleksir
06ee9e081f Do not create log dir in openrc init file as per default config v0.5 2026-04-04 12:07:32 +03:00
eleksir
8beba095d0 Add ability to select compression algo by downloading location with file extension.
- Also update README.md with more useful examples.
v0.4
2026-04-04 11:49:33 +03:00
eleksir
afffc99a8a Eliminate duplicate code, make use of readHeaderTimeout const 2026-04-04 11:05:57 +03:00
eleksir
6201b03230 Update AGENTS.md 2026-04-04 11:01:53 +03:00
eleksir
3e246da9c5 Vendor used libs v0.3 2026-03-28 04:06:34 +03:00
eleksir
9046cb0067 Add comparsion table to README.md, fix path in openrc init script 2026-03-28 04:02:57 +03:00
eleksir
722620945d Move code to different places, add comments here and there, no actual changes 2026-03-28 01:38:17 +03:00
eleksir
15ac3be410 Implemented tar+parallel gzip compression + unit tests for it. 2026-03-28 00:19:09 +03:00
eleksir
3620623321 Implemented tar+xz compression + unit tests for it. 2026-03-27 23:50:27 +03:00
eleksir
b494479128 Implemented tar+lz4 compression + unit tests for it. 2026-03-27 23:37:13 +03:00