Commit Graph

1868 Commits

Author SHA1 Message Date
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
albertony 366342e401 Add resource with icon and version info to windows deamon exe 2020-12-09 14:14:18 +01:00
albertony aea488167a Cleanup windows client and server exe resource build 2020-12-09 14:14:18 +01:00
albertony 5fdb750922 Add version info to windows client and server exe resources 2020-12-09 13:45:32 +01: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
Povilas Kanapickas 06951ea9f0
Merge pull request #926 from rbalint/master
lib/ipc: Introduce writef_void(void*, ...)
2020-11-23 18:38:03 +02:00
aeghn 95afed5256 Make barrier try to read tray icons from themes now. 2020-10-27 14:11:11 +08: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
NikoHD203 4aee34848e
Update gui_de.ts
wrong grammar
2020-09-09 11:52:55 +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
James Le Cuirot fa46480c35
Respect DISPLAY environment variable in XWindows tests
XWindowsScreenTests was failing under Gentoo's package manager. I have
also addressed this in XWindowsScreenSaverTests, which is currently
unused.
2020-08-22 17:36:55 +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 bd1db368b3
Add BARRIER_USE_EXTERNAL_GTEST CMake option to use external GTest 2020-08-21 23:13:58 +01: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 c815abf0e8 gui: Show certificate-related info in logs 2020-07-19 11:56:18 +03:00
Povilas Kanapickas 345bb4b62b gui: Regenerate certificate if it's invalid or the key is too small 2020-07-19 11:56:17 +03:00
Povilas Kanapickas 7210bfa615 gui: Extract certificate path generation to separate functions 2020-07-19 11:56:16 +03:00
Povilas Kanapickas 93ef15774b gui: Don't store openssl output as state of the object 2020-07-19 11:56:15 +03: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
Niklas Hambüchen 03c1f06878 ui: Settings: Explain what "double tap" means 2020-06-14 20:16:03 +02: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 64265e926f tests: Disable test that depends on external state 2020-05-30 22:41:27 +03:00
Povilas Kanapickas 460f5df838 test: Fix undefined behavior of deleting incomplete type 2020-05-30 22:41:26 +03:00
Povilas Kanapickas 13a0359c58 tests: Fix crash in XWindowsKeyStateTests 2020-05-30 22:41:25 +03:00
Povilas Kanapickas f23e8a6ad9 test: Update to new APIs 2020-05-30 22:41:24 +03:00
Povilas Kanapickas 7868043ac4 test: Fix referenced library name 2020-05-30 22:41:23 +03:00
Povilas Kanapickas a6e5e47366 test: Remove unresolved merge conflict markers 2020-05-30 22:41:22 +03:00
Povilas Kanapickas 56f1232352 test: Reduce the number of implicit include directories 2020-05-30 22:41:21 +03:00
Povilas Kanapickas b99ca80eaa test: Enable building of tests 2020-05-30 22:41:20 +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 e354d79d81
Merge pull request #706 from jmartens/patch-1
Fix Auto config missing hostname prompt #704
2020-05-30 18:28:13 +01:00
Dom Rodriguez 5522d077aa
Merge pull request #708 from p12tic/enum-class
gui: Use enum class to scope enum values
2020-05-30 18:04:01 +01: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
Povilas Kanapickas a0af288b2b lib/client: Use std::string directly instead of String typedef 2020-05-30 14:42:59 +03:00
Povilas Kanapickas 94a280a82b gui: Use enum class to scope enum values 2020-05-30 13:46:40 +03:00
Vasily Galkin 95f2a840be Windows 8+: make waiting for messages correspond to emptiness check
Fixes high cpu usage spikes on win10.
When queue was containing messages of only non-QS_POSTMESSAGE type the
"while (m_buffer->isEmpty())" busy-looped in EventQueue::getEvent
since isEmpty was true (checked only QS_POSTMESSAGE message type),
but waitForEvent returned immediately (checked more message types).

Investigation shows that the difference was introduced in
https://github.com/debauchee/barrier/commit/dbfb04a6e
to fix a problem with bad behaviour of GetQueueStatus
Researching showed that a similar problem was fixed in Qt,
and the solution was
"pass different flags to GetQueueStatus depending on version of windows"
https://bugreports.qt.io/browse/QTBUG-29097

So this patch makes changes to a barrier non-GUI core similar to Qt fix.
2020-05-29 14:09:48 +03:00
Jonathan Martens 21eadc9661
Fix Auto config missing hostname prompt #704
I think this might fix the prompt for a missing hostname when auto config is checked
2020-05-29 10:11:55 +02:00
Povilas Kanapickas 722b7d6cc4 XWindowsEventQueueBuffer: Fix delays when waiting for new events
QLength() may return 0 even if there are events pending because they
need to be read from the display socket in order to become visible. We
must use XPending() which will poll the socket if QLength() == 0.
2020-05-20 22:11:14 +03:00
Vasily Galkin 8ab6ad64f9 Remove unused IEventQueue::isEmpty() method to simplify code understanding
Current code base don't use IEventQueue::isEmpty() method.
Remove it to simplify IEventQueue API and to remove confusion with
IEventQueueBuffer with same name.

The IEventQueueBuffer::isEmpty() and all its implementations kept unchanged
2020-05-13 01:35:40 +03:00
Dom Rodriguez dbd10820c3
Merge pull request #585 from chewi/pthread
Use -pthread flag and simplify pthread build logic
2020-05-12 23:13:16 +01:00
Dom Rodriguez fe0f3303d7
Merge pull request #655 from simons-public/elevate-bind-failure-to-error
Elevate XSocketAddressInUse to ERROR
2020-05-12 23:06:15 +01:00
Dom Rodriguez 81d4758c28
Merge pull request #579 from eson57/patch-1
Update gui_sv.ts
2020-05-12 22:09:21 +01:00
Dom Rodriguez dc2869f48b
Merge pull request #664 from simons-public/fix-gui-status
Change log level on several status messages (Fixes #652, Fixes #516)
2020-05-12 21:40:38 +01:00
Ben Plessinger 5636e9cb40
A few more log cleanups
Fix a few more log messages to be consistent
2020-05-12 15:49:19 -04:00
Dom Rodriguez 5d82510ee8
Merge pull request #653 from simons-public/tis-tsm-fix
Fix TIS/TSM in logs
2020-05-12 18:54:57 +01:00
Chris Simons a9421a9cd3 Change log level on several status messages (Fixes #652, Fixes #516)
This changes the log level for several statuses (started server,
connected to server, server status:) from CLOG_NOTE or CLOG_INFO to
CLOG_PRINT so they will be printed to stdout regardless of the log
level. This allows the GUI to accurately report the status of the
`barriers` or `barrierc` processes in src/gui/src/MainWindow.cpp#L379-L399.
2020-05-11 20:36:51 -07:00
Chris Simons 7a2b38ad56 replace tabs with spaces 2020-05-07 16:56:42 -07:00
Chris Simons 6653de6450 Allow selecting Fingerprint Qlabel
Setting the Fingerprint label to TextSelectableByMouse allows users to
copy/paste the fingerprint so it can be easily added to "TrustedServers.txt"
on a client machine (i.e. via SSH).
2020-05-06 20:40:17 -07:00
Chris Simons b3349ddfec Elevate XSocketAddressInUse to ERROR
Errors where the socket address is in use will keep the server from connecting
with clients. This should be reported as an ERROR instead of a warning. Also,
if the retry time is shorter issues will be more obvious, since the error will
cause the log to scroll visibly.
2020-05-06 15:36:34 -07:00
Chris Simons 30c77497df Fix TIS/TSM in logs
Silences the "is calling TIS/TSM in non-main thread environment"
messages in the log when running a MacOS server as it is a red herring
that causes a lot of issues to be filed.
2020-05-06 15:32:46 -07:00
James Le Cuirot af0ce63733
Only require Qt5 when building the GUI
Commit 6c888437 made Qt5 mandatory for all builds when it is only
required for the GUI. There's already a find_package call in src/gui,
it just needed the REQUIRED flag to be added.
2020-03-17 22:45:20 +00:00
James Le Cuirot a0b3124f80
Use -pthread flag and simplify pthread build logic
Sometimes -lpthread is not enough. This has caused build failures on
Gentoo Linux in the past.

The logic also seems needlessly complex. We check for HAVE_PTHREAD on
UNIX platforms even though CMake errors out if pthreads are not
found. Similarly, we have a fallback for HAVE_PTHREAD_SIGNAL being
false even though we always set it to true.
2020-03-10 21:10:48 +00:00
Åke Engelbrektson 6fb4512617
Update gui_sv.ts
Hi, 
Please, add updated Swedish translation.
2020-03-03 10:57:39 +01:00
Vasily Galkin c79120c049 Fix infinite loop on fast TCP disconnection
The commit a841b28 changed the condition for removing job from processing.
New flag MultiplexerJobStatus::continue_servicing become used
instead of checking pointer for NULL.
However for cases when TCPSocket::newJob() returns nullptr
the behaviour changed: earlier the job was removed, but after change
it is called again, since MultiplexerJobStatus equal to {true, nullptr}
means "run this job again".

This leads to problem with eating CPU and RAM on linux
https://github.com/debauchee/barrier/issues/470

There is similar windows problem, but not sure it is related.
https://github.com/debauchee/barrier/issues/552

Since it looks that the goal of a841b28 was only clarifying
object ownership and not changing job deletion behaviour,
this commit tries to get original behaviour and fix the bugs above
by returning {false, nullptr} instead of {true, nullptr}
when TCPSocket::newJob() returns nullptr.
2020-02-09 23:27:26 +03:00
Keegan Quinn 3d832fd728 Cast values to fix build errors on OS X 10.11. 2019-11-24 12:40:13 -08:00
Daniel Seither 8ef0668b09 Let tray image blend into macOS menu bar
The expected style for macOS menu bar images is a template image than
can adapt to the user's appearance settings. Also, high-res screens
("Retina" in Apple speak) need higher resolution images.

Based on /res/barrier.svg, I created black and transparent SVGs for the
three icon states. I had to remove some details to make the image scale
down to icon size without becoming too crowded, and I drew a new
checkmark and the transfer arrow.
2019-11-21 10:45:08 +01:00
Daniel Seither dc2d8e9661 Add override specifiers 2019-11-19 12:04:55 +01:00
Daniel Seither 937326bf4f OSXDragView: Get rid of uninitialized variable warning 2019-11-19 12:04:29 +01:00
Daniel Seither 96e8adbaae IpcLogOutputter: Put member initializers in execution order
Member initializers are always run in the order defined in the header.
This commit reorders them in the implementation so that their order
reflects their execution order.
2019-11-19 12:03:53 +01:00
Daniel Seither da3876325d Remove unused variables 2019-11-19 12:01:37 +01:00