Jakob Borg
6c8e8f0391
lib/model: Remove legacy handling of symlinks ( #6276 )
...
This hardly seams relevant any more; 0.14.14 is dead since a long time.
2020-01-19 12:02:20 +01:00
Simon Frei
f56a5545d4
gui, lib/model: Prevent negative sync completion ( fixes #4570 ) ( #6248 )
2020-01-03 14:07:57 +01:00
Jakob Borg
be0508cf26
lib/model, lib/protocol: Use error handling to avoid panic on non-started folder ( fixes #6174 ) ( #6212 )
...
This adds error returns to model methods called by the protocol layer.
Returning an error will cause the connection to be torn down as the
message couldn't be handled. Using this to signal that a folder isn't
currently available will then cause a reconnection a few moments later,
when it'll hopefully work better.
Tested manually by running with STRECHECKDBEVERY=0 on a nontrivially
sized setup. This panics reliably before this patch, but just causes a
disconnect/reconnect now.
2019-12-04 10:46:55 +01:00
Simon Frei
6fd5e78740
lib: Consistently unsubscribe from config-wrapper ( fixes #6133 ) ( #6205 )
2019-12-04 07:15:00 +01:00
Jakob Borg
e82a7e3dfa
all: Propagate errors from NamespacedKV ( #6203 )
...
As foretold by the prophecy, "once the database refactor is merged, then
shall appear a request to propagate errors from the store known
throughout the land as the NamedspacedKV, and it shall be good".
2019-11-30 13:03:24 +01:00
Jakob Borg
4e151d380c
lib/versioner: Reduce surface area ( #6186 )
...
* lib/versioner: Reduce surface area
This is a refactor while I was anyway rooting around in the versioner.
Instead of exporting every possible implementation and the factory and
letting the caller do whatever, this now encapsulates all that and
exposes a New() that takes a config.VersioningConfiguration.
Given that and that we don't know (from the outside) how a versioner
works or what state it keeps, we now just construct it once per folder
and keep it around. Previously it was recreated for each restore
request.
* unparam
* wip
2019-11-26 07:39:31 +00:00
Simon Frei
4d368a37e2
lib/model, lib/protocol: Add contexts sending indexes and download-progress ( #6176 )
2019-11-25 11:07:36 +01:00
Simon Frei
cf312abc72
lib: Wrap errors with errors.Wrap instead of fmt.Errorf ( #6181 )
2019-11-23 15:20:54 +00:00
Simon Frei
65d4dd32cb
lib/model: Also handle ServeBackground ( #6173 )
2019-11-22 21:30:16 +01:00
Simon Frei
57d668ed1d
lib/config: Do introductions in a single config change ( #6162 )
2019-11-21 08:41:41 +01:00
Simon Frei
90d85fd0a2
lib: Replace done channel with contexts in and add names to util services ( #6166 )
2019-11-21 08:41:15 +01:00
Simon Frei
0d14ee4142
lib/model: Don't info log repeat pull errors ( #6149 )
2019-11-19 09:56:53 +01:00
Simon Frei
28edf2f5bb
lib/model: Keep fmut locked while adding/starting/restarting folders ( #6156 )
2019-11-18 21:15:26 +01:00
Simon Frei
cd290d2d05
lib/model: Add initial deviceStatRefs on model creation ( fixes #6136 ) ( #6137 )
...
This is a regression introduced in PR #6005 / commit
f7b2e79fdc
2019-11-08 11:32:51 +00:00
Simon Frei
bee7cce081
lib/model: Add folders on start in model ( #6135 )
2019-11-08 10:56:16 +01:00
Ruslan Yevdokymov
3b5dff3f34
lib/model: Fix removal of a marker when there are still folders referencing it ( #6114 )
2019-10-30 15:11:07 +00:00
Simon Frei
f7b2e79fdc
lib/model: Use read-locks wherever possible ( #6005 )
2019-09-12 05:55:23 +01:00
Simon Frei
b677464dfa
lib/model: Optimise locking around conn-close and puller states ( #5954 )
2019-08-16 09:35:19 +02:00
Simon Frei
b1c74860e8
all: Remove global events.Default (ref #4085 ) ( #5886 )
2019-08-15 16:29:37 +02:00
Simon Frei
6fa02d5081
lib/model: Fix a few more problematic locks (ref #5929 ) ( #5944 )
2019-08-13 09:04:43 +02:00
Simon Frei
86e35f1879
lib/model: Less locking in ClusterConfig ( #5943 )
2019-08-11 19:30:24 +02:00
Simon Frei
4a619e74f2
lib/model: Fix incorrect locking ( #5939 )
2019-08-11 16:10:30 +02:00
Jakob Borg
669bcb748f
lib/config, lib/model: Don't save on every pending folder/device update ( fixes #5888 ) ( #5890 )
...
Wrapper methods generally don't save by themselves.
2019-07-27 11:05:00 +01:00
Simon Frei
35f40e9a58
lib/model: Create new file-set after stopping folder ( fixes #5882 ) ( #5883 )
2019-07-23 20:39:25 +02:00
Simon Frei
6f08162376
lib/model: Remove incorrect/useless panics ( #5881 )
2019-07-23 10:51:16 +02:00
Simon Frei
b5b54ff057
lib/model: No watch-error on missing folder ( fixes #5833 ) ( #5876 )
2019-07-19 19:41:16 +02:00
Simon Frei
1cb55904bc
lib/model: Prevent panic in NeedFolderFiles ( fixes #5872 ) ( #5875 )
2019-07-19 19:39:52 +02:00
Simon Frei
2b622d0774
lib/model: Close conn on dev pause ( fixes #5873 ) ( #5874 )
2019-07-19 19:37:29 +02:00
Simon Frei
82b70b9fae
lib/model, lib/protocol: Track closing connections ( fixes #5828 ) ( #5829 )
2019-07-14 11:03:55 +02:00
Simon Frei
20c8dbd9ed
lib/model: Fix integer conversion ( fixes #5837 ) ( #5851 )
2019-07-12 16:37:12 +02:00
Simon Frei
9fef1552fc
lib/db, lib/model: Remove folder info from panics (ref #5839 ) ( #5840 )
2019-07-10 10:57:49 +02:00
Simon Frei
ba056578ec
lib: Add util.Service as suture.Service template ( fixes #5801 ) ( #5806 )
2019-07-09 11:40:30 +02:00
Simon Frei
863fe23347
gui, lib/model: Fix download progress accounting ( fixes #5811 ) ( #5815 )
2019-06-30 09:23:47 +02:00
Simon Frei
1cf352a722
lib/model: NewFileSet outside fmut ( #5818 )
2019-06-29 08:49:30 +02:00
Simon Frei
3c7e7e971d
lib/model: Make jobQueue.Jobs paginated ( fixes #5754 ) ( #5804 )
...
* lib/model: Make jobQueue.Jobs paginated (fixes #5754 )
* fix, no test yet
* add test
2019-06-27 19:25:38 +01:00
Simon Frei
13a746e0fb
lib/model: Prevent nil deref if folder stopped ( fixes #5780 ) ( #5778 )
2019-06-11 11:48:51 +02:00
Audrius Butkevicius
21f50e2f8f
lib/versioner: Use mtime for version cleanup ( fixes #5765 ) ( #5769 )
2019-06-11 09:16:55 +02:00
Simon Frei
1054ce9354
lib/model: Refactor sending indexes as suture service ( #5757 )
2019-06-10 13:27:22 +02:00
Simon Frei
64518b0f7e
lib/model: Close connections when model is stopped ( #5733 )
2019-05-25 16:00:32 +02:00
André Colomb
e4956358fb
lib/model: Remove superfluous check for IndexID in remote ClusterConfig ( #5717 )
...
The check in ClusterConfig() when iterating through announced devices
in a folder explicitly skips entries without a non-zero IndexID.
Therefore, the check for IndexID == 0 just below will never be true
and the intended cleanup of local index data will not happen.
Plainly remove that check to make the intended case distinction work.
2019-05-12 21:17:55 +02:00
Simon Frei
5fa8467756
lib/model: Consistent use of locks ( #5684 )
2019-05-02 18:55:39 +01:00
Simon Frei
5954b105cd
lib/model: Let fakeConnection call Model.Closed on close ( #5682 )
2019-05-02 14:24:55 +02:00
Simon Frei
defc5dca65
lib/model: Use correct lock ( #5683 )
2019-05-02 14:09:42 +02:00
Audrius Butkevicius
0ca1f26ff8
lib/versioner: Restore for all versioners, cross-device support ( #5514 )
...
* lib/versioner: Restore for all versioners, cross-device support
Fixes #4631
Fixes #4586
Fixes #1634
Fixes #5338
Fixes #5419
2019-04-28 23:30:16 +01:00
Simon Frei
5da41f75fa
lib/model, lib/protocol: Wait for reader/writer loops on close ( fixes #4170 ) ( #5657 )
...
* lib/protocol: Wait for reader/writer loops on close (fixes #4170 )
* waitgroup
* lib/model: Don't hold lock while closing connection
* fix comments
* review (lock once, func argument) and naming
2019-04-28 11:58:51 +01:00
Simon Frei
86e72d9973
lib/model: Use RLock and legacy polish ( #5663 )
2019-04-21 13:21:36 +01:00
Simon Frei
3bea59b0d9
lib/model: Refactor progressEmitter to de-/activate by config ( fixes #4613 ) ( #5623 )
2019-04-13 14:20:51 +02:00
Simon Frei
fca895a632
lib/model: Fix block index calculation for recheckFile ( fixes #5649 ) ( #5648 )
2019-04-12 15:21:07 +02:00
Simon Frei
c305265c62
lib/model: Request errors conforming to BEP specs ( #5642 )
2019-04-10 11:47:24 +02:00
Simon Frei
395e524e2d
lib/model: Update db on scan/pull in folder ( #5608 )
2019-04-07 13:29:17 +02:00