-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do polling based file watching for NFS on linux #2171
Do polling based file watching for NFS on linux #2171
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your contribution. Please see attached comments.
src/gui/DatabaseWidget.cpp
Outdated
@@ -1215,6 +1215,21 @@ void DatabaseWidget::updateFilePath(const QString& filePath) | |||
m_fileWatcher.removePath(m_filePath); | |||
} | |||
|
|||
#if defined(__linux) || defined(__linux__) || defined(linux) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use the Q_OS_LINUX def that Qt provides or Q_OS_UNIX if this also applies to other *nixes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will change it to Q_OS_LINUX as statfs is only available on linux.
src/gui/DatabaseWidget.h
Outdated
@@ -24,6 +24,10 @@ | |||
#include <QStackedWidget> | |||
#include <QTimer> | |||
|
|||
#if defined(__linux) || defined(__linux__) || defined(linux) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See above. Is this header available on other *nix platforms? If not, are there alternatives?
b86f14b
to
c9208ee
Compare
The Windows implementation of the QFilesystemWatcher is based on FindFirstChangeNotification, which has the same problem: I will add this as well. |
@phoerious please update your review |
c9208ee
to
443bbef
Compare
443bbef
to
8a25d4d
Compare
- New Database Wizard [#1952] - Advanced Search [#1797] - Automatic update checker [#2648] - KeeShare database synchronization [#2109, #1992, #2738, #2742, #2746, #2739] - Improve favicon fetching; transition to Duck-Duck-Go [#2795, #2011, #2439] - Remove KeePassHttp support [#1752] - CLI: output info to stderr for easier scripting [#2558] - CLI: Add --quiet option [#2507] - CLI: Add create command [#2540] - CLI: Add recursive listing of entries [#2345] - CLI: Fix stdin/stdout encoding on Windows [#2425] - SSH Agent: Support OpenSSH for Windows [#1994] - macOS: TouchID Quick Unlock [#1851] - macOS: Multiple improvements; include CLI in DMG [#2165, #2331, #2583] - Linux: Prevent Klipper from storing secrets in clipboard [#1969] - Linux: Use polling based file watching for NFS [#2171] - Linux: Enable use of browser plugin in Snap build [#2802] - TOTP QR Code Generator [#1167] - High-DPI Scaling for 4k screens [#2404] - Make keyboard shortcuts more consistent [#2431] - Warn user if deleting referenced entries [#1744] - Allow toolbar to be hidden and repositioned [#1819, #2357] - Increase max allowed database timeout to 12 hours [#2173] - Password generator uses existing password length by default [#2318] - Improve alert message box button labels [#2376] - Show message when a database merge makes no changes [#2551] - Browser Integration Enhancements [#1497, #2253, #1904, #2232, #1850, #2218, #2391, #2396, #2542, #2622, #2637, #2790] - Overall Code Improvements [#2316, #2284, #2351, #2402, #2410, #2419, #2422, #2443, #2491, #2506, #2610, #2667, #2709, #2731]
Add the ability to detect changes to the opened database if it's on NFS ( linux only ).
@jsachs referred to this fix
Description
Only on linux: before opening a database, check the type of the filesystem and if it's NFS use a polling FileSystemWatcher instead of the (default) inotify based one to detect changes.
Motivation and context
I'm running KeePassXC in an NFS environment.
How has this been tested?
Manually.
Screenshots (if appropriate):
Types of changes
Checklist:
-DWITH_ASAN=ON
. [REQUIRED]