Audrius Butkevicius
67acef1794
lib/weakhash, lib/model, cmd/syncthing: Decide if to use weakhash on startup ( fixes #3938 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3949
2017-02-06 10:27:11 +00:00
Jakob Borg
3655c97850
cmd/syncthing, lib/fs, lib/sync: Spelling in comments
2017-02-05 18:51:52 +01:00
Jakob Borg
c0f3f06cfb
lib/weakhash, script: gofmt -s
2017-02-05 18:49:57 +01:00
Jakob Borg
f1a073501f
lib/fs: A nil MtimeFS is valid ( fixes #3958 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3961
2017-02-05 12:54:08 +00:00
Jakob Borg
8cccecceba
lib/events: Speed up event polling loop slightly (ref #3952 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3954
2017-02-04 15:53:39 +00:00
Jakob Borg
3eb7a9373a
gui, lib/config: Add notification about new release channels
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3945
2017-02-04 09:45:17 +00:00
Antony Male
ac510b26e2
cmd/syncthing, lib/events, lib/sync: Add timeout to REST event API, remove Ping ( fixes #3933 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3941
2017-01-31 12:04:29 +00:00
Jakob Borg
35e87e23fd
cmd/syncthing, gui, lib/config, lib/upgrade: Add option to upgrade to pre-releases
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3939
2017-01-27 12:17:06 +00:00
Jakob Borg
ee36e2d46d
lib/weakhash: Limit number of hits for any given weakhash
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3925
2017-01-24 08:26:45 +00:00
Jakob Borg
de49ea594a
lib/upnp: Wrong order of internal/external port after OnlyPermanentLeasesSupported ( fixes #3924 )
2017-01-23 23:17:02 +01:00
Jakob Borg
6d4fa27ea7
cmd/syncthing: Report real hashing performance, including weakhash
...
Instead of
[I6KAH] 19:05:56 INFO: Single thread hash performance is 359 MB/s using minio/sha256-simd (354 MB/s using crypto/sha256).
it now says
[I6KAH] 19:06:16 INFO: Single thread SHA256 performance is 359 MB/s using minio/sha256-simd (354 MB/s using crypto/sha256).
[I6KAH] 19:06:17 INFO: Actual hashing performance is 299.01 MB/s
which is more informative. This is also the number it reports in usage
reporting.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3918
2017-01-23 21:56:43 +00:00
Jakob Borg
79c7f7193b
lib/upnp: Remove unnecessary error allocation
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3923
2017-01-23 21:02:55 +00:00
Audrius Butkevicius
2c4b92d410
lib/connections: Fix rate limiting on arm64 ( fixes #3921 )
...
Skip-check: metalint
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3922
2017-01-23 20:55:00 +00:00
Audrius Butkevicius
dd78177ae0
scanner: Allow disabling weak hash in scanning ( fixes #3891 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3905
2017-01-23 13:50:32 +00:00
Jakob Borg
68f1c6ccab
lib/scanner: Avoid per iteration allocations in Blocks()
...
Resetting the io.LimitReader is better than creating a new one on every
iteration.
2017-01-18 18:43:00 +01:00
Jakob Borg
bd1c29ee32
lib/scanner, vendor: Fix previous commit
...
Can't do what I did, as the rolling function is not the same as the
non-rolling one. Instead this uses an improved version of the rolling
adler32 to accomplish the same thing. (PR filed on upstream, so should
be able to use that directly in the future.)
2017-01-18 11:57:01 +01:00
Jakob Borg
9b1c592fb7
lib/scanner: Speed up weak hash
...
The rolling version of adler32 is just a wrapper around the standard
hash/adler32 when used in a non-rolling fashion, but it's inefficient as
it allocates a new hash instance for every Write(). This uses the
default version instead in the block hasher, and adds a test to verify
the result is the same as they were before. It reduces allocations by
88% and increases speed about 5%.
benchmark old ns/op new ns/op delta
BenchmarkHashFile-8 64434698 61303647 -4.86%
benchmark old MB/s new MB/s speedup
BenchmarkHashFile-8 276.65 290.78 1.05x
benchmark old allocs new allocs delta
BenchmarkHashFile-8 1238 150 -87.88%
benchmark old bytes new bytes delta
BenchmarkHashFile-8 17877363 49292 -99.72%
2017-01-18 10:33:17 +01:00
Simon Frei
dbb3a34887
lib/ignore: Centralize handling of temporary filenames ( fixes #3899 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3901
LGTM: calmh, AudriusButkevicius
2017-01-17 07:33:48 +00:00
Audrius Butkevicius
1a1e35d998
lib/osutil: Replace IsDir with TraversesSymlink ( fixes #3839 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3883
LGTM: calmh
2017-01-10 07:09:31 +00:00
Adel Qalieh
8d2a31e38e
lib/model: Remove syncthing-specific files ( fixes #3819 )
...
Syncthing adds some hidden files when a folder is added, but there is currently
no equivalent cleanup procedure. This change is conservative as not to
accidentally cause data loss.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3874
2017-01-07 17:05:30 +00:00
Jakob Borg
7a16dbd31d
lib/scanner: Fix previous commit: don't stop scan completely
2017-01-05 15:05:49 +01:00
Jakob Borg
926c88cfc4
lib/scanner: Never, ever descend into symlinks (ref #3857 )
...
On Windows we would descend into SYMLINKD type links when we scanned
them successfully, as we would return nil from the walk function and the
filepath.Walk iterator apparently thought it OK to descend into the
symlinked directory.
With this change we always return filepath.SkipDir no matter what.
Tested on Windows 10 as admin, does what it should.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3875
2017-01-05 13:26:29 +00:00
Audrius Butkevicius
29d010ec0e
lib/model, lib/weakhash: Hash using adler32, add heuristic in puller
...
Adler32 is much faster, and the heuristic avoid the obvious cases where it
will not help.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3872
2017-01-04 21:04:13 +00:00
Jakob Borg
920274bce4
lib/db: Don't panic on unknown folder in ListFolders ( fixes #3584 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3869
2017-01-04 10:34:52 +00:00
Jakob Borg
2ebd6ad77f
lib/scanner: Don't stop byte counter ticks before scan is done
2017-01-03 15:03:32 +01:00
Jakob Borg
987718baf8
vendor: Update github.com/gogo/protobuf
...
Also tweaks the proto definitions:
- [packed=false] on the block_indexes field to retain compat with
v0.14.16 and earlier.
- Uses the vendored protobuf package in include paths.
And, "build.go setup" will install the vendored protoc-gen-gogofast.
This should ensure that a proto rebuild isn't so dependent on whatever
version of the compiler and package the developer has installed...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3864
2017-01-03 00:16:21 +00:00
Jakob Borg
ec62888539
lib/connections: Allow on the fly changes to rate limits ( fixes #3846 )
...
Also replaces github.com/juju/ratelimit with golang.org/x/time/rate as
the latter supports changing the rate on the fly.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3862
2017-01-02 11:29:20 +00:00
Jakob Borg
6809d38cde
lib/protocol: Revert protobuf encoder changes in v0.14.17 ( fixes #3855 )
...
The protobuf encoder now produces packed arrays for things like []int32,
which is actually correct according to the proto3 spec. However
Syncthing v0.14.16 and earlier doesn't support this. This reverts the
encoding change, but keeps the updated decoder so that we are both more
compatible with other proto3 implementations and can move to the updated
encoder in the future.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3856
2017-01-01 17:19:00 +00:00
Jakob Borg
0a118d2979
lib/config, lib/model: Temporarily disable bad tests (ref #3834 , #3843 )
2017-01-01 13:27:18 +01:00
Jakob Borg
c69c3c7c36
lib/sha256: Smoke test the implementation on startup (hello OpenSUSE!)
2016-12-28 12:15:51 +01:00
Jakob Borg
f5a310ad64
Revert "lib/model: Handle filename conflicts on Windows."
...
This reverts commit 01e50eb3fa
.
2016-12-23 11:10:58 +01:00
Unrud
01e50eb3fa
lib/model: Handle filename conflicts on Windows.
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3810
LGTM: calmh
2016-12-22 23:04:53 +00:00
Audrius Butkevicius
bab7c8ebbf
all: Add folder pause, make pauses permanent ( fixes #3407 , fixes #215 , fixes #3001 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3520
2016-12-21 18:41:25 +00:00
Nathan Morrison
0725e3af38
all: Add a global change list
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3694
2016-12-21 16:35:20 +00:00
Jakob Borg
dd7bb6c4b8
lib/model: Fix tests, clean up pool usage in protocol
2016-12-21 14:53:45 +01:00
Jakob Borg
d41c131364
build: Enable gometalinter "gosimple" check, improve build.go
2016-12-21 14:53:45 +01:00
Jakob Borg
47f22ff3e5
build: Enable gometalinter "unconvert" check
2016-12-21 14:53:45 +01:00
Jakob Borg
744c2e82b5
build: Enable gometalinter "staticcheck" check
2016-12-21 14:53:45 +01:00
Jakob Borg
ead7281c20
build: Enable gometalinter "unused" check
2016-12-21 14:53:45 +01:00
AudriusButkevicius
aa3ef49dd7
lib/model: Fix lock order
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3823
2016-12-21 12:22:18 +00:00
Jakob Borg
5c067661f4
lib/model: Consistently show folder description in startup messages
...
Since we anyway need the folderConfig for this I'm skipping the copying
of all it's attributes that rwfolder did and just keeping the original
around instead.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3825
2016-12-21 11:23:20 +00:00
Jakob Borg
226da976dc
lib/model: Allow empty subdirs in scan request ( fixes #3829 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3833
2016-12-21 10:33:07 +00:00
AudriusButkevicius
9e0afb7d8a
lib/connections: Support setting traffic class ( fixes #3790 )
2016-12-21 11:01:15 +01:00
Jakob Borg
d7d5687faa
lib/protocol: Warnln should have been Warnf
2016-12-21 10:43:12 +01:00
Jakob Borg
2f770f8bfb
lib/config, lib/protocol: Improve folder description with empty label
2016-12-19 10:12:06 +01:00
Jakob Borg
b8c1c0e048
cmd/syncthing: Enable better crypto, print negotiated cipher suite
...
This adds support for AES_256_GCM_SHA384 (in there since Go 1.5, a bit
of a shame we missed it) and ChaCha20-Poly1305 (if built with Go 1.8;
ignored on older Gos).
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3822
2016-12-18 21:07:44 +00:00
Jakob Borg
9c67bd2550
lib/connections: Fix port fixup in Go 1.8 ( fixes #3817 )
...
The test for the error string is fragile, and the error string changed
in Go 1.8 so the relevant part is no longer a prefix. This covers it
with a test though, so it should be fine in the future as well.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3818
2016-12-18 11:28:18 +00:00
Jakob Borg
f67c5a2fd6
lib/model: Don't send symlinks to old devices that can't handle them ( fixes #3802 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3811
2016-12-17 19:48:33 +00:00
Heiko Zuerker
398c356f22
lib/model: Clarify master terminology ( fixes #2679 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3793
2016-12-16 22:23:35 +00:00
Audrius Butkevicius
542b76f687
lib/model: Moar sleep
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3807
2016-12-16 12:05:27 +00:00
Jakob Borg
abb8a1914a
lib/model: Accept scan requests of paths ending in slash ( fixes #3804 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3805
2016-12-16 11:21:22 +00:00
Audrius Butkevicius
0582836820
lib/model, lib/scanner: Efficient inserts/deletes in the middle of the file
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3527
2016-12-14 23:30:29 +00:00
Jakob Borg
dde9d4c9eb
lib/rc: Remove pause to aggregate events (ref #3527 )
2016-12-14 10:24:36 +01:00
Jakob Borg
3582783972
lib/model, lib/osutil: Verify target directory before pulling / requesting
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3798
2016-12-13 10:24:10 +00:00
Jakob Borg
5070d52f2f
lib/model: Add benchmark for model.Request()
2016-12-09 23:14:56 +01:00
Jakob Borg
7b07ed6580
lib/model, lib/protocol, lib/scanner: Include symlink target in index, pull symlinks synchronously
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3792
2016-12-09 18:02:18 +00:00
Jakob Borg
a9b03de99a
gui, lib/db: Correct space accounting of symlinks, for "out of sync" status
2016-12-09 10:38:36 +01:00
Lars K.W. Gohlke
8ce9b026e9
lib/model: Minor cleanups
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3765
2016-12-06 08:54:04 +00:00
Jakob Borg
2fd1dca905
lib/connections: Fix odd logging, forgot to call function
2016-12-02 12:56:14 +01:00
Jakob Borg
e3cf718998
lib/ignore: Add central check for internal files, used in scanning, pulling and requests
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3779
2016-12-01 14:00:11 +00:00
Jakob Borg
3266aae1c3
lib/protocol: Apply input filtering on file names
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3775
2016-12-01 12:35:32 +00:00
Jakob Borg
63194a37f6
lib/model: Double check results in filepath.Join where needed
...
Wherever we have untrusted relative paths, make sure they are not
escaping their folder root.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3776
2016-12-01 12:35:11 +00:00
Unrud
cabe94552a
lib/model: Prevent collisions in the progressemitter registry
...
Using filepath.Join can cause collisions. The folder ID could be something
like ".." or "../..".
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3778
2016-12-01 12:34:20 +00:00
Jakob Borg
48a229a0cd
lib/model: Temp names from all platforms should be recognized as such
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3777
LGTM: AudriusButkevicius
2016-11-30 21:23:24 +00:00
Jakob Borg
e4db86836b
lib/model: Locking in the request test
2016-11-30 13:11:06 +01:00
Jakob Borg
913a85c571
lib/model: Add simple file syncing test
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3772
2016-11-30 09:32:28 +00:00
Jakob Borg
ed4f6fc4b3
lib/connections, lib/model: Connection service should expose a single interface
...
Makes testing easier, which we'll need
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3771
2016-11-30 07:54:20 +00:00
Jakob Borg
fc1430aa92
lib/fs: The interface and basicfs
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3748
2016-11-24 12:07:14 +00:00
Jakob Borg
3cde608eda
lib/db: Fix ineffassign lint issue
2016-11-24 12:08:44 +01:00
Jakob Borg
91568a173a
lib/model: Remove ineffectual assignment in test
2016-11-24 11:33:27 +01:00
Jakob Borg
e57f5499a1
lib/sync: Remove unused struct field
2016-11-24 11:30:55 +01:00
Jakob Borg
9abb7b71a9
lib/osutil: Fix lint warning on error formatting ( fixes #3760 )
2016-11-24 11:20:51 +01:00
Jakob Borg
8559e20237
lib/osutil: Don't chmod in atomic file creation ( fixes #2472 )
...
Instead, trust (and test) that the temp file has appropriate permissions
from the start. The only place where this changes our behavior is for
ignores which go from 0644 to 0600. I'm OK with that.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3756
2016-11-23 14:06:08 +00:00
Jakob Borg
26730eb083
lib/model: Fix test that relies on ignore reloading
2016-11-23 14:42:29 +01:00
Simon Frei
4160ce674d
model: consistently use cfg when referring to config instance and not package
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3755
2016-11-22 23:14:20 +00:00
Jakob Borg
2dbeea21c4
lib/ignore: Don't slow down tests by sleeping
2016-11-22 22:44:04 +01:00
Jakob Borg
a2b8485a89
lib/ignore: Fast reload of unchanged ignores ( fixes #3394 )
...
This changes the "seen" map that we're anyway keeping around to track
the modtimes of loaded files instead. When doing a Load() we check that
1) the file we are loading is in the modtime set, and 2) that none of
the files in the modtime set have changed modtimes. If that's the case
we do a quick return without parsing anything or clearing the cache.
This required adding two one seconds sleeps in the tests to make sure
the modtimes were updated when we expect cache reloads, because I'm on a
crappy filesystem with one second timestamp granularity. That also
proves it works...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3754
2016-11-22 21:30:45 +00:00
Unrud
f1e83a57cd
lib/osutil: Remove unnecessary fsync in Copy()
...
Fsyncing the file has a small performance penalty and seems unnecessary. The
file will be fsynced anyway, when the changes are commited to the database.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3749
2016-11-22 07:59:54 +00:00
Jakob Borg
cc9a9fb390
lib/model, lib/protocol: Add Folder.Description() for logging (ref #3741 )
2016-11-22 08:36:14 +01:00
Roman Zaynetdinov
d3a251e6d9
lib/model: Log folder IDs and labels ( fixes #3724 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3741
2016-11-21 20:09:18 +01:00
Unrud
1574b7d834
lib/model: Add fsync of files and directories, option to disable ( fixes #3711 )
2016-11-21 18:09:51 +01:00
Jakob Borg
548a324256
lib/connections: Slow down failing listeners
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3745
2016-11-19 12:37:14 +00:00
Jakob Borg
a8a0bc356a
lib/model: Minor cleanup to not fondle cfg.Raw things in handleDeintroductions
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3739
2016-11-17 08:56:55 +00:00
Jakob Borg
faee1d5a8d
lib/model: Fix locking around introduction handling ( fixes #3737 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3738
2016-11-17 08:50:24 +00:00
Jakob Borg
3088dac33b
lib/model: Clean up generateClusterConfig, fix spurious test failure by sorting
2016-11-17 07:45:45 +01:00
Jakob Borg
95c738ea28
lib/protocol: Serialize the all zeroes device ID to the empty string
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3734
2016-11-15 06:22:36 +00:00
Audrius Butkevicius
38d28c3f4a
lib/relay: Close invitation channel in all error cases ( fixes #3726 )
2016-11-13 09:32:05 +01:00
Audrius Butkevicius
f60b424d70
lib/config: Raw() -> RawCopy()
2016-11-13 09:29:35 +01:00
Audrius Butkevicius
a1a91d5ef4
lib/model: Introducer can remove stuff it introduced ( fixes #1015 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3522
2016-11-13 09:29:33 +01:00
Jakob Borg
59f3d1445f
Revert "lib/model: Introducer can remove stuff it introduced ( fixes #1015 )"
...
This reverts commit 0b88cf1d03
.
2016-11-12 08:38:29 +01:00
Audrius Butkevicius
0b88cf1d03
lib/model: Introducer can remove stuff it introduced ( fixes #1015 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3522
2016-11-11 15:54:25 +01:00
Audrius Butkevicius
56e2ba29d0
lib/config: Subscribers get a copy of the config
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3722
2016-11-11 14:52:23 +00:00
Jakob Borg
ae4cc94a9d
lib/model: Fix locking order in Availability() ( fixes #3634 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3714
2016-11-08 06:38:50 +00:00
Jakob Borg
3f9b75b7b3
Revert "lib/model: Introducer can remove stuff it introduced ( fixes #1015 )"
...
This reverts commit ec2b097313
.
2016-11-08 14:27:32 +08:00
Audrius Butkevicius
ec2b097313
lib/model: Introducer can remove stuff it introduced ( fixes #1015 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3522
2016-11-08 00:40:48 +08:00
Audrius Butkevicius
caaab462bc
lib/sync: Fix broken build
2016-11-05 02:31:52 +00:00
Audrius Butkevicius
da413b823b
lib/sync: Add option for sasha-s/go-deadlock
2016-11-05 02:24:53 +00:00
Audrius Butkevicius
14937e7dd2
build: Fix proto builder on Windows
2016-11-03 22:06:51 +00:00
Audrius Butkevicius
3418497f3d
lib/sync: Log everything...
2016-11-03 21:33:33 +00:00
Audrius Butkevicius
7fba8cf759
lib/sync: Print all lockers, add holder to RWMutex
2016-10-30 00:17:25 +01:00