aboutsummaryrefslogtreecommitdiff
path: root/proto
AgeCommit message (Collapse)Author
2024-05-23lib/config, lib/watchaggregator: Add config for max FS watcher delay (#9558)Jakob Borg
Currently the maximum delay is always derived automatically from the initial delay. This is fine in most cases, but for some use cases (large files that take a long time to write) we need to be able to set a longer max delay than the computed value (e.g., 15s delay with 10min timeout).
2024-01-04lib/api: Save session & CSRF tokens to database, add option to stay logged ↵Jakob Borg
in (fixes #9151) (#9284) This adds a "token manager" which handles storing and checking expired tokens, used for both sessions and CSRF tokens. It removes the old, corresponding functionality for CSRFs which saved things in a file. The result is less crap in the state directory, and active login sessions now survive a Syncthing restart (this really annoyed me). It also adds a boolean on login to create a longer-lived session cookie, which is now possible and useful. Thus we can remain logged in over browser restarts, which was also annoying... :) <img width="1001" alt="Screenshot 2023-12-12 at 09 56 34" src="https://github.com/syncthing/syncthing/assets/125426/55cb20c8-78fc-453e-825d-655b94c8623b"> Best viewed with whitespace-insensitive diff, as a bunch of the auth functions became methods instead of closures which changed indentation.
2023-10-06Add HTML login form (fixes #4137) (#8757)Emil Lundberg
2023-09-06all: Support multiple device connections (fixes #141) (#8918)Jakob Borg
This adds the ability to have multiple concurrent connections to a single device. This is primarily useful when the network has multiple physical links for aggregated bandwidth. A single connection will never see a higher rate than a single link can give, but multiple connections are load-balanced over multiple links. It is also incidentally useful for older multi-core CPUs, where bandwidth could be limited by the TLS performance of a single CPU core -- using multiple connections achieves concurrency in the required crypto calculations... Co-authored-by: Simon Frei <freisim93@gmail.com> Co-authored-by: tomasz1986 <twilczynski@naver.com> Co-authored-by: bt90 <btom1990@googlemail.com>
2023-04-16lib/config, lib/connections: Configurable protocol priority (ref #8626) (#8868)Jakob Borg
This makes the various protocol priorities configurable among the other options. With this, it's possible to prefer QUIC over TCP for WAN connections, for example. Both sides need to be similarly configured for this to work properly. The default priority order remains the same as previously (TCP, QUIC, Relay, with LAN better than WAN). To make this happen I made each dialer & listener more priority aware, and moved the check for whether a connection is LAN or not into the dialer / listener -- this is the new "lanChecker" type that's passed around.
2023-03-18lib/config: Allow sub-second watcher delay (fixes #7859) (#7864)tomasz1986
Allow the watcher delay to take fractional values, effectively allowing for much shorter delays. The minimum value is limited at 0.01, which effectively translates to 10ms. This is required in order to guarantee that there is still enough time to aggregate multiple single change events. Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2023-03-10lib: Correctly handle encrypted trailer size (fixes #8556) (#8563)Simon Frei
2022-09-14all: Support syncing extended attributes (fixes #2698) (#8513)Jakob Borg
This adds support for syncing extended attributes on supported filesystem on Linux, macOS, FreeBSD and NetBSD. Windows is currently excluded because the APIs seem onerous and annoying and frankly the uses cases seem few and far between. On Unixes this also covers ACLs as those are stored as extended attributes. Similar to ownership syncing this will optional & opt-in, which two settings controlling the main behavior: one to "sync" xattrs (read & write) and another one to "scan" xattrs (only read them so other devices can "sync" them, but not apply any locally). Co-authored-by: Tomasz Wilczyński <twilczynski@naver.com>
2022-08-12all: Make scanning ownership opt-in (#8497)Jakob Borg
2022-08-03build: Update quic-go for Go 1.19 (#8483)Jakob Borg
Also adds idle time and keepalive parameters because how this is configured has changed in the new package version. The values are those that seems like might already be default, if keep-alives were enabled, which is not obvious from the doc comments. Also, Go 1.19 gofmt reformatting of comments.
2022-07-26cmd/syncthing, lib/config: Remove restartOnWakeup option & functionality ↵Jakob Borg
(fixes #8448) (#8449)
2022-07-26all: Support syncing ownership (fixes #1329) (#8434)Jakob Borg
This adds support for syncing ownership on Unixes and on Windows. The scanner always picks up ownership information, but it is not applied unless the new folder option "Sync Ownership" is set. Ownership data is stored in a new FileInfo field called "platform data". This is intended to hold further platform-specific data in the future (specifically, extended attributes), which is why the whole design is a bit overkill for just ownership.
2022-01-13lib, gui: Default ignores for new folders (fixes #7428) (#7530)Simon Frei
2021-06-17gui, lib: Handle pw adding remote encrypted folder (fixes #7705) (#7772)Simon Frei
2021-04-26all: Deprecate TLS 1.2 on sync connections (fixes #7594) (#7598)Jakob Borg
This makes us use TLS 1.3+ on sync connections by default. A new option `insecureAllowOldTLSVersions` exists to allow communication with TLS 1.2-only clients (roughly Syncthing 1.2.2 and older). Even with that option set you get a slightly simplified setup, with the cipher suite order fixed instead of auto detected.
2021-03-03lib: Use counterfeiter to mock interfaces in tests (#7375)Simon Frei
2021-02-26all: Fix versioning path handling (#7407)Simon Frei
2021-02-12all: Automatic/disabled folder-config when receive-encrypted (#7327)Simon Frei
2021-02-04all: Add configurable defaults (fixes #4224, fixes #6086) (#7131)Simon Frei
2021-01-11lib/config, lib/connections: Add optional connection limits (fixes #7176) ↵Jakob Borg
(#7223) This adds two new configuration options: // The number of connections at which we stop trying to connect to more // devices, zero meaning no limit. Does not affect incoming connections. ConnectionLimitEnough int // The maximum number of connections which we will allow in total, zero // meaning no limit. Affects incoming connections and prevents // attempting outgoing connections. ConnectionLimitMax int These can be used to limit the number of concurrent connections in various ways.
2020-12-17all: Store pending devices and folders in database (fixes #7178) (#6443)André Colomb
2020-11-10gui: Add advance config port mapping to gui (fixes #4824) (#7017)Rahmi Pruitt
2020-11-09all: Add untrusted folders behind feature flag (ref #62) (#7055)Simon Frei
2020-10-02all: Move remaining protos to use the vanity plugin (#7009)Audrius Butkevicius
2020-09-30lib/config, lib/syncthing: Only drop delta index on upgrade if so ordered ↵Jakob Borg
(fixes #6982) (#6983)
2020-08-25lib/connections: Announce LAN addresses by default (fixes #6928) (#6896)Audrius Butkevicius
2020-08-25all: Use protobuf to generate config structs (fixes #6734) (#6900)Audrius Butkevicius