AudriusButkevicius and Jakob Borg
aecd7c64ce
lib/connections: Parallel dials in the same priority ( fixes #4456 )
...
Well Tested(TM)
Introduces a potential issue where we always pick some connectable but dodgy connection that breaks
soon after the TLS handshake.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4489
2017-11-15 09:36:33 +00:00
Simon Frei and Audrius Butkevicius
4efff736b3
lib/connections: Consistent log levels & polish ( fixes #4510 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4511
2017-11-14 21:49:36 +00:00
Simon Frei and Jakob Borg
fa12a18190
lib/model: Handle type changes when pulling (ref #4505 #4506 #4507 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4509
LGTM: AudriusButkevicius, calmh
2017-11-13 15:16:27 +00:00
Jakob Borg
2b65e1062e
lib/model: Fix rescan detection ( fixes #4505 , fixes #4506 )
...
Diff is large due to comment reformatting and indentation but all it
does is wrap the file mtime/size/permissions check in an "if
stat.IsRegular()".
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4507
2017-11-13 06:57:07 +00:00
Jakob Borg
6e148e20cd
test: Mend tests for latest event changes etc
2017-11-13 00:25:07 +01:00
Jakob Borg and Audrius Butkevicius
d7d45d8092
lib/db: Refactor away the large genericReplace thing
...
This removes a significant, complex chunk of database code. The
"replace" operation walked both the old and new in lockstep and made the
relevant changes to make the new situation correct. But since delta
indexes we pretty much never need this - we just used replace to drop
the existing data and start over.
This makes that explicit and removes the complexity.
(This is one of those things that would be annoying to make case
insensitive, while the actual "drop and then insert" that we do is
easier.)
This is fairly well unit tested...
The one change to the tests is to cover the fact that previously replace
with something identical didn't bump the sequence number, while
obviously removing everything and re-inserting does. This is not
behavior we depend on anywhere.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4500
LGTM: imsodin, AudriusButkevicius
2017-11-12 20:20:34 +00:00
Simon Frei and Jakob Borg
c080f677cb
all: Add invalid/ignored files to global list, announce to peers ( fixes #623 )
...
This lets us determine accurate completion status for remote peers when they
have ignored files.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4460
2017-11-11 19:18:17 +00:00
Simon Frei and Jakob Borg
ec4c3bae0d
lib/watchaggregator: Don't care about timings during testing on darwin
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4502
2017-11-10 17:05:31 +00:00
Audrius Butkevicius
386cb274bd
lib/model: Incremental block stats usage reporting
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4498
LGTM: calmh
2017-11-09 21:16:29 +00:00
Jakob Borg
a9d422e008
Revert "lib/model: Use the new file name when requesting rescan"
...
This has consequences that I haven't thought through for case mismatches
(i.e. we have foo.txt in the database and queue a rescan for FOO.txt).
2017-11-09 13:55:45 +01:00
Jakob Borg
75f64733f9
lib/model: Use the new file name when requesting rescan
...
If the file is not already in the database, the "curfile" will be empty
and the rescan request cover the entire folder.
2017-11-09 13:48:39 +01:00
AudriusButkevicius and Jakob Borg
0ee1146e1c
lib/connections: Indicate stack in transport ( fixes #4463 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4486
2017-11-07 07:25:05 +00:00
Simon Frei and Jakob Borg
f6ea2a7f8e
lib/model: Trigger pulls instead of pulling periodically
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4340
2017-11-07 06:59:35 +00:00
AudriusButkevicius and Jakob Borg
62a4106a79
lib/connections: Fix lan detection ( fixes #4421 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4487
2017-11-06 14:05:29 +00:00
Jakob Borg and Audrius Butkevicius
9c855ab22e
lib/config, lib/model: Configurable folder marker name ( fixes #1126 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4483
2017-11-05 12:18:05 +00:00
HairyFotr and Jakob Borg
7cbd92e1b1
all: Fix comment typos
...
Skip-check: authors
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4481
2017-11-04 07:20:11 +00:00
Simon Frei
b999b58049
lib/watchaggregator: Relax test timing requirement for the benefit of macos
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4469
2017-10-26 21:09:10 +00:00
Simon Frei and Jakob Borg
4b69d0e093
lib/model: Add initial noop watch cancel func ( fixes #4464 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4465
2017-10-26 11:49:06 +00:00
Simon Frei and Jakob Borg
7ba9e7c322
lib/db: Filter unchanged files when updating and polish
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4426
2017-10-24 20:05:29 +00:00
Simon Frei and Jakob Borg
dc42db444b
lib/model, lib/config: Refactor folder health/error handling ( fixes #4445 , fixes #4451 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4455
LGTM: AudriusButkevicius, calmh
2017-10-24 07:58:55 +00:00
Audrius Butkevicius
a9c221189b
lib/connections: Stun resolves server adress beforehand ( fixes #4453 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4454
2017-10-22 18:48:06 +00:00
Audrius Butkevicius
b2966957e0
lib/connections: Add KCP blacklist period
2017-10-22 13:56:52 +01:00
Audrius Butkevicius
0d30166357
lib/connections: Use own KCP fork, move listener setup earlier (ref #4446 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4452
2017-10-22 12:36:36 +00:00
Jakob Borg
d65f1fb08a
lib/config: Improve debug logging around folder marker
2017-10-22 00:04:51 +02:00
Audrius Butkevicius and Jakob Borg
622b614f31
all: Ignore Sync errors on directories ( fixes #4432 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4449
2017-10-21 22:00:46 +00:00
Simon Frei
e70003737b
lib/fs: make watcher tests even more darwin slowness resistant
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4439
2017-10-20 15:59:18 +00:00
Michael Ploujnikov and Audrius Butkevicius
f98c21b68e
all: Add filesystem notification support
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3986
2017-10-20 14:52:55 +00:00
Audrius Butkevicius and GitHub
fb7264a663
cmd/syncthing: Enable KCP by default
...
Also, use upstream library, as my changes have been merged.
2017-10-17 23:17:10 +01:00
Audrius Butkevicius
becbb3b123
lib/model: Fix tests not to require Go 1.9
2017-10-12 22:36:20 +01:00
Jakob Borg and Audrius Butkevicius
2f08f8021f
lib/beacon: Don't exit after a single write failure ( fixes #4414 )
...
With VPNs and stuff we can get a single failure on an interface that
supposedly supports broadcasts without it being fatal.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4415
2017-10-12 07:13:44 +00:00
Audrius Butkevicius and Jakob Borg
9d3f3847ed
lib/model: Fix removal of paused folders, improve tests ( fixes #4405 )
2017-10-12 08:23:33 +02:00
Audrius Butkevicius and Jakob Borg
74c8d34805
lib/model: Centralize error reporting, modified files are errors ( fixes #4392 )
2017-10-12 08:23:33 +02:00
Audrius Butkevicius and Jakob Borg
5ec1490be0
lib/fs: Ignore directory fsync failures
2017-10-12 08:22:29 +02:00
Audrius Butkevicius and Jakob Borg
2760d032ca
cmd/syncthing: Add more stats to usage reports (ref #3628 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4347
2017-10-12 06:16:46 +00:00
Jakob Borg and Audrius Butkevicius
a365ae51c4
lib/model: Hide temporary files on Windows while they are in use ( fixes #4382 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4394
2017-09-23 13:47:51 +00:00
Jakob Borg
97222797a0
lib/config: Make folder marker change non fatal
2017-09-23 15:29:55 +02:00
Simon Frei and Audrius Butkevicius
e588bb29b9
lib/model: remove unused folderFs member from Model
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4389
2017-09-21 09:03:36 +00:00
Jakob Borg
2dd9450793
lib/protocol, vendor: Import luhn code directly
...
I've changed it incompatibly to fix a correctness bug. Nonetheless, we
should remain incorrect indefinitely.
2017-09-20 21:34:32 +02:00
Jakob Borg and Audrius Butkevicius
3ee12464b4
lib/config, lib/model: Make sure to hide our special files ( fixes #4382 )
...
The folder marker conversion forgot to hide the .stfolder. This adds
that, for those who have not yet been converted.
Also adds Hide() calls to the folder start, to mend historical
unhidedness. (I'm sure this will upset someone who is manually managing
their .stignores in the other direction...)
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4384
2017-09-20 06:49:04 +00:00
Simon Frei and Jakob Borg
1088eb12ea
lib/model: Fix logging inconsistencies ( fixes #4375 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4376
2017-09-18 11:56:19 +00:00
Jakob Borg and Audrius Butkevicius
429cc20eb7
cmd/syncthing: Add some common security releated HTTP headers ( fixes #4360 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4361
2017-09-10 08:28:12 +00:00
Audrius Butkevicius and Jakob Borg
e85ce7c94e
lib/model: Support removing paused folders ( fixes #4357 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4358
LGTM: imsodin, calmh
2017-09-09 15:08:59 +00:00
Jakob Borg
283c8d95e2
lib/protocol: Comment typo
2017-09-08 15:25:14 +02:00
wangguoliang and Jakob Borg
a9aa375109
lib/fs: Comment typo
...
Skip-check: authors
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4354
2017-09-07 09:40:46 +00:00
Simon Frei and Jakob Borg
f7d2c58783
lib/model: Deduplicate folder loops
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4352
LGTM: AudriusButkevicius, calmh
2017-09-07 06:17:47 +00:00
Jakob Borg and Audrius Butkevicius
4d3e0de4ba
cmd/syncthing, lib/sha256: Skip CPU benchmarks when user decided ( fixes #4348 )
...
When STHASHING is set, don't benchmark as it's already decided. If weak
hashing isn't set to "auto", don't benchmark that either.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4349
2017-09-06 06:55:47 +00:00
Simon Frei and Jakob Borg
9dbc509996
lib/ignore: Consistent behaviour for nil *Matcher
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4310
2017-09-06 06:39:18 +00:00
Simon Frei and Jakob Borg
c41aaad3bb
lib/ignore: Ignore duplicate lines in .stignore
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4350
LGTM: AudriusButkevicius, calmh
2017-09-04 12:46:19 +00:00
Jakob Borg and Audrius Butkevicius
9682bbfbda
lib/protocol: Optimize luhn and chunk functions
...
These functions were very naive and slow. We haven't done much about
them because they pretty much don't matter at all for Syncthing
performance. They are however called very often in the discovery server
and these optimizations have a huge effect on the CPU load on the
public discovery servers.
The code isn't exactly obvious, but we have good test coverage on all
these functions.
benchmark old ns/op new ns/op delta
BenchmarkLuhnify-8 12458 1045 -91.61%
BenchmarkUnluhnify-8 12598 1074 -91.47%
BenchmarkChunkify-8 10792 104 -99.04%
benchmark old allocs new allocs delta
BenchmarkLuhnify-8 18 1 -94.44%
BenchmarkUnluhnify-8 18 1 -94.44%
BenchmarkChunkify-8 44 2 -95.45%
benchmark old bytes new bytes delta
BenchmarkLuhnify-8 1278 64 -94.99%
BenchmarkUnluhnify-8 1278 64 -94.99%
BenchmarkChunkify-8 42552 128 -99.70%
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4346
2017-09-03 10:26:12 +00:00
Audrius Butkevicius and Jakob Borg
9e6a1fdcd4
vendor: Update kcp, removes closeConn ( fixes #4343 )
2017-09-02 16:11:48 +02:00