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
Simon Frei
b50039a920
cmd/syncthing, lib/api: Separate api/gui into own package (ref #4085 ) ( #5529 )
...
* cmd/syncthing, lib/gui: Separate gui into own package (ref #4085 )
* fix tests
* Don't use main as interface name (make old go happy)
* gui->api
* don't leak state via locations and use in-tree config
* let api (un-)subscribe to config
* interface naming and exporting
* lib/ur
* fix tests and lib/foldersummary
* shorter URVersion and ur debug fix
* review
* model.JsonCompletion(FolderCompletion) -> FolderCompletion.Map()
* rename debug facility https -> api
* folder summaries in model
* disassociate unrelated constants
* fix merge fail
* missing id assignement
2019-03-26 19:53:58 +00:00
Simon Frei
e7ae851900
lib/model: Debug and test fixes ( #5613 )
2019-03-22 14:43:47 +01:00
Simon Frei
289a02e994
lib/model: Integrate stat refs in folder ( #5596 )
2019-03-11 16:57:21 +00:00
Simon Frei
445637ebec
lib/model: Pass fset & ignores on folder creation ( #5592 )
2019-03-11 07:28:54 +01:00
Simon Frei
3f3d2c814b
lib/model: Remove unused code ( #5591 )
2019-03-10 17:05:39 +01:00