Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2021-06-04 | feat: do not panic if chunk nonce is unexpectedly short | Alexander Batischev | 1 | -8/+27 | |
Fixes #119. | |||||
2021-05-31 | feat: add subcommands for encrypting, decrypting individual chunks | Lars Wirzenius | 2 | -0/+65 | |
2021-05-31 | refactor: only send/receive encrypted chunks with server | Lars Wirzenius | 1 | -65/+65 | |
Also, refactor the client code to split out the HTTP bits more clearly. The refactor should've been separately, but got entangled with other changes during frantic debugging. | |||||
2021-05-31 | feat: add chunk encryption | Lars Wirzenius | 3 | -0/+205 | |
2021-05-29 | feat! drop MAC passphrase, fix key derivation | Lars Wirzenius | 1 | -5/+10 | |
Previously we were deriving a key that was of the wrong length for the aead crate. Now we make it the right length. | |||||
2021-05-29 | refactor: make metadata part of a chunk | Lars Wirzenius | 2 | -2/+21 | |
This makes is harder to accidentally use the wrong metadata for a chunk. | |||||
2021-05-29 | refactor: only have client config without passwords | Lars Wirzenius | 6 | -96/+49 | |
This means the config is always the config, and not sometimes the config or the config and passwords. Also, there's no config option for encrypting, anymore. It will not be optional now. | |||||
2021-05-29 | refactor: count chunks via file system, not via chunk server API | Lars Wirzenius | 2 | -26/+1 | |
2021-05-29 | refactor: make metadata be part of datachunk | Lars Wirzenius | 11 | -53/+62 | |
This makes it harder to lose the metadata for a chunk, or to use unrelated metadata and chunk. Also, soon I will refactor things for encrypting chunks, which will need metadata embedded in the encrypted chunk. Sponsored-by: author | |||||
2021-05-29 | refactor: split bare chunk server client into its own struct | Lars Wirzenius | 1 | -71/+84 | |
This makes the code doing HTTP requests simpler for easier comprehension and debugging. | |||||
2021-04-29 | feat: improve error messages | Lars Wirzenius | 9 | -97/+161 | |
All unclear error messages should now be clearer. For example, all the ones related to a file mention the file name and the attempted operation that failed. | |||||
2021-04-26 | Port chunkids() to the iterator API | Alexander Batischev | 3 | -12/+24 | |
2021-04-26 | Generalize the machinery to arbitrary result types | Alexander Batischev | 1 | -18/+55 | |
2021-04-26 | Extend the iterator to users of LocalGeneration::files() | Alexander Batischev | 4 | -7/+8 | |
2021-04-26 | Use an iterator internally for LocalGeneration | Alexander Batischev | 1 | -19/+32 | |
This adds the machinery. We have to keep the compiled SQL query while the iterator is in use, so we wrap it in an `SqlResults` struct which the iterator borrows. | |||||
2021-04-26 | Expose fallibility of individual SQL results | Alexander Batischev | 4 | -13/+27 | |
`LocalGeneration::sql::files()` runs an SQL query, iterates over the results and collects the rows into a `Vec`. This can fail at any step: the query might fail to run, or one of the rows might fail to be fetched or processed. Right now, we lump all those failures into a `Result` that wraps the whole return value. This is only possible because we process each row before returning. Once `Vec` is replaced by an iterator, we won't have that luxury anymore, so we now wrap each individual element into its own `Result` (as well as wrapping the whole vector into a `Result` of its own). | |||||
2021-04-25 | feat: expand tilde notation in configuration file | Lars Wirzenius | 1 | -8/+29 | |
Backup roots and log file can now say ~/foo/bar to refer to files relative to the user's home directory. | |||||
2021-04-21 | feat: add support for CACHEDIR.TAG | Alexander Batischev | 3 | -13/+93 | |
Fixes #78. | |||||
2021-04-10 | refactor: main function for clarity | Lars Wirzenius | 1 | -13/+14 | |
2021-04-10 | refactor: have ClientConfigWithoutPasswords know its filename | Lars Wirzenius | 3 | -9/+5 | |
This allows Init::run to not need to be given it as an argument. | |||||
2021-04-10 | refactor: struct ShowConfig subcommand | Lars Wirzenius | 3 | -11/+15 | |
2021-04-10 | refactor: struct GetChunk subcommand | Lars Wirzenius | 3 | -17/+22 | |
2021-04-10 | refactor: struct Restore subcommand | Lars Wirzenius | 3 | -35/+46 | |
2021-04-10 | refactor: struct ListFiles subcommand | Lars Wirzenius | 3 | -19/+24 | |
2021-04-10 | refactor: struct ShowGeneration subcommand | Lars Wirzenius | 3 | -29/+34 | |
2021-04-10 | refactor: struct List subcommand | Lars Wirzenius | 3 | -13/+18 | |
2021-04-10 | refactor: struct Backup subcommand | Lars Wirzenius | 3 | -19/+24 | |
2021-04-10 | refactor: struct Init subcommand | Lars Wirzenius | 3 | -34/+33 | |
2021-04-10 | refactor: move ClientConfig into its own module | Lars Wirzenius | 14 | -131/+140 | |
2021-04-09 | refactor: move function to better place | Lars Wirzenius | 1 | -13/+13 | |
2021-04-09 | feat: add "obnam init" subcommand | Lars Wirzenius | 10 | -32/+215 | |
This reads a passphrase and derives two passwords from that, and stores them next to the configuration file. The passwords aren't yet used for anything, that will come later. | |||||
2021-04-06 | refactor: clean up initial and incremental backup code paths a bit | Lars Wirzenius | 1 | -14/+16 | |
2021-04-06 | fix: finish off and clear the incremental backup progress bar | Lars Wirzenius | 1 | -0/+1 | |
2021-04-06 | chore: clean up unnecessary use of ? based on clippy reports | Lars Wirzenius | 1 | -6/+6 | |
2021-03-27 | refactor: don't return Result if main can't fail | Lars Wirzenius | 1 | -3/+1 | |
2021-03-27 | refactor: rename BackupPoliy::new() to more idiomatic ::default() | Lars Wirzenius | 2 | -2/+2 | |
2021-03-27 | refactor: use idiomatic .is_empty() instead of comparing length | Lars Wirzenius | 1 | -1/+1 | |
2021-03-27 | refactor: use .cloned() to clone items in an iterator | Lars Wirzenius | 2 | -2/+2 | |
2021-03-27 | refactor: drop unnecessary clones | Lars Wirzenius | 2 | -3/+3 | |
2021-03-27 | refactor: drop unused lifetime annotation | Lars Wirzenius | 1 | -1/+1 | |
2021-03-27 | refactor: return assigned value directly | Lars Wirzenius | 1 | -2/+1 | |
2021-03-27 | refactor: drop unnecessary conversions to the same type | Lars Wirzenius | 5 | -12/+12 | |
2021-03-27 | refactor: use Option::or_else to avoid unnecessary allocation | Lars Wirzenius | 1 | -1/+4 | |
2021-03-27 | refactor: use matches! for clarity | Lars Wirzenius | 1 | -4/+1 | |
2021-03-27 | refactor: rename ChunkId::from_str to ChunkId::recreate | Lars Wirzenius | 4 | -6/+7 | |
Less confusion with FromStr::from_str this way. | |||||
2021-03-27 | refactor: don't return a Result from function that can't fail | Lars Wirzenius | 1 | -7/+17 | |
2021-03-27 | refactor: drop unnecessary clone | Lars Wirzenius | 1 | -1/+1 | |
2021-03-27 | refactor: drop unnecessary reference | Lars Wirzenius | 1 | -1/+1 | |
2021-03-27 | refactor: avoid confusing function name from_str | Lars Wirzenius | 2 | -2/+2 | |
2021-03-24 | refactor: switch from dirs crate to directories-next | Lars Wirzenius | 1 | -5/+8 | |
It's a higher-level library and a little nicer to use. |