aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-18build(deps): bump docker/login-action from 2 to 3dependabot/github_actions/docker/login-action-3dependabot[bot]
Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18gui, man, authors: Update docs, translations, and contributorsSyncthing Release Automation
2023-09-12gui: Block GUI when saving changes only if necessary (ref #9063) (#9079)tomasz1986
Currently, the UI is always blocked from modifications when changes are being saved, even if the save process takes very little time. This leads to a situation where showing and closing the blocking modal can take more time than is actually required to perform the whole operation. The modal opening and closing very quickly can also cause the screen to flash for a brief moment, leading to visual discomfort. Because of this, wait for at least 200 ms and only show the blocking modal if the changes have not been saved until then yet. The value of 200 ms is loosely based on [1] which states that 'a delay of 0.2–1.0 seconds does mean that users notice the delay and thus feel the computer is "working" on the command, as opposed to having the command be a direct effect of the users' actions.' Additionally, the delay must not be too long, because the main purpose of the blocking modal is to prevent the user from making further changes, and a longer delay would possibly allow to do so in that brief amount of time as long as the user is quick enough with their input. [1] https://nngroup.com/articles/response-times-3-important-limits Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2023-09-12lib/protocol: Ensure starting & closing a connection are exclusive (fixes ↵v1.25.0-rc.1Jakob Borg
#9102) (#9103) In principle a connection can close while it's in progress with starting, and then it's undefined if we wait for goroutines to exit etc. With this change, we will wait for start to complete before starting to stop everything.
2023-09-12gui: Remove unused hard-coded styles from Recent Changes modal (#9101)tomasz1986
gui: Remove unused hard-coded styles from globalChangesModalView modal Currently, the globalChangesModalView modal has hardcoded th and td styles. However, they are not even used in the modal itself, because Bootstrap overrides them with its own styles for these elements in the same modal. Yet, when hard-coded like that, these styles can conflict with other table elements in the GUI. Thus, remove them completely. Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2023-09-12lib/connections: Make assumptions about isLAN when interface address listing ↵bt90
fails (#9093)
2023-09-12lib/beacon, lib/discover: Send IPv4 limited broadcast when address listing ↵bt90
fails (fixes #1628) (#9087)
2023-09-12build: Update dependenciesJakob Borg
2023-09-11lib/versioner: Don't complain when folder is stopping (#9097)Jakob Borg
2023-09-11gui: Add help link for numConnections (#9082)Jakob Borg
2023-09-11gui: Add missing translation related to Number of Connections (ref #8918) ↵tomasz1986
(#9095) Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2023-09-11gui, man, authors: Update docs, translations, and contributorsSyncthing Release Automation
2023-09-06build: Go 1.21.1 or higherJakob Borg
2023-09-06cmd/stdiscosrv: Deduplicate addresses (fixes #8482) (#9080)bt90
2023-09-06lib/build: Next version is the Gold GrasshopperJakob Borg
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-09-05build: Use actions/checkout@v4Jakob Borg
2023-09-05build: Minor dependency updateJakob Borg
2023-09-04gui, man, authors: Update docs, translations, and contributorsSyncthing Release Automation
2023-09-03lib/connections: Fix WANAddresses returning only unspecified IPs (ref #9010) ↵Maximilian
(#9073) Avoids taking the address of the same variable twice.
2023-09-02lib/model: Refactor folderRunners to use a serviceMap (#9071)Jakob Borg
Instead of separately tracking the token. Also changes serviceMap to have a channel version of RemoveAndWait, so that it's possible to do the removal under a lock but wait outside of the lock. And changed where we do that in connection close, reversing the change that happened when I added the serviceMap in 40b3b9ad1.
2023-09-02gui: Don't hide default values for folders and devices (#8987)tomasz1986
Currently, some of the information for folders and devices displayed in the GUI relies on arbitrary values that come pre-set as defaults on a fresh Syncthing installation, i.e. if the value matches the default, it is hidden, and if does not, then it is displayed. With this change, the GUI always displays all information regardless of their value, making the overall experience more consistent and predictable. Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2023-09-01gui: Fix File Versioning icon to match in all places (#9070)tomasz1986
Currently, different icons are used for File Versioning when displayed in the unfolded folder info in the main part of the GUI, and the icon used in the Edit Folder modal. This changes the main GUI icon to match the icon used in the modal. Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2023-09-01gui: Fix Logs modal icon to match header icon (ref #9067) (#9069)tomasz1986
The Logs icon was changed in [1] in the header, however the icon used in the modal was left out. This changes it, so that the header and the modal icons match. [1] 2abba1dfb0f3337dd1e77c6584e7d12bdba284b9 Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2023-09-01build: Be more subtle about cross compilation errorsJakob Borg
Summarize platforms that fail to build, without overloading the build log with errors that we anyway ignore. (Currently freebsd/riscv64 fails to build.)
2023-09-01build: Update dependencies (#9068)Jakob Borg
2023-09-01gui: Remove footer and move links to header (fixes #5607) (#9067)tomasz1986
* gui: Remove footer and move links to header (fixes #5607) Currently, the footer is always present and takes space at the bottom of the GUI. However, the links listed there are not part of everyday user interaction, and as such, they unnecessarily clutter the page, reducing the usable screen space. Thus, transform the current Help link in the header into a Help dropdown menu, and move the links from the footer into it. Also apply the following tweaks: 1. Move the About dialog from Actions to Help. 2. Add an Introduction (to the GUI) link to Help. 3. Change the Support icon from a question mark to a group of people. 4. Change the Changelog and About icons to a filled version to match the other icons better. 5. Use a source code icon for Source Code instead of a wrench icon, and move the wrench icon to Logs. This is done to prevent Changelog and Logs from using the same icon. 6. Update all dropdown icons' Fork Awesome styles to "fa fa-fw <icon>". Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com> * a few more Fork Awesome style updates --------- Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2023-09-01gui: Fix lastSeenDays error due to undefined deviceStats when adding new ↵tomasz1986
devices (ref #8730) (#9066)
2023-08-31gui: Automatically select device ID on click (ref #8544) (#9065)tomasz1986
The CSS method to select device IDs on click was added in [1]. However, it was later mistakenly overwritten by [2]. This commit fixes the regression and also applies the same behaviour to the Edit Device modal which was omitted in the original commit. [1] 5baf5fedb5bf3acacc8eb5874a4ed10efd3effb8 [2] 5e384c918567c6b92b9ae63413639dcf9628b98e Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2023-08-31gui: Prevent modifications when saving changes (fixes #9019) (#9063)tomasz1986
2023-08-31gui: Show in GUI if limitBandwidthInLan is enabled (#9062)tomasz1986
2023-08-30lib/upgrade: Enable HTTP/2 for upgrade checks (#9060)Jakob Borg
2023-08-30lib/discover: Enable HTTP/2 for global discovery requests (#9059)Jakob Borg
By creating the http.Transport and tls.Configuration ourselves we override some default behavior and end up with a client that speaks only HTTP/1.1. This adds a call to http.ConfigureTransport to do the relevant magic to enable HTTP/2. Also tweaks the keepalive settings to be a little kinder to the server(s).
2023-08-30cmd/stdiscosrv: Streamline context handlingJakob Borg
2023-08-30cmd/stdiscosrv: Explicitly enable HTTP/2Jakob Borg
The server supports it, but it's not negotiated unless explicitly allowed in the TLS config NextProtos.
2023-08-28gui, man, authors: Update docs, translations, and contributorsSyncthing Release Automation
2023-08-23cmd/stdiscosrv: Separate HTTPS and replication certificatesJakob Borg
2023-08-23cmd/stdiscosrv: Use larger database settingsJakob Borg
2023-08-23cmd/stdiscosrv: Modernise TLS settings, remove excessive HTTP loggingJakob Borg
2023-08-23cmd/stdiscosrv: Serve compressed responsesJakob Borg
2023-08-23lib/connections: Allow IPv6 ULA in discovery announcements (fixes #7456) (#9048)v1.24.0-rc.1v1.24.0bt90
The allowed IPv4 ranges are the same as before. But we now also accept IPv6 addresses in the ULA range FC00::/7. These addresses don't require an interface identifier and are roughly equivalent to the IPv4 private ranges. Typical usecases: VPN interface IPs: Wireguard, OpenVPN, Tailscale, ... fixed IPv6 LAN addressing while the provider assigns a dynamic prefix. e.g used by pihole https://cs.opensource.google/go/go/+/refs/tags/go1.21.0:src/net/ip.go;l=146
2023-08-22lib/beacon: Check FlagRunning (#9051)bt90
2023-08-21all: Remove lib/util package (#9049)Jakob Borg
Grab-bag packages are nasty, this cleans it up a little by splitting it into topical packages sempahore, netutil, stringutil, structutil.
2023-08-21lib/model: Clean up index handler life cycle (fixes #9021) (#9038)Jakob Borg
Co-authored-by: Simon Frei <freisim93@gmail.com>
2023-08-21lib/osutil, lib/upnp: Check FlagRunning (fixes #8767) (#9047)bt90
2023-08-21build: Update dependencies (#9046)Jakob Borg
2023-08-21all: Use Go 1.21, new QUIC API (#9040)Jakob Borg
2023-08-21gui, man, authors: Update docs, translations, and contributorsSyncthing Release Automation
2023-08-17script: Remove find-metrics which belongs in docsJakob Borg
2023-08-16gui: Fix inadvertently always-false comparison (ref #7726)Jakob Borg