Commit graph

257 commits

Author SHA1 Message Date
Nick Bolton
6399feb324
Solve low hanging reliability and maintainability issues (#7403)
* Add missing atom ctor init

* Init members with `None`

* Use in-class init and delcare getter inside if init

* Temp revert of changes ahead of unit test repair

* Move IPC header to shared, restore X clipboard test, simplify test cmake, new X clipboard unit test

* Suppress sonar for undefs

* Remove base dir include

* Revert "Temp revert of changes ahead of unit test repair"

This reverts commit 8f84b6ea5d5828f1be1362de3809279bcacb8cc8.

* Use new accessor

* Use default dtor

* Beef up to 32 core

* Use enum class

* Make IPC protocol headers const at all levels

* Use enum class and const char for better type safety

* Use unique_ptr for m_clipboard

* Use `-j` instead of `-j8` to utilize full parallelism

* Increase thread count for sonar-scanner

* Use 32 threads

* Use in-class init for IpcClientProxy members

* Use const instead of #define

* Remove ctor member inits

* Use unique_ptr on win

* Implement temp bin dir for windows with more robust post-build copy

* Fixed missing iostream

* Add warning about copy errors

* Only run clean-gcda on Linux

* Use in-class init for IPC mutex

* Do no-op on Windows

* Hide clean-gcda task

* Move flakey test to integtests

* Delete dead code

* Test

* Temp disable post_config_all

* Disable post config step

* Revert "Disable post config step"

This reverts commit 2f956a7714ba9bedacd4b39d4ae00940c3d565d6.

* Revert "Temp disable post_config_all"

This reverts commit b44ed72e44f838bfe1309f6e9672d2f1c6f21b75.

* Restore -j8

* Simplify error handling

* Use const for test port

* Remove python check

* Update changelog

* Fixed order

* Fixed bad issue number

* Fixed bin copy source path

* Remove redundant except
2024-07-18 08:04:39 +01:00
Nick Bolton
e435953af7
Make Clang param and arg alignment more readable (#7387)
* Turn off alignment of params

* Apply Clang format

* Change AlignAfterOpenBracket to AlwaysBreak and add extra bin pack settings

* Restore default bin packing

* Apply format
2024-07-16 14:36:44 +01:00
Nick Bolton
37bb0f989e
Format all source with Clang and introduce lint workflow (#7364)
* Lint script with CLang format

* Use `-i` for `clang-format` and add more logging for lint scripts

* Apply LLVM CLang formatting

* Fixed comment

* Update ChangeLog

* Fixed bad return code logic

* Improve output for linters

* Fixed re-used var in clang lint

* Fixed include order for tests and use `#if 0` instead of commenting out code

* Use full Clang format dump

* Dump Ubuntu Clang format

* Dump Clang format from Debian

* Dumped from: clang-format version 18.1.8

* Revert "Dumped from: clang-format version 18.1.8"

This reverts commit b9bbda2995bb0b4b65baf14afebb0361ec64e644.

* Remove BasedOnStyle

* Restore base Clang format file

* Use clang-format from pip

* Apply Clang format 18 style

* Add clang_format deps

* Fixed include order issues and *some* accidental includes
2024-07-02 20:07:06 +01:00
Nick Bolton
c8d9707857
Re-implement packaging for GitHub workflows (Linux) (#7361)
* Reorganize CMake Packaging module

* Match if statements to function order

* Cleanup root, res, and doc dirs

* Move deps to requirements.txt file

* Reorganize and format CMake files

* Rename changelog lint

* Add reccomended extension

* Workflow to lint CMake files

* Move CMake lint to script

* Try lighter dep

* Use venv

* Add --format arg

* Format all CMake files

* Convert bash script to Python

* Set CMake line ending format

* Restore formatting

* Add pyyaml dep

* Remove unused arg

* Rename config file

* Remove comment

* Repair copyrights (broken by defualt cmake-format)

* Restore 3rd party copyright

* Break up libs config into smaller macros

* Better macro name

* Load config after venv

* Make intentional noop clearer

* Only use upload step if required (make skip clearer)

* Use CPack for deb and rpm packaging

* Add upload step for Linux

* Remove cpack dep, doesn't exist

* Roll back presets version

* Fixed distro like match

* Update ChangeLog

* Legacy checkout for some distros

* All distros support v4

* Trying out newer Linux distros

* Install Git on Docker images

* Install without actions (not available before checkout)

* Delete useless action

* Install Python

* Support for Arch and OpenSUSE

* Add Arch and OpenSUSE to deps

* Name steps

* Full OpenSUSE names

* Mark Git dir safe

* Add pkgconf

* Legacy CMake for Debian 11

* Add OpenSSL to OpenSUSE

* Drop OpenSUSE Leap (no C++20 support)

* Skip packaging for Arch and OpenSUSE (for now)

* Shorten Arch/OpenSUSE names

* Clearer step name

* SImpler bootstrap

* Shell not needed

* Update apt

* Don't check return code

* Simplify python deps commands

* Add STGZ/.sh package type

* Prevent input prompt

* Only config git safe dir when needed

* Try cache v4

* Safe dir for Ubuntu

* Safe dir for Arch

* All Docker images seem to need safe dir config

* Refactor env var getters

* Make Ubuntu build extra packages

* Condense bootstep to single step

* Fixed var name

* Fixed bootstrap logic

* Simplify logic for upload condition (Windows and macOS)

* Make package/upload condition easier to understand

* Add Manjaro

* Generic names for Linux .tar.gz and .sh packages

* Add Manjaro deps

* Swap macOS matrix entries

* Add Red Hat UBI

* Remove RHEL subscription manager

* Throw on unsupported package distro

* Conditionally install pip and venv

* Remove extra pip arg

* Add config for RHEL

* Install EPEL for RHEL

* Back-out RHEL as EPEL requires subscription

* Restore Python deps logic

* Fixed bug: Packacking run twice

* Testing arm32v7 and arm64v8

* Revert "Testing arm32v7 and arm64v8"

This reverts commit cb3caf188d2b79ed083a62fc091de295f9889f3d.

* Re-add icon and shortcut file for Linux to package

* Support OpenSUSE RPM build

* Check return code

* Add `rpm-build` for OpenSUSE

* Reorg packages

* Remove busybox-which

* Add --non-interactive

* Move --non-interactive to correct position

* Experiment with makepkg

* Check and print package commands

* Make distro version optional

* Use 8 cores to build

* Default to distro name only

* Fixed bad PKGBUILD filename

* Use 4-part version for Arch

* Remove comma from conflicts

* Use .tar.gz from cwd

* Generate checksum for Arch

* Fixed file extension

* Use shell to print output

* Don't use shell

* Gaurd against bad cmd_utils.run

* Fixed bad import

* Use list command

* Fixed unable to run list commands

* Use source file name

* Simplify PKGBUILD to use make install

* Change install prefix

* Use DESTDIR

* Copy .desktop and .png to build dir

* Restore original `install(FILES...`

* Improving comments

* Fixed: makepkg runs from `src` by default

* Move error after command print

* Remove shell arg

* Package as a user instead of root (makepkg can't run as root)

* Fixed codesign runs in shell

* Allow list commands in shell on windows

* Don't use sudo on arch

* Install sudo on Arch

* Fixed typo

* Fix ownership of build directory for package user

* Improve example .env

* Change to depend on libstdc++6

* Add TODO

* Fixed Fedora version

* Remove libstdc++ deps (names vary between distros)

* Roll back to Fedora 40 and 39

* Improve comment

* Remove unneccesary default
2024-07-02 11:23:56 +01:00
Nick Bolton
947efd5e58
Made log lines consistent (#7270)
* Made log lines consistent

* Change log level for process list

* Only show advanced proc info at DEBUG2

* Fixed some more log lines

* Update AppUtilWindows.cpp
2023-07-28 09:45:27 +01:00
Serhii Hadzhilov
8587dda4ad
Add ability to bind synergy client to network interface (#7254)
* Switch client help to use dynamic buffer

* Add the new param into client help

* Parse the new param as a generic param

* Add additional member to store server address

* Bind client socket to network interface

* Update Changelog

* Fix code smell
2023-03-29 09:39:49 +01:00
Serhii Hadzhilov
c37b0d2fcf
Add ability to initiate connection from server (#7222)
* Add a new hidden readonly option "initiateConnectionFromServer"

* Add option "clientHostMode"

* Add host mode to the client GUI

* Hide main window controls for the client host mode

* Store client address into the server config file

* Add client mode the server

* Pass option --host into the client

* Add --host parameter into the synergyc

* Add InverseSocketFactory

* Add InverseClientSocket

* Add InverseServerSocket

* Add AutoArchSocket

* Add listener on the client side

* Add connection from the server side

* Fix code smells

* Additional code smells

* Requested changes

Co-authored-by: Serhii Hadzhilov <serhii@symless.com>
2022-09-22 11:12:13 +03:00
Serhii Hadzhilov
c92ac1a71e
SYNERGY1-1497 Fix memory leak on macOS (#7178)
* SYNERGY1-1497 Fix memory leak on macOS

* Update ChangeLog

* Fix Fedora build
2022-05-24 12:36:06 +01:00
Serhii Hadzhilov
95ee948f26
SYNERGY1-1497 Memory leaks in copy/paste and drag and drop functionality (#7175)
* SYNERGY1-1497 Fix memory leak in copy/paste functionality

* SYNERGY1-1497 Memory leaks with function CFStringRefToUTF8String

* SYNERGY1-1497 Fix memory leak in Server::sendDragInfo

* SYNERGY1-1497 Fix memory leak in Server::sendFileToClient

* SYNERGY1-1497 Fix memory leak in Server::sendDragInfoThread

* SYNERGY1-1497 Fix code smells

* SYNERGY1-1497 Fix builds

* SYNERGY1-1497 Fix additional code smells
2022-05-19 18:29:11 +03:00
Serhii Hadzhilov
322e583917
SYNERGY-1-1494 Replace notifications with logs (#7166)
* SYNERGY-1-1494 Replace notifications with logs

* Update ChangeLog
2022-05-11 12:22:17 +03:00
Serhii Hadzhilov
5c7db2788d
SYNERGY-1307 Prevent notifications if language reading fails (#7115)
* SYNERGY-1307 Prevent notifications if language reading fails

* Update ChangeLog

* SYNERGY-1307 Fix code smell
2021-11-04 17:48:23 +02:00
Serhii Hadzhilov
4a30a9234b
SYNERGY-1307 Language reading on linux (#7114)
* SYNERGY-1307 Test implementation

* Update CMakeLists.txt

* SYNERGY-1307 Code cleanup

* SYNERGY-1307 Fix code smell

* SYNERGY-1307 C++11 style of initialisation

* Update ChangeLog

* Fix code smells

* SYNERGY-1307 Fix code smells

* Fix Ubuntu16 compilation

* SYNERGY-1307 Fix windows build

* SYNERGY-1307 Fix code smell

* SYNERGY-1307 Fix macOS build

* SYNERGY-1307 Fix Linux build

* SYNERGY-1307 Text for notification has been changed as requested

* SYNERGY-1307 Update notification text and fix union initialisation
2021-11-03 11:50:40 +02:00
SerhiiGadzhilov
a6a8e7375b
SYNERGY-1298 Fix endless notifications during connection (#7113)
* SYNERGY-1298 Fix endless notification during connection

* SYNERGY-1298 Fix code smell

* Update ChangeLog
2021-10-26 13:50:42 +03:00
SerhiiGadzhilov
d92f01f5ac
Synergy 1298 client can't connect to previous server version (#7112)
* SYNERGY-1298 Remove language from hello message

* SYNERGY-1298 Client compatibility

* SYNERGY-1298 Compatibility for keydown

* SYNERGY-1298 Client part for keydown campatibility

* SYNERGY-1298 Move lang checking to handshake stage

* Update ChangeLog

* SYNERGY-1298 Fix code smell
2021-10-25 18:55:09 +03:00
SerhiiGadzhilov
940e2ecd20
SYNERGY-1287 display language notifications only on client side (#7111)
* SYNERGY-1287 Display language notification only on client side

* SYNERGY-1287 Always show notification on the client side

* Update ChangeLog

* Fix doxygen job
2021-10-21 13:48:40 +03:00
SerhiiGadzhilov
65ec504696
Synergy 1267 endless notifications during connection (#7104)
* SYNERGY-1267 Endless notification during connection

* SYNERGY-1267 Endless notification. Server part

* SYNERGY-1267 Change notification trace level

* Update ChangeLog

* SYNERGY-1267 Fix Linux compilation

* SYNERGY-1267 Fix code smell

* SYNERGY-1267 Add requested changes
2021-10-13 13:01:27 +03:00
Andrey Batyiev
e9e21aad8f
Synergy 907 client tray language switcher reverts to en (#7038)
* SYNERGY-907 Client tray language switcher reverts to EN
*Fix checkbox spelling

* SYNERGY-907 Client tray language switcher reverts to EN
*Update changelog

* SYNERGY-907 Client tray language switcher reverts to EN
*Temporary disable language sync logic

* SYNERGY-907 client tray language switcher reverts to en
*Update changelog

* Synergy 907 client tray language switcher reverts to en
*Fix sonar

* Synergy 907 client tray language switcher reverts to en
*Fix sonar

* Synergy 907 client tray language switcher reverts to en
*Fix chnagelog

* SYNERGY-907 Client tray language switcher reverts to EN
*Add prototype of keyboard layout names transfer(Windows part)

* SYNERGY-907 Client tray language switcher reverts to EN
*Add keyboard layout determination(Mac part)

* SYNERGY-907 Client tray language switcher reverts to EN
*Add language check on client side

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix Windows build

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Add logs

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Add protocol update

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Add server side of language sync

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Remove unused variables

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*AFix mac language determination

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Clean up logs

* SYNERGY-907 Client tray language switcher reverts to EN
*Replace logs with messagebox on Windows

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Add mac messagebox, revert protocol changes

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Fix minor language bugs

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Update chagelog

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Minor fixes

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Fix Linux build

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Fix sonar code smells

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Fix Linux build

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Add Linux language determination

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Fix sonar codesmells

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Fix sonar codesmells

* SYNERGY-907-Client-tray-language-switcher-reverts-to-EN
*Replace custom xml parser with tinyxml2

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix PR comments

* SYNERGY-907 Client tray language switcher reverts to EN
*Update changelog

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix unix build

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix unix build

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix sonar code smells

* SYNERGY-907 Client tray language switcher reverts to EN
*Update changelog

* SYNERGY-907 Client tray language switcher reverts to EN
*Replace tinuxml with pugixml

* SYNERGY-907 Client tray language switcher reverts to EN
*Add pugixml as a git submodule

* SYNERGY-907 Client tray language switcher reverts to EN
*Add missed files

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix sonar code smells

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix comments from PR

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix sonar code smell

* SYNERGY-907 Client tray language switcher reverts to EN
*add tests for x11 files parser

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix include for unix build

* SYNERGY-907 Client tray language switcher reverts to EN
*Add test coverage for new logic

* SYNERGY-907 Client tray language switcher reverts to EN
*Add test coverage for new logic

* SYNERGY-907 Client tray language switcher reverts to EN
*Add code coverage
*Fix code smells

* SYNERGY-907 Client tray language switcher reverts to EN
*Return missed file

* SYNERGY-907 Client tray language switcher reverts to EN
*Improve code coverage of x11Layouts parser

* SYNERGY-907 Client tray language switcher reverts to EN
*Add client args code coverage

* SYNERGY-907 Client tray language switcher reverts to EN
*Return runtime language sync

* SYNERGY-907 Client tray language switcher reverts to EN
*Return windows current keyboard layout determination

* SYNERGY-907 Client tray language switcher reverts to EN
*Return Linux language determination

* SYNERGY-907 Client tray language switcher reverts to EN
*Remove debug code

* SYNERGY-907 Client tray language switcher reverts to EN
*Move back Carbon current language determination

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix language change for existed languages on iOS and Linux

* SYNERGY-907 Client tray language switcher reverts to EN
*Return protocol missed parameter

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix macOS language change

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix language sync (when it is disabled)

* SYNERGY-907 Client tray language switcher reverts to EN
*Add correct language choosing
*Fix code coverage tests

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix windows build and tests

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix macOS build and tests

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix language change for first letter in keystroke

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix macOS build

* SYNERGY-907 Client tray language switcher reverts to EN
*Partially fix Sonar codesmells

* SYNERGY-907 Client tray language switcher reverts to EN
*Partially fix Sonar codesmells

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix build

* SYNERGY-907 Client tray language switcher reverts to EN
*Added logging for language change process
*Fixed language change process for Windows

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix double layout change in key repeat event

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix determination of current language on windows
*Removed legacy code of restoring language when leaving screen
*Fix double group change on Linux

* SYNERGY-907 Client tray language switcher reverts to EN
*Temp fix for language change on Linux

* SYNERGY-907 Client tray language switcher reverts to EN
*Add XSync to normalize Linux language polling and setting
*Remove setxkbmap using

* SYNERGY-907 Client tray language switcher reverts to EN
*Add keyboard layout changing on Linux with DBus

* SYNERGY-907 Client tray language switcher reverts to EN
*Add comments to new language change function
*Logical fix

* SYNERGY-907 Client tray language switcher reverts to EN
*Remove input attaching

* SYNERGY-907 Client tray language switcher reverts to EN
*Fix language change on macOS

* SYNERGY-907 Fix review issues

* SYNERGY-907 Fix review comment for Windows

* SYNERGY-907 Removed debug trace

Co-authored-by: Andrii Batyiev <andrii-external@symless.com>
Co-authored-by: user <user@users-Mac-mini.local>
Co-authored-by: Serhii Hadzhilov <serhii-external@symless.com>
2021-10-04 18:51:12 +03:00
SerhiiGadzhilov
d4bd004899
SYNERGY-124 Windows client doesn't resume connection after sleep (#7082)
* SYNERGY-124 Windows client doesn't resume connection after sleep

* SYNERGY-124 Remove changes from previous PR

* Revert "SYNERGY-124 Remove changes from previous PR"

This reverts commit 9d6afc1523d4c2327176db9bee28b92f3471ca5e.

* Update ChangeLog
2021-09-01 18:58:41 +03:00
SerhiiGadzhilov
28dcd34251
SYNERGY-1085 Notificatons for unknown applications (#7066)
* SYNERGY-1085 Notificatons for unknown applications

* Update ChangeLog
2021-08-04 17:53:25 +03:00
Igor Sikachyna
2fdde93f3d
SYNERGY-1032 - Send secure input notifications to client (#7043)
* SYNERGY-1017 - Try usnig NSUserNotification

* SYNERGY-1032 - Use UNUserNotificationCenter instead of deprecated notifications

* SYNERGY-1032 - Update app delegate and add log after notification access

* SYNERGY-1032 - Try using deprecated notification

* SYNERGY-1032 - Add notifications to the platform dependant code

* SYNERGY-1032 - Check for development builds before asking permission for notifications

* SYNERGY-1032 - Remove old notification and secure input detection

* SYNERGY-1032 - Add permission request to the main app

* SYNERGY-1032 - Only show notifications on server

* SYNERGY-1032 - Request and show notification from main app

* SYNERGY-1032 - Remove logging from OSX helpers

* SYNERGY-1032 - Add UN notification for testing

* SYNERGY-1032 - Show notification once

* SYNERGY-1032 - Try replicating old flow

* SYNERGY-1032 - Reuse notification center

* SYNERGY-1032 - Send notification after granting permission

* SYNERGY-1032 - Update app delegate

* SYNERGY-1032 - Remove deprecated property

* SYNERGY-1032 - Add output for debugging

* SYNERGY-1032 - Try updating delegate

* SYNERGY-1032 - Print current bundle name

* SYNERGY-1032 - Add AppDelegate to the server

* SYNERGY-1032 - Move notification creation to synergy app

* SYNERGY-1032 - Update notification text

* SYNERGY-1032 - Fix QString conversion for notification

* SYNERGY-1032 - Move notification creation outside the handler

* SYNERGY-1032 - Remove debug notification, show notification with no delay

* SYNERGY-1032 - Show notification inside the completion handler

* SYNERGY-1032 - Remove timed notification trigger

* SYNERGY-1032 - Request permissions on synergy start

* SYNERGY-1032 - Remove unused includes

* SYNERGY-1032 - Update changelog

* SYNERGY-1032 - Add empty notification implementations for Windows and Linux

* SYNERGY-1032 - Removed temporary debug messages

* SYNERGY-1032 - Resolve code smell

* SYNERGY-1032 - Add base code for handling sending secure input notification

* SYNERGY-1032 - Compile on Mac

* SYNERGY-1032 - Allow client downgrade for 1.7 down to 1.6

* SYNERGY-1032 - Add utility to show notifications. Update secure input message format

* SYNERGY-1032 - Update notification util on Mac

* SYNERGY-1032 - Don't disconnect on invalid message from client

* SYNERGY-1032 - Remove unused code

* SYNERGY-1032 - Update changelog

* SYNERGY-1032 - Update secure input notification message

* SYNERGY-1032 - Better formatting for debug comments

* SYNERGY-1032 - Resolve code smells

* SYNERGY-1032 - Resolve more code smells

* SYNERGY-1032 - Revert log level change

* SYNERGY-1032 - Resolve merge error
2021-06-29 18:45:15 +03:00
SerhiiGadzhilov
c000b886c2
SYNERGY-1003 Connection processing for name with several ips (#7013)
* SYNERGY-1003 Connection processing for name with several ips

* Update ChangeLog

* SYNERGY-1003 Fix compilation

* SYNERGY-1003 Fix code smells
2021-05-24 11:21:32 +03:00
Andrey Batyiev
2569409ba2
SYNERGY-885 mac client listens on ipv4 only but attempts to connect on ipv6 (#7008)
* SYNERGY-970 Synergy1. User is not able to connect to server using ipv6 without wrapping IP in square quotes
*Fix connection without brackets
*Fix config screen bug

* SYNERGY-970 Synergy1. User is not able to connect to server using ipv6 without wrapping IP in square quotes
*Update changelog

* SYNERGY-970 Mac client listens on ipv4 only but attempts to connect on ipv6 #6964
*Add logging in case of several IP of hostname

* Synergy 970 synergy1. user is not able to connect to server using ipv6 without wrapping ip in square quotes
*Update changelog

* SYNERGY-885 Mac client listens on ipv4 only but attempts to connect on ipv6
*Fix Sonar warnings

* SUNERGY-885-Mac client listens on ipv4 only but attempts to connect on ipv6
*Update Changelog

* SYNERGY-885 mac client listens on ipv4 only but attempts to connect on ipv6
*Fix include

* Sunergy-885 mac client listens on ipv4 only but attempts to connect on ipv6
*Fix sonar warnings

* SYNERGY-885 Mac client listens on ipv4 only but attempts to connect on ipv6
*Add loggic to connect to first from reachable server addresses

* SYNERGY-885 mac client listens on ipv4 only but attempts to connect on ipv6
*Fix unix compilation

* SYNERGY-885 mac client listens on ipv4 only but attempts to connect on ipv6
*Fix unix compilation

* SYNERGY-885 mac client listens on ipv4 only but attempts to connect on ipv6
*Fix code smells

* SYNERGY-885 mac client listens on ipv4 only but attempts to connect on ipv6
*Fix build

* SYNERGY-885 mac client listens on ipv4 only but attempts to connect on ipv6
*Fix memory leak

* SYNERGY-885 mac client listens on ipv4 only but attempts to connect on ipv6
*Added logic for temporary ipv6 filtering from connect

* SYNERGY-885 mac client listens on ipv4 only but attempts to connect on ipv6
*Temporary disable ipv6 parsing and resolving tests

Co-authored-by: Andrii Batyiev <andrii-external@symless.com>
2021-05-20 19:59:05 +03:00
Serhii Hadzhilov
07edadc2e3 SYNERGY-694 Reduce connection timeout to 2 seconds 2021-05-13 16:20:54 +03:00
Ignacio Rodriguez
6656e7337d as per Sonar recommendations 2020-11-03 17:52:56 +07:00
Jamie Newbon
6684b8b09f #6734 Added new cmd option --tls-cert
- Moved ArgsBase, ClientArgs, and ServerArgs to own namespace
 - Added some Documentation to Args classes

Signed-off-by: Jamie Newbon <jamie@symless.com>
2020-07-27 13:29:58 +01:00
Andrew Nelless
14343fa7e1 #6344 Don't send clipboards over size limit to server 2018-07-08 16:50:31 +01:00
Andrew Nelless
953e829562 #6344 Clarify on client who disabled clipboard sharing 2018-07-08 16:50:23 +01:00
Andrew Nelless
7c29d8e704 #6344 Fix logic error displaying clipboard sharing status 2018-07-08 16:50:16 +01:00
Andrew Nelless
828ad24820 #6344 Fix use of std::max 2018-07-08 16:49:38 +01:00
Andrew Nelless
8af215364f #6344 Make client recognise clipboard size limit 2018-07-08 16:49:33 +01:00
Jerry (Xinyu Hou)
fa82f5cdf3 #6178 Fix compiling error for adding IPv6 for secure socket 2018-03-20 16:05:30 +00:00
Jerry (Xinyu Hou)
8446fe5395 #6178 Merge IPv6 PR 2018-03-20 13:53:38 +00:00
Svyatoslav
cd015482d5 PVS-Studio: An exception should be caught by reference rather than by value. (#6003) 2017-05-05 01:34:34 +01:00
Andrew Nelless
fedbcb0f3a Remove ../ includes in src/lib 2017-03-09 15:16:08 +00:00
Andrew Nelless
0cd45ba1ef Remove unused include paths 2017-03-09 14:18:39 +00:00
Andrew Nelless
4263fd1717 Rename synergy library to synlib to work around conflict with GUI 2017-02-08 15:11:21 +00:00
XinyuHou
deea23f866 Apply tab to spaces filter to src folder 2017-02-07 01:24:59 +00:00
Andrew Nelless
f3d1470e58 Brutally replace all reinterpret_casts with static_casts 2016-10-05 12:46:16 +01:00
Andrew Nelless
45da1dfc7c #5628 Make enableCrypto directly enable SSL 2016-09-29 13:11:09 +01:00
Andrew Nelless
0d84e4eed6 #5617 Make PacketStreamFilter adopt all socket types 2016-09-29 13:11:09 +01:00
Andrew Nelless
77d6b83b0c #5617 Remove stray PluginVersion includes 2016-09-29 13:05:04 +01:00
Andrew Nelless
5774f5a291 #5617 Remove plugin infra from Client 2016-09-29 13:05:03 +01:00
Xinyu Hou
a17779e7fd #123 Disabled clipboard grab mechanism when clipboard is disabled 2016-09-26 11:58:33 +01:00
Xinyu Hou
ce4effa2c8 #123 Fixed warning on Linux 2016-09-26 11:58:33 +01:00
Xinyu Hou
eafc548b97 #123 Made disable clipboard take effect on client 2016-09-26 11:58:33 +01:00
Xinyu Hou
3c94310c9e #123 Read clipboard sharing option and pass it to all clients 2016-09-26 11:58:33 +01:00
XinyuHou
a471bdcea7 Made a own copy of ClientArgs in Client 2016-09-26 11:58:33 +01:00
Jerry (Xinyu Hou)
e1be67cfb6 Fixed indentations
Conflicts:
	src/lib/client/Client.h
2016-09-26 11:58:33 +01:00
Jerry (Xinyu Hou)
95464d97cf Conflicts:
src/lib/client/Client.cpp
	src/lib/net/TCPSocketFactory.cpp
2016-09-26 11:58:33 +01:00
XinyuHou
4ad2c6b10d #4740 Moved clipboard transfering back into main thread on client 2016-09-26 11:58:33 +01:00
XinyuHou
3e1a86c3c1 #5502 Reverted disabled sending clipboard on inactive grab
This reverts commit 2ad4b896f3.
2016-09-26 11:58:33 +01:00
Andrew Nelless
c3c0913633 Update company copyright notice 2016-09-26 11:58:33 +01:00
Jerry (Xinyu Hou)
2ad4b896f3 #4768 Disabled sending clipboard on inactive grab 2016-08-08 14:36:43 +01:00
Jerry (Xinyu Hou)
1a76acd446 #4768 Interrupted both clipboards 2016-08-08 14:36:42 +01:00
Jerry (Xinyu Hou)
7cbd3fdcb4 Revert "Add keepAlive message before send file/clipboard data #4768"
This reverts commit 5287c62540b277474603ea8a38c53b50cb8f4d52.
2016-03-15 12:57:39 -07:00
Jerry (Xinyu Hou)
b5b2cdfade Add keepAlive message before send file/clipboard data #4768 2016-03-15 12:57:06 -07:00
Jerry (Xinyu Hou)
6d0f820db5 Fix indentations 2016-03-15 12:57:05 -07:00
Nye Liu
8f0530c507 Add retry to CondVarBase wait(), make sure Stopwatch is started on construction (Issue #4735)
* ArchMultithreadPosix::waitCondVar() returns every 100ms, so retry until we
  hit timeout.

* Stopwatch constructor should be called with "false" (not "true") to make sure
  Stopwatch is actually running when instantiated.
2016-03-15 12:46:45 -07:00
Nye Liu
1fde0f3e71 Cosmetic whitespace, use return value of wait() directly instead of testing timer 2016-03-15 12:46:45 -07:00
Nye Liu
0d310a8464 Properly lock condVar, add timeout condition to prevent infinite loop when waiting for fillClipboard() to finish 2016-03-15 12:46:45 -07:00
Nye Liu
6c11de6a22 Fix bug #4735 - don't leave() until fillClipboard()s all complete 2016-03-15 12:46:45 -07:00
Jerry (Xinyu Hou)
945ccfdb75 Refactored plugin names #4866 2015-08-03 15:56:21 -07:00
Xinyu Hou
b105bc8f42 Unified secure socket name across platforms #4866 2015-08-03 15:56:03 -07:00
Jerry (Xinyu Hou)
7259e71439 Reset thread back to null on finish #4712 2015-07-31 13:55:35 -07:00
Jerry (Xinyu Hou)
a44e9832c5 Refactored code order to make it more readable 2015-07-31 13:46:23 -07:00
Jerry (Xinyu Hou)
9800bec857 Made clipboard log more consistent #4712 2015-07-31 13:46:11 -07:00
Jerry (Xinyu Hou)
4fe46e117e Shorten data transfer log #4858 2015-07-31 13:20:50 -07:00
Jerry (Xinyu Hou)
81649376fa Revert "Added symbolic link creation to linux and macos #4696"
This reverts commit ad9cfd64af.

Conflicts:
	src/gui/src/PluginManager.cpp
2015-07-31 13:20:16 -07:00
Jerry (Xinyu Hou)
69a6038cf9 Revert "Moved note into either warning or info #4745"
This reverts commit d3a4ce1f11.
2015-07-31 13:18:57 -07:00
Xinyu Hou
85dc7a566e Made log consistent #4745 2015-06-30 03:37:36 +01:00
Jerry (Xinyu Hou)
72060e59b4 Fixed send clipboard thread time issue #4749 2015-06-12 11:21:05 -07:00
Jerry (Xinyu Hou)
5c71efebe6 Fixed integtests #4584 2015-06-05 15:23:44 -07:00
Jerry (Xinyu Hou)
0680c33909 Added file events #4584 2015-06-05 15:21:17 -07:00
Jerry (Xinyu Hou)
eb3f8aee2a Notified file transmission interrupted #4745 2015-06-04 14:43:49 -07:00
Jerry (Xinyu Hou)
646e1b52eb Interrupted file transfer when cursor move back #4584 2015-06-04 13:09:48 -07:00
Jerry (Xinyu Hou)
8d0fdee5ce Added full stop for notification #4745 2015-06-02 11:18:21 -07:00
Jerry (Xinyu Hou)
d9921c894c Added clipboard transmission notification #4745 2015-06-02 09:48:26 -07:00
Jerry (Xinyu Hou)
d1ca021002 Monitoring log to show notification and made icon change while transfering $4745 2015-06-01 15:59:59 -07:00
Jerry (Xinyu Hou)
e7f358afb2 Added file transmission started, failed and complete notification #4745 2015-06-01 15:33:06 -07:00
Jerry (Xinyu Hou)
d3a4ce1f11 Moved note into either warning or info #4745 2015-06-01 14:31:32 -07:00
Jerry (Xinyu Hou)
4a27c0b05c Added drop file notification on client #4745 2015-06-01 11:57:43 -07:00
Xinyu Hou
fb3252efef Added a way to interrupt sending clipboard/file #4601 2015-05-23 00:34:00 +01:00
Jerry (Xinyu Hou)
a81b88c730 Refactored file assemble and send code #4601 2015-05-22 11:27:57 -07:00
Jerry (Xinyu Hou)
1df566d241 Refactored duplicated code #4601 2015-05-21 17:50:55 -07:00
Jerry (Xinyu Hou)
1c28444cf6 Refactored duplicated code #4601 2015-05-21 16:04:50 -07:00
Xinyu Hou
490667e21b Used StreamChunker to send clipboard in chunks #4601 2015-05-20 19:54:17 +01:00
Xinyu Hou
cf5347c8f6 Sent clipboard on a thread #4601 2015-05-20 19:53:30 +01:00
Xinyu Hou
49ac320f97 Refactored clipboard event into ClipboardEvent #4601 2015-05-20 19:09:54 +01:00
Jerry (Xinyu Hou)
a6dfbbe021 Validated received clipboard data size #4601 2015-05-19 14:28:38 -07:00
Jerry (Xinyu Hou)
c674642181 Used StreamChunker for clipboard and file transfer #4601
Clipboard is not handled at this point
2015-05-19 09:30:35 -07:00
Jerry (Xinyu Hou)
30f96b9fbb Renamed FileChunker to StreamChunker #4601 2015-05-18 10:17:22 -07:00
Jerry (Xinyu Hou)
44089d55e8 Send clipboard data in small chunks without using thread #4601 2015-05-15 22:28:43 +01:00
Nigel Armstrong
d71304ee55 Modified header of every file COPYING to LICENSE
Modified to match the updated name of the license file
2015-05-06 22:12:44 -04:00
XinyuHou
cf6a6bcd48 Removed dead code #4527 2015-04-20 14:57:59 +01:00
Xinyu Hou
e6e3eae0a9 Disabled reconnect after fingerprint failed #4527 2015-04-20 14:43:39 +01:00
Nick Bolton
407f92e9d4 Removed --certificate-fingerprint argument #4522
Used profile dir for fingerprint file path instead
2015-04-15 14:16:28 +01:00
Xinyu Hou
1e2b822226 Removed unused variable 2015-04-14 17:52:24 +01:00
XinyuHou
28eb85660f Fixed error from merge 2015-04-14 17:51:41 +01:00
XinyuHou
b4665b9cd5 Passed args into client and socket
Conflicts:
	src/lib/client/Client.cpp
	src/lib/client/Client.h
	src/lib/synergy/ClientApp.cpp
	src/test/integtests/net/NetworkTests.cpp
2015-04-14 17:51:31 +01:00
Nick Bolton
1c2576b8d7 Revert "Rephrased "crypto disabled" log, changed to error #4313"
This reverts commit a6b5c872f5.
2015-03-04 11:43:45 +00:00
Nick Bolton
a6b5c872f5 Rephrased "crypto disabled" log, changed to error #4313 2015-03-04 09:00:01 +00:00
XinyuHou
c4c0fc8a08 added enable crypto argument to synergys/c #4313 2015-02-12 15:50:08 +00:00
XinyuHou
80343c41eb deleted old home brew crypto #4313 2015-02-11 11:12:54 +00:00
XinyuHou
622e40e5d7 managed secure socket allocation and deallocation #4313 2015-01-28 13:07:03 +00:00
XinyuHou
d80aa7c938 resolve #4337 removed IStreamFilterFactory dead code 2015-01-27 11:33:06 +00:00
XinyuHou
10cddb97a8 fixed misused read and write #4313 2015-01-26 13:23:11 +00:00
Xinyu Hou
141b778477 refactored SecureSocket to use interface #4313 2015-01-14 17:25:53 +00:00
XinyuHou
1d7eb3f5cb updated pluging loader for Windows #4313 2015-01-09 13:46:35 +00:00
the-wes
a99bea9d3b clarify protocol error message 2014-12-05 16:59:39 -08:00
Xinyu Hou
67377109f3 Moved Screen class into synergy namespace 2014-11-11 17:45:24 +00:00
Nick Bolton
41d6080028 changed company name in copyright notice 2014-11-11 13:52:03 +00:00
Nick Bolton
e8e156f0e2 dropped "c" prefix from class names 2014-11-11 13:51:47 +00:00
jerry
f87bd9e860 - checked filename's validation before sending drag info
- refactored duplicated write to drop dir code
- removed legacy member variables
- fixed code style
- fixed typo
2014-05-14 14:45:15 +00:00
jerry
9621cba99e - redesigned drag information protocol
- used DragInformation to encapsulate information and helper functions.
- renamed parameters in sendDragInfo function.
2014-05-06 18:26:47 +00:00
jerry
ff42afc36c made drag info function name more consistent 2014-05-01 13:56:07 +00:00
jerry
f773ff3d00 refactored duplicated code in dragInfoReceived
refactored fakeDraggigFiles interface
2014-04-30 18:54:32 +00:00
Nick Bolton
407378fbc5 Task #3951 - Clear filename stored in synwinxt on mouse up
- renamed some functions for file drag/drop to be more similar to existing
- improved log messages for the library loader
- removed hack that blocked .exe and .lnk files (annoying for developers)
- removed hack that always clears dragging filename (not very robust)
2014-03-17 13:10:29 +00:00
Nick Bolton
f62cac6a0a code style - indentation 2014-03-17 11:16:52 +00:00
Nick Bolton
d5b25069be fixed: extending std::runtime_error instead, as std::exception ctor is undefined. also fixed some mac warnings from inheriting runtime_error. 2014-03-14 20:33:18 +00:00
Nick Bolton
4675f29a4c code style fixes:
- reordered includes to prevent accidental dependencies.
- moved arch specific files into their own folder (easier to include with cmake).
- renamed non-class files to reflect new code style (lower case with underscores).
- using full relative paths for includes (easier for understanding dependencies).
- using #pragma once instead of classic-style header guards.
2014-02-28 12:36:45 +00:00
Nick Bolton
8e74710dad code style: dropped C prefix 2014-02-27 17:45:17 +00:00
Nick Bolton
f11c660efb used glob instead of manually specifying files. cmake does not recommend this, but we always re-run cmake anyway after adding files since we use vs. 2014-02-26 17:46:02 +00:00
Nick Bolton
50a4f310c9 moved tools to ext - makes more sense, as it contains external libs, not tools 2014-02-26 16:52:54 +00:00
Nick Bolton
78ecdf4c6e fixed: win32 warnings. 2014-02-25 15:50:06 +00:00
Nick Bolton
d03b398bc1 - improved string conversion by using ms comutil.
- removed dead member variable.
- extra logging to help debug file drop on windows.
2014-02-07 17:06:26 +00:00
Nick Bolton
deff54f051 fixed: accidentally nerfed drag and drop. 2014-02-07 11:30:48 +00:00
Nick Bolton
f149101d25 fixed: linux client crashes on file drop, even though drag and drop is disabled 2014-02-06 18:39:12 +00:00
jerry
6e50945bf9 created a new thread to write file to drop directory on client side 2013-09-25 14:49:04 +00:00
jerry
4e09b06cb0 fixed drag drop from Mac server to Windows client 2013-09-18 14:12:19 +00:00
jerry
340e31298e - removed --filetransfer-src and --filetransfer-des args.
- on Window, temporarily use user desktop directory as drop target.
2013-09-17 18:13:58 +00:00
jerry
dbc7659776 changed the transparency of the window where drag is from on mac. 2013-09-12 11:43:34 +00:00
jerry
43e2535335 Feature to drag a file from Mac (client) to Windows (server):
- temporarily drop dragging file to desktop (specified by command line arg --filetransfer-des)
- on Mac side, fake an esc key while dragging off the screen does not seem to work
2013-08-30 19:49:38 +00:00
jerry
ce1b62db14 Feature to drag a file from Windows to Mac:
- On Mac client main thread is used for cocoa application in order to simulate drag.
- Send dragging file dir from Windows server to Mac client while dragging after switching screen.
- Dragging information sending is immature now (need to support multi files dragging in the future).
- Used Cocoa function to monitor dragg pasteboard.
- Changed Mac client to use another thread for event queue instead of the main thread.
- Change fileRecieveComplete to fileRecieveCompleted.
2013-08-30 14:38:43 +00:00
jerry
031a84ca84 - Allow dragging one file from Windows (server) to Mac (client), --filetransfer-des needs to be specified in client side's command line. 2013-08-23 15:36:23 +00:00
jerry
587c320f61 - Added data handler shell extension project (synwinxt) which will output a dll file.
- Removed misused comments in CServerProxy
2013-08-21 13:30:46 +00:00
jerry
dab838ed14 - renamed synrgyhk.dll to synwinhk.dll and moved lib code to separate folder.
- removed game device support (fallen into significant disrepair).
2013-08-02 13:21:06 +00:00
Nick Bolton
289f1ff71f Patch by Jerry:
- Added fixed pause between raising each file transfer event
- Removed redundant member variables in CClient and CServer
2013-07-26 14:10:06 +00:00
Nick Bolton
811cfd146d Patch by Jerry:
- Measure file transfer speed
- Increased quit timeout in NetworkTests
- Some code duplication, to be fixed in future patch
2013-07-26 12:44:14 +00:00
Nick Bolton
99a7e0db23 Patch by Jerry:
- Added include path for std::runtime_error
2013-07-26 10:26:20 +00:00
Nick Bolton
394ece004a Patch by Jerry:
- Fixed line endings
- Integ test for file transfer
- Fixed crashed problem when log info is larger than 2048 bytes
- Fixed compile error caused by std exception (by Feng ye)
- Fixed include path on Mac and linux (by Feng ye)
2013-07-24 16:41:12 +00:00
Nick Bolton
c368013f13 Patch by Jerry for issue 46:
- Unit test for sending file data from server to client.
- Removed singleton pattern from CSocketMultiplexer for easier unit testing.
- Incremented protocol version from 1.4 to 1.5 (new file chunk message).
- Storing pointer to CConfig instead of copying in CServer (so we can mock it).
- Created a common event queue for testing (timeout, quit event, etc).
- Fixed code style.
2013-07-16 19:02:30 +00:00
Nick Bolton
608074c041 - made unit testing easier by (mostly) removing the event queue singleton.
- fixed code style in many places (mostly indentation).
2013-06-29 14:17:49 +00:00
Nick Bolton
e8ed977a8f fixed: issue 3565 - encryption fails with heavy network traffic.
changed encrypt and decrypt to be asymmetrical (iv change now applies only in one direction).
2013-05-01 15:53:22 +00:00
Nick Bolton
c0dcdd52e7 fixed: crypto++ compile errors, linux compiler syntax bugs, and code style (spaces -> tabs) 2013-04-11 00:30:41 +00:00
Nick Bolton
880819fab7 Jerry's patch for password hash and custom mode (via command line). 2013-04-09 21:57:07 +00:00
Nick Bolton
7010de9cc4 sending IV to client before DKDN, DKUP and DKRP (the most sensitive messages). unit tests to support changes. made crypto stream tests a bit less spammy by using NiceMock. 2013-04-09 18:56:19 +00:00
Nick Bolton
23998fc06c unit tests for IV change. 2013-04-08 18:35:23 +00:00
Nick Bolton
323285a931 moved temp hard coded key out of crypto class. 2013-04-08 13:04:20 +00:00
Nick Bolton
0a69c28ac5 implemented crypto stream, with some extra unit tests 2013-04-05 16:33:48 +00:00
Nick Bolton
7f6eca9eb4 corrected license and author attribution (cs 2002-2012, nb 2008-2012) 2012-09-04 02:09:56 +00:00