Povilas Kanapickas
d033ffa3d8
lib/net: Use fs::is_regular_file() to check for path existence
2021-11-01 04:29:52 +02:00
Povilas Kanapickas
220f9e8274
lib/common: Remove unused file
2021-11-01 04:29:51 +02:00
Povilas Kanapickas
a2ca7e29f5
lib/common: Switch data directories to fs::path
2021-11-01 04:29:50 +02:00
Povilas Kanapickas
298980fa86
lib/common: Move DataDirectories to barrier namespace
2021-11-01 04:29:49 +02:00
Povilas Kanapickas
677612d342
lib/common: Replace PathUtilities::basename with barrier::fs equivalent
2021-11-01 04:29:48 +02:00
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
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
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
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
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
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
Felix Schmidt
0c86f1fbf9
lib: Add missing Sun keyboard keys
2021-01-10 22:13:43 +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
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
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
Peter Hutterer
1474f04f53
Remove an unreachable preprocessor directive
...
cmake sets HAVE_DPMS_PROTOTYPES unconditionally to 1 if we have the dpms
headers. So code inside HAVE_X11_EXTENSIONS_DPMS_H never needs to check for
it.
And since there's only one place that cared for this, we can remove the define
in cmake as well.
2020-12-09 14:39:13 +10:00
Peter Hutterer
f3eb89121d
Move the XTest check to cmake
...
Where the ifdef was checked, the alternative was a compiler error. We can
shortcut that process and just fail in cmake where the header is not found.
2020-12-09 14:39:09 +10:00
Peter Hutterer
38390f9b88
Undef X_DISPLAY_MISSING
...
As of f815f9840d
several years ago nothing sets
this #define anywhere anymore.
2020-12-09 14:37:10 +10:00
Peter Hutterer
0dbedd31dc
Remove trailing whitespaces
...
Many tools strip trailing whitespaces by default, so after editing a file with
whitespace errors we end up with a bunch of unrelated hunks that need to be
reverted locally.
This could be fixed by configuring each tool to not do this (at least for the
barrier repo), or, simpler, we just sed the problem away and make barrier
whitespace-compliant.
sed commands run:
sed -i 's/[ \t]\+$//' **/*.(cpp|h) **/*CMakeLists.txt
Verified with git diff --ignore-space-change, this shows the empty diff.
2020-12-09 14:02:28 +10:00
albertony
72849864a3
Remove from help text unsupported --relaunch option and note --service option is obsolete on windows
2020-12-06 18:48:01 +01:00
albertony
87c5f874e4
Include --profile-dir in help text
2020-12-05 01:12:19 +01:00
albertony
01a78a4d3a
Do not store path to ImmuneKeys.txt before --profile-dir is considered
2020-12-05 01:09:41 +01:00
Balint Reczey
bd0c671fcc
lib/ipc: Introduce writef_void(void*, ...)
...
to fix ambiguity with writef(barrier::IStream*, ...)
2020-10-22 22:46:02 +02:00
James Le Cuirot
1418196af1
Rename TEST_ENV macro to BARRIER_TEST_ENV
...
As requested in #846 .
2020-08-22 19:25:35 +01:00
Povilas Kanapickas
c3aba1b20b
Merge pull request #846 from chewi/tests
...
Add BARRIER_BUILD_TESTS and BARRIER_USE_EXTERNAL_GTEST CMake options
2020-08-22 21:21:11 +03:00
Povilas Kanapickas
7dbfa63a63
Merge pull request #847 from chewi/getenv
...
Replace all instances of C's getenv with C++'s std::getenv
2020-08-22 21:20:30 +03:00
James Le Cuirot
7aa110475e
Replace all instances of C's getenv with C++'s std::getenv
2020-08-22 19:05:24 +01:00
Povilas Kanapickas
b204520864
Merge pull request #832 from tom-tan/add-os-barrier-keymap-for-jis-kbd
...
Add key mappings for `Kana`, `Eisu_toggle` and `Muhenkan`
2020-08-22 13:47:35 +03:00
Povilas Kanapickas
d58a9fbe84
Merge pull request #803 from p12tic/crypto-cert-fixes
...
Regenerate server certificate when it is broken or has too small key size
2020-08-22 13:38:46 +03:00
James Le Cuirot
4a031b8ce5
Add BARRIER_BUILD_TESTS CMake option to make tests optional
2020-08-21 22:56:57 +01:00
Tomoya Tanjo
4aefd64add
Add missing comma
2020-08-12 18:33:32 +09:00
Tomoya Tanjo
0fdcf8b225
Add key mappings for `Kana`, `Eisu` and `Muhenkan`
2020-08-12 16:20:29 +09:00
Povilas Kanapickas
36ae769987
Merge pull request #818 from tom-tan/add-eisu-muhenkan
...
Add key entries for `Eisu_toggle` and `Muhenkan`
2020-08-07 10:57:57 +03:00
Michael Zimmermann
7452b64482
add support for keyboard backlight media keys
...
I've tested this with a german Apple Magic Keyboard with Numeric Keypad (Space Gray)
connected to a non-Apple Linux Laptop running Arch Linux.
keycode 237 (keysym 0x1008ff06, XF86KbdBrightnessDown)
keycode 238 (keysym 0x1008ff05, XF86KbdBrightnessUp)
2020-08-01 13:28:48 +02:00
Tomoya Tanjo
4d32e29275
Add Eisu_toggle and Muhenkan keys
2020-07-27 22:04:00 +09:00
Povilas Kanapickas
bd3a8be956
net: Always report the filename of the cert that fails to load
2020-07-19 11:56:14 +03:00
Povilas Kanapickas
3d0186695f
net: Simplify error reporting
2020-07-19 11:56:13 +03:00
Povilas Kanapickas
515805fc1a
Merge pull request #703 from zexee/master
...
Added toggleScreen function, using hot key to loop through all screens.
2020-06-08 18:49:49 +03:00
Chris Simons
7331519b51
add comments explaining the use of CLOG_PRINT
2020-06-06 09:51:33 -07:00
Povilas Kanapickas
2b2818c1a7
Revert "Make connection message a NOTE for consistency"
2020-06-05 21:12:44 +03:00
Povilas Kanapickas
0f29c7716d
Merge pull request #656 from galkinvv/fix-win10-cpu-usage-spikes
...
Fixes high cpu usage spikes on win10
2020-06-05 00:30:22 +03:00
GeorgH93
64a9320d61
Fix build on Windows
2020-06-03 15:48:44 +02:00
zhexiwang
b477efa706
Added toggleScreen function, using hot key to loop through all screens.
...
Comparing to switchToScreen, it is more handy since the user only need
to hit one hotkey.
2020-06-02 21:49:06 +08:00
Jonathan Martens
583b2cb5ae
Make connection message a NOTE for consistency
...
When disconnected a NOTE log entry is made in the log, when connected it just prints which seems inconsistent to me:
```
[2020-06-01T11:50:55] INFO: AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD
/home/jonathan/barrier/src/lib/net/SecureSocket.cpp,872
connected to server
[2020-06-01T11:52:43] INFO: entering screen
```
vs.
```
[2020-06-01T11:59:01] NOTE: disconnected from server
/home/jonathan/barrier/src/lib/barrier/ClientApp.cpp,315
```
Since everything else logs with a timestamp I suggest changing this to NOTE as well for connection events being logged.
2020-06-01 12:02:33 +02:00
Dom Rodriguez
b373d8eda9
Merge pull request #679 from p12tic/x11-fix-event-wait-race-condition
...
XWindowsEventQueueBuffer: Fix delays when waiting for new events
2020-05-31 00:07:14 +01:00
Povilas Kanapickas
89c6623c0e
lib/common: Remove no longer used stdexcept.h
2020-05-30 23:35:27 +03:00
Povilas Kanapickas
5eac13a969
Use noexcept instead of exception specifications
2020-05-30 23:35:27 +03:00
Dom Rodriguez
5d0f6e6f73
Merge pull request #719 from p12tic/tests
...
Fix building of tests
2020-05-30 21:14:08 +01:00
Povilas Kanapickas
13a0359c58
tests: Fix crash in XWindowsKeyStateTests
2020-05-30 22:41:25 +03:00
Povilas Kanapickas
5eafd30de4
lib/platform: Use std::string directly instead of String typedef
2020-05-30 21:46:49 +03:00
Povilas Kanapickas
a626f245a9
lib/net: Add missing include
2020-05-30 21:46:16 +03:00
Dom Rodriguez
4a2f1a9b61
Merge pull request #709 from p12tic/use-std-string-1
...
lib/base: Use std::string directly instead of String typedef
2020-05-30 18:00:54 +01:00
Dom Rodriguez
b02a20bd36
Merge pull request #712 from p12tic/use-std-string-4
...
lib/ipc: Use std::string directly instead of String typedef
2020-05-30 18:00:35 +01:00
Dom Rodriguez
df15e76e12
Merge pull request #710 from p12tic/use-std-string-2
...
lib/client: Use std::string directly instead of String typedef
2020-05-30 17:59:58 +01:00
Dom Rodriguez
4039bc2f3d
Merge pull request #711 from p12tic/use-std-string-3
...
lib/arch: Use std::string directly instead of String typedef
2020-05-30 17:59:50 +01:00
Dom Rodriguez
9368845d8e
Merge pull request #713 from p12tic/use-std-string-5
...
lib/net: Use std::string directly instead of String typedef
2020-05-30 17:59:36 +01:00
Povilas Kanapickas
787f907587
lib/ipc: Use std::string directly instead of String typedef
2020-05-30 16:00:42 +03:00
Povilas Kanapickas
61771d9039
lib/base: Use std::string directly instead of String typedef
2020-05-30 14:50:36 +03:00
Povilas Kanapickas
b4c1e4c239
lib/server: Use std::string directly instead of String typedef
2020-05-30 14:48:11 +03:00
Povilas Kanapickas
b93bcccf57
lib/net: Use std::string directly instead of String typedef
2020-05-30 14:47:11 +03:00
Povilas Kanapickas
6868491483
lib/arch: Use std::string directly instead of String typedef
2020-05-30 14:45:21 +03:00