Commit Graph

1963 Commits

Author SHA1 Message Date
Povilas Kanapickas e7d936b5d7 lib/common: Replace PathUtilities::concat with barrier::fs equivalent 2021-11-01 04:29:47 +02:00
Povilas Kanapickas bcafdc6783 src/lib: Switch to ghc::filesystem in path utilities 2021-11-01 04:29:46 +02:00
Povilas Kanapickas a987605513 lib/io: Rename fstream.h to filesystem.h 2021-11-01 04:29:45 +02:00
Povilas Kanapickas a428b61c7d gui: Add support for SHA256 fingerprints
For the time being both SHA1 and SHA256 fingerprints will be shown in
the UI. This allows users to verify new connections between old and new
versions of Barrier. After the initial verification we use SHA256
fingerprints.

The issue has been reported by Matthias Gerstner <mgerstner@suse.de>.
2021-11-01 04:07:09 +02:00
Povilas Kanapickas c7e6fc6c7e gui: Set the size of the window to the size of the contents 2021-11-01 04:07:09 +02:00
Povilas Kanapickas b7757fbd68 lib/net: Implement a way to generate fingerprint randomart
The code has been copied from OpenSSH.
2021-11-01 04:07:09 +02:00
Povilas Kanapickas a238b27879 gui: Simplify isCertificateValid() 2021-11-01 04:07:09 +02:00
Povilas Kanapickas 7cced74119 lib/net: Use FingerprintData to represent fingerprints 2021-11-01 04:07:09 +02:00
Povilas Kanapickas 50534ecb43 lib/net: Use new FingerprintDatabase to handle fingerprints 2021-11-01 04:07:09 +02:00
Povilas Kanapickas be8ba0d132 gui: Use new FingerprintDatabase to handle fingerprints 2021-11-01 04:07:09 +02:00
Povilas Kanapickas 9cac96b4af lib/net: Implement a reusable fingerprint database 2021-11-01 04:07:09 +02:00
Povilas Kanapickas 3e71b468f6 lib: Remove useless empty constructors 2021-11-01 04:07:09 +02:00
Povilas Kanapickas 8f88dc2585 lib/base: Support colons in from_hex() 2021-11-01 04:07:09 +02:00
Povilas Kanapickas aa3afa9062 Use openssl library instead of CLI to generate certificates 2021-11-01 04:07:09 +02:00
Povilas Kanapickas dbf56a9375 gui: Use openssl library instead of CLI tool to generate fingerprints 2021-11-01 04:07:09 +02:00
Povilas Kanapickas cf732aba37 lib/io: Add a replacement for fopen() which works on Windows
fopen() does not correctly handle non-ASCII paths on Windows.
2021-11-01 04:07:09 +02:00
Povilas Kanapickas 089b8e4749 lib/net: Extract SSL fingerprint generation to reusable function 2021-11-01 03:19:47 +02:00
Povilas Kanapickas 85486927b3 lib/base: Implement pattern to execute something at function exit 2021-11-01 03:19:47 +02:00
Povilas Kanapickas cd7e731cb7 lib: Switch to std::vector<std::uint8_t> for fingerprint data 2021-11-01 03:19:47 +02:00
Povilas Kanapickas ef08470286 src/lib: Use standard std::vsnprintf() instead of hacking our own 2021-11-01 03:19:47 +02:00
Povilas Kanapickas b793675ef8 lib/net: Put secure utils into barrier namespace 2021-11-01 03:19:47 +02:00
Povilas Kanapickas a9b30951ce lib: Add utility function to convert from hex to binary 2021-11-01 03:19:47 +02:00
Povilas Kanapickas 767f3d37ec test: Extract common test utilities to separate file 2021-11-01 03:19:47 +02:00
Povilas Kanapickas 9d8e1faf59 test: Add test for format_ssl_fingerprint() 2021-11-01 03:19:47 +02:00
Povilas Kanapickas 96e0021572 lib/base: Make to_hex() easier to use 2021-11-01 03:19:47 +02:00
Povilas Kanapickas 7f71924a86 lib/net: Make format_ssl_fingerprint() easier to use 2021-11-01 03:19:47 +02:00
Povilas Kanapickas 0e406d4918 lib/net: Extract fingerprint formatting out of SecureSocket 2021-11-01 03:19:47 +02:00
Povilas Kanapickas bfa8964305 Enable encryption by default 2021-11-01 03:00:09 +02:00
Povilas Kanapickas d24f368efe Correctly open files with non-ASCII paths on Windows
This fixes #976, fixes #974, fixes #444.

On Windows the standard stream open() functions expect bytes encoded in
current system encoding, not UTF8. Since we're dealing with UTF8
throughout the application this results in wrong paths being passed and
failure to open files. As a solution, we convert the paths to UTF16 via
the WCHAR character type and use the special Windows-specific overloads
of open() functions.
2021-10-30 01:03:09 +03:00
Povilas Kanapickas 8286c85dc0 lib/common/win32: Extract unicode_to_mb() to separate file 2021-10-30 01:03:09 +03:00
Povilas Kanapickas 15a955ff21 Revert "Use ansi codepage for internal multibyte strings on windows"
This reverts commit 402801e0a6.

We should use UTF8 throughout the application and convert to platform
encodings only at the edge. Otherwise it's not clear which data uses
which encoding and we result in extremele brittle system.
2021-10-30 01:03:09 +03:00
Andrew Shark 547a2dd413 Add warning on wayland, fix #247 2021-10-02 03:21:04 +03:00
a1346054 872e78d342
Trim excess whitespace 2021-09-23 00:20:58 +00:00
a1346054 9c41441861
Fix whitespace alignment 2021-09-23 00:20:55 +00:00
a1346054 9549352a10
Fix codestyle deviations 2021-09-23 00:20:54 +00:00
a1346054 8c014b4bb6
Fix spelling 2021-09-23 00:20:54 +00:00
a1346054 3aee8dd341
Add missing final newline 2021-09-22 22:58:16 +00:00
Peter Hutterer dec895e8d3 cmake: move two windows #defines to the main cmake file
We have a check for windows here anyway, let's move the defines here and we
can drop it in the common header file. And since on Unix HAVE_CONFIG_H is
always defined, we can drop the else condition too.
2021-08-20 15:27:39 +10:00
Peter Hutterer c32ca2195d barrier: split the platform-specific argument parsing
Instead of one function with several ifdefs, split into several functions
to make the code more readable.

No functional changes.
2021-08-20 15:27:39 +10:00
Tomoya Tanjo 7a4c6a25d7
Add `Henkan`, `Muhenkan` and `Zenkaku` entries to macOS
Note: these keys are sometimes referred as `international4` and `international5`, respectively.
2021-06-27 17:07:45 +00:00
Tomoya Tanjo eec676948c
Add `IME on` and `IME off` key entries to Windows
Note that these key codes are same as Kana and EisuToggle keys in macOS, respectively.
See also: https://docs.microsoft.com/en-US/windows-hardware/design/component-guidelines/keyboard-japan-ime#hid-usage-ps2-scan-code-and-virtual-key-code-for-imeon-key--imeoff-key
2021-06-27 17:05:26 +00:00
Tomoya Tanjo 14b5cebb62
Fix keycode for `Kana` in Windows key mapping 2021-06-27 17:00:42 +00:00
Povilas Kanapickas de89c9d45e
Merge pull request #1113 from HwiNyeonKim/master
Missed Korean translation part edited
2021-06-23 17:20:44 +03:00
HwiNyeon Kim 00cfe0ba6d Missed Korean translation part edited
Some parts that still written as "Synergy" in Korean installation process edited to "Barrier."
2021-06-23 16:26:03 +03:00
gloomy-ghost 63d60a14f8 update zh-CN translations 2021-06-23 16:22:42 +03:00
Jose Riha 9a0bbbaaec Update Slovak translation 2021-06-21 21:28:32 +03:00
Povilas Kanapickas 649fdfe042
Merge pull request #1156 from botovq/client_ciphers
Remove #if defined(LIBRESSL_VERSION_NUMBER) path
2021-06-13 18:43:37 +03:00
Chih-Hsuan Yen cad92e89d0
Map more X11 clipboard MIME types to corresponding converters
The following logs are extracted from pasting texts to Firefox's address
bar and a Google Doc page in Firefox, respectively.

[2021-05-16T00:03:14] DEBUG1: request for clipboard 342, target text/plain;charset=utf-8 (600) by 0x03000044 (property=GDK_SELECTION (511))

[2021-05-16T00:03:22] DEBUG1: request for clipboard 342, target application/x-moz-nativehtml (603) by 0x03000044 (property=GDK_SELECTION (511))

Inspired by https://github.com/debauchee/barrier/pull/461. Should fix
pasting unicode on X11 https://github.com/debauchee/barrier/issues/344.
2021-05-16 00:27:57 +08:00
Theo Buehler a29a93f0c8 Remove #if defined(LIBRESSL_VERSION_NUMBER) path
The SSL_get_client_ciphers API has been available since LibreSSL 2.9.1
and is thus present in all supported versions (3.2.x and 3.3.x). In
the upcoming LibreSSL 3.4.x release the SSL_CIPHER struct will become
opaque hence the build will break.
2021-05-06 20:57:15 +02:00
cryzed 06c1a5908c Fixes #1066 2021-02-16 02:35:13 +01:00
Povilas Kanapickas 12024b9a5d
Merge pull request #1031 from albertony/keyboard_ui
Enable use of keyboard to modify screens
2021-01-25 22:52:18 +02:00
albertony 4ee6a54d41 Enable use of keyboard to modify screens 2021-01-25 21:32:19 +01:00
Povilas Kanapickas 8202fe1fc7
Merge pull request #986 from albertony/rc_version_info
Add version info to windows main exe resource
2021-01-25 22:11:34 +02:00
cjaone 5de519d89b 100% German translation 2021-01-22 20:47:47 +01:00
albertony 31ce5cbdf8 Add version info to windows main exe resource 2021-01-22 08:29:01 +01:00
Eike cf231aef03 Corrected spelling in gui_de.ts 2021-01-11 14:20:42 +01:00
Povilas Kanapickas 4d00a1304d gui: Update compiled translation resources 2021-01-11 00:46:38 +02:00
Povilas Kanapickas 3f268a5099 gui: Make langbuild script executable 2021-01-11 00:46:18 +02:00
maboroshin a2753a76ce translation: ja-JP Barrier's Resources 2021-01-11 00:44:44 +02:00
maboroshin e7d5f25fea translation: ja-JP Untranslated part 2021-01-11 00:44:12 +02:00
Tobias Kellner 297de775a3 gui: Add autoStart setting 2021-01-11 00:13:34 +02:00
Felix Schmidt 0c86f1fbf9 lib: Add missing Sun keyboard keys 2021-01-10 22:13:43 +02:00
Dustin Lieu adc49fa066 gui: Fix invalid config being written for hotkeys with multiple actions 2021-01-10 16:38:25 +02:00
Dustin Lieu a48f183ee1 gui: Added special hotkey config rules for comma and semicolon 2021-01-10 15:40:15 +02:00
Povilas Kanapickas def2ef2a9f gui/test: Add tests for Hotkey serialization via QTextStream 2021-01-10 15:28:09 +02:00
Povilas Kanapickas 7befd121d4 gui/test: Remove testing of different QSettings formats
QSettings guarantees are provided regardless of the format and until we
use a custom format it does not make sense to verify guarantees provided
by Qt.
2021-01-10 15:28:08 +02:00
Povilas Kanapickas 141f6de2c4 gui/test: Extract createHotkey() 2021-01-10 15:28:07 +02:00
Povilas Kanapickas a004cd8eba gui/test: Put createAction() to anonymous namespace 2021-01-10 15:28:06 +02:00
Povilas Kanapickas 0259703cb2 gui: Use range-based for loop instead of foreach macro 2021-01-10 14:50:29 +02:00
Povilas Kanapickas 36fa9eaa0e lib: Remove unnecessary use of std::endl
std::endl is "\n" followed by a flush. We only need flushing in certain
circumstances.
2021-01-10 14:28:42 +02:00
Povilas Kanapickas a8a2b7c29a gui: Remove ScreenList typedef
This typedef just introduces an additional layer of indirection to
understand code.
2021-01-10 14:13:45 +02:00
Povilas Kanapickas 384dbffce4 gui: Remove HotkeyList typedef
This typedef just introduces an additional layer of indirection to
understand code.
2021-01-10 14:13:44 +02:00
Povilas Kanapickas ac60e620ba gui: Remove ActionList typedef
This typedef just introduces an additional layer of indirection to
understand code.
2021-01-10 14:13:43 +02:00
Povilas Kanapickas fb067d4001 gui/test: Add tests for Hotkey serialization to QSettings 2021-01-10 13:50:33 +02:00
Povilas Kanapickas 68cfb4e585 gui: Don't use friends to limit access to Action 2021-01-10 13:50:33 +02:00
Povilas Kanapickas 0579101272 gui: Don't use friends to limit access to Hotkey 2021-01-10 13:50:33 +02:00
Povilas Kanapickas a691b31b8e gui: Make access to hotkey actions explicit 2021-01-10 13:50:33 +02:00
Povilas Kanapickas 016393fb67 gui: Remove unnecessary accessor to private member in Hotkey 2021-01-10 13:50:33 +02:00
Povilas Kanapickas e7da893f5a gui/test: Extract temporary file creation to a separate file 2021-01-10 13:50:33 +02:00
Povilas Kanapickas 7f76d3cdcc gui/tests: Use common per-platform libs variable for dependencies 2021-01-10 13:50:14 +02:00
Povilas Kanapickas 88c0c030f8 gui: Add tests for KeySequence serialization 2021-01-07 23:43:54 +02:00
Povilas Kanapickas 1c434df87a gui: Remove unnecessary accessor to private member in KeySequence 2021-01-07 23:43:53 +02:00
Povilas Kanapickas 3f387bdad0 gui: Fix incorrect parameter order in KeySequence::appendKey() 2021-01-07 23:43:52 +02:00
Povilas Kanapickas acc54de922 src: Extract test CMake setup to separate file 2021-01-07 23:43:51 +02:00
Povilas Kanapickas 01b97d0c2a gui: Explicitly set the lists of source files 2021-01-07 23:43:50 +02:00
Povilas Kanapickas 1d5fcfa3af gui: Remove qmake project 2021-01-07 23:43:49 +02:00
Povilas Kanapickas 6b317359ba gui: List all source files explicitly for the lupdate tool
This will allow us to remove the last dependency on gui.pro
2021-01-07 23:43:48 +02:00
Peter Hutterer d5799f37d3 CMakeList: fix a tab vs spaces indentation issue
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-01-03 22:49:45 +02:00
Eugene Golushkov 09e1dbdf84 platform: Fixed processing of non-ASCII symbols
The non-ASCII symbols missing in CP_THREAD_ACP but present in current KB
layout were processed incorrectly. Do not rely on ANSI => UTF16
conversion, obtain UTF16 directly from KB layout driver. BTW, ToAscii is
implemented via ToUnicode + RtlUnicodeToMultiByteN, so this is really
optimization.
2020-12-30 13:00:22 +02:00
albertony 402801e0a6 Use ansi codepage for internal multibyte strings on windows (fixes #976, fixes #974, fixes #444) 2020-12-28 21:17:40 +01:00
albertony 36d9efbc64 Increased loglevel of central drag drop related messages 2020-12-10 01:11:49 +01:00
albertony b125cf3da7 Improve drag&drop stability on windows 2020-12-10 00:08:49 +01:00
albertony 357e0ccc7e Configurable drop directory 2020-12-10 00:08:42 +01:00
Povilas Kanapickas e66832c1d7
Merge pull request #978 from albertony/rc_version_info
Add version info resource to windows exe
2020-12-10 00:05:58 +02:00
Povilas Kanapickas bbea197600
Merge pull request #973 from albertony/obsolete_service_help
Cleanup obsolete options in help text
2020-12-10 00:00:44 +02:00
Povilas Kanapickas 2da6cb3a51
Merge pull request #969 from albertony/profile_dir
Improvements to custom profile dir option
2020-12-09 23:55:56 +02:00
Povilas Kanapickas ce31584a6b
Merge pull request #980 from whot/wip/strip-trailing-whitespace
Remove trailing whitespaces
2020-12-09 23:54:44 +02:00
Povilas Kanapickas 829ff7975b
Merge pull request #981 from whot/wip/simplify-ifdefs
Remove some #defines that had no useful effect
2020-12-09 23:52:47 +02:00
albertony bc5c4bf344 langbuild 2020-12-09 22:40:10 +01:00
albertony 390555c53d Fix file extension filter in config save dialog (fixes #375) 2020-12-09 21:46:56 +01:00