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
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
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
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
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
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
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
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
Casey Barton
69a65e4725
Merged mouse drift fix from synergy-core
2019-09-03 13:24:46 -04:00
Adrian Lucrèce Céleste
fca05b9163
Use standard mutex APIs instead of the home-grown wrapper ( #410 )
...
Use standard mutex APIs instead of the home-grown wrapper
2019-08-22 15:01:35 -04:00
Adrian Lucrèce Céleste
7bb541ea91
Merge pull request #411 from p12tic/rewrite-memory-management
...
Use explicit memory ownership in SocketMultiplexer
2019-08-22 15:01:21 -04:00
Adrian Lucrèce Céleste
ccfa10f2a0
Merge pull request #391 from EbonJaeger
...
Re-implement patch for horizontal scrolling and extra mouse buttons
2019-08-22 14:57:46 -04:00
Adrian Lucrèce Céleste
e31ebc1b22
Merge pull request #408 from p12tic/fix-ssl-mem-leak
...
Fix memory leak during SSL socket shutdown
2019-08-22 12:54:27 -04:00
Povilas Kanapickas
3600f4b255
Fix retry timer not being unregistered properly
...
This is cherry-pick of 70ba53caf4
from symless/synergy-core
2019-08-22 18:11:03 +03:00
Povilas Kanapickas
b0e415de03
Fix race condition in IArchString
...
Even though the calls to C functions are protected with a mutex, the
initialization and destruction of the mutex itself had race conditions.
2019-08-17 16:40:25 +03:00
Povilas Kanapickas
83d0639230
Use std::mutex instead of ArchMutex in IpcLogOutputter
2019-08-17 16:40:24 +03:00
Povilas Kanapickas
93c04bb2fa
Use std::mutex instead of ArchMutex in IpcClientProxy
2019-08-17 16:40:23 +03:00
Povilas Kanapickas
36f3235f51
Use std::mutex instead of ArchMutex in IpcServer
2019-08-17 16:40:22 +03:00
Povilas Kanapickas
d9d39040ae
Use std::mutex instead of ArchMutex in Log
2019-08-17 16:40:21 +03:00
Povilas Kanapickas
9df4741748
Use std::mutex instead of ArchMutex in EventQueue
2019-08-17 16:40:20 +03:00
Povilas Kanapickas
f71c68506e
Use std::mutex instead of ArchMutex in ArchMultithreadPosix
2019-08-17 16:40:19 +03:00
Povilas Kanapickas
a841b2858f
Make ownership of SocketMultiplexerJob explicit
2019-08-17 16:17:50 +03:00
Povilas Kanapickas
8dd6bc2c55
Make ownership of SocketMultiplexer explicit
2019-08-17 16:17:49 +03:00
Evan Maddock
0cd2e6bb6c
Use Windows helper function to check for Windows version
...
Signed-off-by: Evan Maddock <maddock.evan@vivaldi.net>
2019-08-06 17:02:37 -04:00
Evan Maddock
00c18b4c92
Used the wrong key button by accident
...
Signed-off-by: Evan Maddock <maddock.evan@vivaldi.net>
2019-08-06 15:23:22 -04:00
Evan Maddock
9f15b1bcf2
Reimplement patch for horizontal scrolling and extra mouse buttons
...
Signed-off-by: Evan Maddock <maddock.evan@vivaldi.net>
2019-08-05 21:59:43 -04:00
Patrizio Tufarolo
40ee389296
Fixed quote key on US International keyboard
...
Fixes single quote key on US international keyboard, backported from symless/synergy-core#6448
2019-07-10 09:28:22 -04:00
Chun Wang
0f5cdecf51
Fix #232 MACOS serious config file errors - hotkeys totally broken
2019-06-14 12:22:56 -07:00
Povilas Kanapickas
71f2ca7c35
Fix memory leak during socket shutdown
2019-03-13 10:14:29 +03:00
Szymon Szeląg
b8ca2d0381
Fire screen switch event on client disconnect
2019-02-10 17:41:17 +01:00
Szymon Szeląg
bf1fd35237
Start script via execl
2019-02-09 19:02:27 +01:00
Szymon Szeląg
783fbbd84d
Use std::system
2019-02-05 23:08:39 +01:00
Szymon Szeląg
24b3ee547c
Screen change script argument
2019-02-05 19:44:14 +01:00
Adrian Lucrèce Céleste
4afe5ddf87
Merge pull request #210 from ignac/master
...
Fix #204 modifier keys not working in remote desktop on MacOS
2018-12-30 14:50:17 -05:00
jwestfall
94f8336af5
Properly deal with a socket that is readable and writable at the same time
...
Its possible poll() will return that a socket is both readable and
writable. When this happens TCPSocket::serviceConnected() is
overwriting the result from doWrite() with the result from doRead()
This can cause a situation where doWrite() tried to notify that we
should stop polling if the socket is writable, but the doRead() result
causes that to be ignored. This results in a tight loop and 100% cpu
usage in SocketMultiplexer::serviceThread() as the poll() call
instantly returns that the socket is writable, but no one cares that
it is. The issue eventually corrects itself with enough mouse
movement/clicks.
2018-12-28 14:03:42 -08:00
Moron
03f9009d10
Fix #204 modifier keys not working in remote desktop on MacOS
2018-12-28 17:26:51 +01:00
Dayne Broderson
1b99390c96
fixing style to be consistent per @p12tic
2018-12-26 14:57:19 -05:00
Dayne Broderson
d4a2a055cc
fix spelling of matches
2018-12-26 14:57:19 -05:00
Dayne Broderson
5f71b47b5a
add debug notes to help identify where trusted fingerprints file is
2018-12-26 14:57:19 -05:00
Monika Kairaityte
14a7ca0848
Fix tests wrapper
2018-11-21 17:39:33 -05:00
Monika Kairaityte
51118014b1
x11: Wrap platform functions in XWindowsEventQueueBuffer class
2018-11-12 23:09:27 -05:00
Monika Kairaityte
2c32270d49
x11: Wrap platform functions in XWindowsKeyState class
2018-11-12 23:09:27 -05:00
Monika Kairaityte
624a718f2d
x11: Wrap platform functions in XWindowsClipboard class
2018-11-12 23:09:27 -05:00
Monika Kairaityte
ce3e8243a9
x11: Wrap platform functions in XWindowsScreenSaver class
2018-11-12 23:09:27 -05:00
Monika Kairaityte
be45440e84
x11: Wrap platform functions in an interface that can be mocked later
2018-11-12 23:09:27 -05:00
walker0643
53ebc47ace
Merge pull request #106 from coypoop/master
...
Small patches for netbsd
2018-09-08 19:09:56 -04:00
Josh Stone
7a0bc3abb7
Fix data indexes in Unicode::fromUTF8
2018-08-29 14:40:39 -07:00
Pawel Bogut
af8bbf2674
Fix config file name in server help message
2018-08-09 07:54:30 +02:00
coypu
443e656be2
Use ${CMAKE_DL_LIBS} rather than listing OSes.
...
CMake makes our lives easier. Needed for NetBSD, which also
doesn't have libdl.so.
2018-08-02 15:46:01 +03:00
walker0643
53ee9c7803
Merge pull request #64 from p12tic/osx-server-jumpy-scrolling
...
Improve precision of grabbed scroll events on OSX server
2018-06-30 16:40:10 -04:00
Povilas Kanapickas
76c39aaf4e
Accumulate scrolls less than supported scroll on XWindows
...
This fixes barrier case #67 and synergy case #5670 .
2018-06-21 00:50:08 +03:00
Povilas Kanapickas
a645e9a296
Improve precision of grabbed scroll events on OSX server
...
This is barrier issue #63 , synergy issue #5672 .
2018-06-21 00:13:40 +03:00
walker0643
0b2dfd80e2
move protocol version to new line in --version output (fix display issue in created manpages)
2018-05-14 12:23:24 -04:00
walker0643
9ab77545ee
fix ipv6 handling between GUI and barriers/barrierc; zero-fill sockaddr_in(6) structs prior to initializing; update --help output
2018-05-12 17:42:55 -04:00
walker0643
f4301a7618
fix usage of m_pname and rename to m_exename
2018-05-12 17:32:26 -04:00
walker0643
642eb33446
make linux/bsd data directory conform to freedesktop standards. fixes #31
2018-05-07 12:57:06 -04:00
walker0643
a7fb1b56f6
Merge branch 'master' into nosyntool
2018-04-01 21:14:32 -04:00
walker0643
5e19820425
remove dangling handler..fixes race condition when a clipboard event is queued but not dispatched before disconnect
2018-04-01 21:13:56 -04:00
walker0643
9e7792e2ae
add comment re C++17 to MSWindowsUtil.cpp
2018-04-01 14:57:22 -04:00
walker0643
42a8f69050
better comments in PathUtilities.cpp
2018-04-01 14:47:34 -04:00
walker0643
767188799e
add desktop name to DEBUG output. when is desktop ever NOT "Default" ?
2018-04-01 13:59:14 -04:00
walker0643
e6d0f40a36
add legal header to new files
2018-04-01 12:43:55 -04:00
walker0643
129e61a33a
server should look for config in the profile() dir rather than the personal() dir. removed personal() since it is no longer used.
2018-03-31 22:48:59 -04:00
walker0643
4c04f39685
reimplement path operations basename() and concat() in Common. these were the last bits remaining in ArchFile* so it was removed
2018-03-31 22:41:00 -04:00
walker0643
131a19d478
reimplement ArchFile*::getSystemDirectory() as DataDirectories::systemconfig(). windows will now use ProgramData by default rather than C:\Windows
2018-03-30 14:39:12 -04:00
walker0643
6c5acdd552
remove DataDirectory wrappers in ArchFile*
2018-03-30 14:01:18 -04:00
walker0643
d81054ab6e
remove some stale code and put windows service logfile in a better spot
2018-03-29 21:41:30 -04:00
walker0643
1be86a9248
remove syntool, CoreInterface, and WebClient
2018-03-29 17:14:57 -04:00
walker0643
451bd72b30
MSWindowsWatchdog checks active desktop without external call to syntool
2018-03-29 16:32:51 -04:00
walker0643
c16fd089f6
old personal and profile directory functions now wrap the new implementations
2018-03-29 16:12:45 -04:00
walker0643
96627f4f07
reimplement finding personal & profile directories on unix (not yet used)
2018-03-29 15:54:41 -04:00
walker0643
c5e70af09a
DataDirectories header should be shared between platform-specific implementations
2018-03-29 15:50:23 -04:00
walker0643
72cc7e3d89
link gui with common; reimplement finding personal and profile directories on windows (not yet used)
2018-03-29 14:01:07 -04:00
walker0643
fe818a4955
add console for ctrl+c to daemon app when debugging in foreground
2018-03-29 12:02:35 -04:00
walker0643
ecfa7d7d1c
fix windows build
2018-03-24 15:47:51 -04:00
walker0643
9a2d61cbb5
Merge pull request #19 from debauchee/ipv6
...
Add ipv6 support
2018-03-24 15:09:20 -04:00
walker0643
d75bdb8ec0
clean up --help output for barriers/barrierc at kloetzl's request. ref commit 63a7936
2018-03-17 16:55:53 -04:00
walker0643
63a7936e9f
update manpages and --help output. fixes #23
2018-03-16 21:27:03 -04:00
walker0643
3389a980ea
remove bogus check for logonui.exe. it was causing false-positives for the need to elevate
2018-03-13 18:04:29 -04:00
walker0643
51abdc281d
make DaemonApp a win32-only target
2018-03-11 13:14:45 -04:00
walker0643
b9a59c014f
don't build barrierd for non-windows platforms; removed some synergy-related legacy checks
2018-03-11 12:48:59 -04:00
walker0643
24987e0694
merge modified patch from synergy PR https://github.com/symless/synergy-core/pull/6178
2018-03-06 13:55:27 -05:00
walker0643
5b31036cdc
fix bad logic in XWindowsScreen.cpp
2018-03-03 12:57:13 -05:00
walker0643
625253a7e8
fix FreeBSD build
2018-03-02 18:36:31 -05:00
walker0643
916b085474
better resource management for SecureSocket buffer. fixes #16
2018-02-24 19:37:30 -05:00
walker0643
b994c94a90
fix build for libressl. thanks to truatpasteurdotfr for the patch
2018-02-24 18:20:14 -05:00
walker0643
60d121aed3
reduce size of clipboard buffer. fixes #15
2018-02-24 17:41:28 -05:00
walker0643
06d5080b42
reimplement immune keys
2018-02-23 21:31:05 -05:00