Commit Graph

938 Commits

Author SHA1 Message Date
Nick Bolton 8040f1c5a3 changed m_relauncher to m_watchdog 2013-10-15 10:04:27 +00:00
Nick Bolton d09ee887d8 renamed CMSWindowsRelauncher to CMSWindowsWatchdog 2013-10-14 17:15:03 +00:00
Nick Bolton 499cd47e63 - fixed: process should shut down when command is empty.
- fixed: when command was empty quotes ("") daemon crashed.
2013-10-14 17:10:51 +00:00
Nick Bolton 79ab428454 refactored windows service "relauncher" (process watchdog), so that it's easier to understand. 2013-10-14 16:29:02 +00:00
jerry b9016bc1ae - encapsulated Windows session
- fixed code style
2013-10-10 16:06:13 +00:00
Nick Bolton 85eae2a744 fixed: exploit, \Program.exe is launched instead of synergy binaries. 2013-10-03 14:24:58 +00:00
jerry 10b9b2e406 added null point handling for get dragging file directory. 2013-09-26 11:34:21 +00:00
jerry 952be51c8c fixed sending file twice when drag a file from Mac server to Windows client 2013-09-25 15:57:10 +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 8301d50ab7 fixed drop target dir out of date 2013-09-25 13:11:19 +00:00
jerry 6c6b40e644 removed logging info that is used only for debug. 2013-09-25 12:45:10 +00:00
jerry fd0f5e1db2 disabled drag and drop feature if there is no --enable-drag-drop cmd arg 2013-09-25 12:37:27 +00:00
jerry e24afa5670 removed some unused include file dependencies and logging info only for debug 2013-09-25 10:50:11 +00:00
jerry 95ece5ac2c fixed Mac server keeps crashing during launch 2013-09-25 10:44:09 +00:00
jerry 4816a30db3 Feature to drag a file from Windows (client) to Mac (server):
- changed the size of the window for dragging on Mac to 3 by 3 pixels.
- on server side, use a new thread to write file to the drop directory.
2013-09-24 16:29:51 +00:00
jerry e145fef76f moved fake esc and lmb between getDropFileURL and draggingInfoSending, otherwise it would make getDropFileURl return null or fail to fake lmb up on carbon hardware layer, then can not move mouse back from client 2013-09-24 10:33:29 +00:00
jerry 57db3da6f3 faked escape key down and up then a left mouse button up in CServer when isSwitchOkay return true.
removed the assertions in CScreen so server screen can fake input event as well.
2013-09-23 15:31:34 +00:00
jerry f6ecf9322c hacked isLockedToScreen so that mouse move back from windows client to mac server after dropping a file 2013-09-18 14:32:38 +00:00
jerry 4e09b06cb0 fixed drag drop from Mac server to Windows client 2013-09-18 14:12:19 +00:00
jerry 39734374b1 renamed newCursor to newPos 2013-09-18 09:21:22 +00:00
Nick Bolton 0d65ff9a4c removed thread delete; threads are deleted automatically 2013-09-18 08:35:00 +00:00
Nick Bolton 2935c6671e added --enable-drag-drop arg and supporting gui changes. 2013-09-18 08:34:32 +00:00
jerry 7455ce70e0 supported dragging a file from different sides of server (up, down, right and left) to a Mac client 2013-09-17 19:22:21 +00:00
Nick Bolton 37140f9e93 newlines for outputDebugStringF usage. 2013-09-17 18:47:40 +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
Nick Bolton 760e38eeba added some hacky sleeps to temporarily fix some thread timing issues (causing access violations). the best fix would be to use wait cond vars, but first we need to really understand the bug. 2013-09-16 15:21:36 +00:00
jerry 6f982a501a fixed dragged name out of date. 2013-09-13 15:44:33 +00:00
jerry e9f43fa7c5 - using cocoa code to fake mouse button down instead of using synergy code.
- fake a ctrl key up and esc key down and up before leave the screen if there is a dragging operation.
2013-09-12 17:42:50 +00:00
jerry dbc7659776 changed the transparency of the window where drag is from on mac. 2013-09-12 11:43:34 +00:00
Nick Bolton 501e894d03 - modified windows installer to register new shell ext dll for drag/drop.
- stopped release shell ext dll from crashing by initializing ref counting members.
- added logging to shell ext dll to debug crash.
2013-08-31 17:05:17 +00:00
Nick Bolton bf0204e7c2 ifdef'd out the COSXDragView implementation on osx < 10.7 2013-08-30 21:36:04 +00:00
jerry fbfea7b543 fixed previous commit - the 10.6 compile error was coming from COSXDragView.h, not COSXDragSimulator.m 2013-08-30 21:17:09 +00:00
jerry 6e57005b4a limited drag file feature only for mac 10.7 or above 2013-08-30 20:18:13 +00:00
jerry 9d62232a72 fixed parentheses mess 2013-08-30 20:08:20 +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 012fe6ddd8 - Log out dragging file's directory in Synergy (using COM shell extension)
- Change shell extension dll Main.cpp to synwinxt.cpp
2013-08-23 09:59:31 +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 a25587c4c5 - Removed GCM, CTR and OFB encryption modes.
- Every time server sends CALV message, IV will be changed as well.
2013-08-16 18:06:30 +00:00
Nick Bolton 17410d5706 patch by Yutaka Tsutano - fixes: Bug #3287 - Mac does not wake up 2013-08-02 16:48:09 +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 0f83676c60 Patch by Jerry:
- Fixed include path
2013-07-24 20:16:35 +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 6919b68947 patch by Feng Ye - initialize m_typesForCClient 2013-07-01 12:25:04 +00:00
Nick Bolton 18a3db6843 patch by jerry: fixed new event queue on Mac and Linu 2013-06-29 22:02:04 +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 9f25a1efcd stripped out remaining vnc stuff 2013-05-31 16:06:51 +00:00
Nick Bolton 1b969a4283 removed dead vnc integration attempt. 2013-05-31 15:43:37 +00:00
Nick Bolton f4f7f69b3f moved new crypto stuff into io library, since it inherits CStreamFilter 2013-05-30 13:48:08 +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 607f8c9321 fixed: new iv was used before it was sent to the client, so the client could not decrypt new iv. 2013-04-11 22:30:24 +00:00
Nick Bolton 1dccfe6c53 fixed: real server dtor being called (we forgot to set m_mock - FUUUUUUUU). also added quick and dirty backtrace for osx, since we keep accidentally calling that singleton in unit tests... could be handy, we should consider refactoring into a func maybe. 2013-04-11 05:50:59 +00:00
Nick Bolton 90bd08d86c revert temp logging. 2013-04-11 05:09:17 +00:00
Nick Bolton 7dcc1151c7 more temp logging to try and understand why IEventQueue singleton is being used on build machines. 2013-04-11 04:53:59 +00:00
Nick Bolton 530b68fc19 temp log line for assert -- trying to detect random memory corruption on build machines. 2013-04-11 03:46:12 +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 9cd8023e92 fixed windows 64-bit warnings. 2013-04-10 15:04:14 +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 b2746bc1b2 added unit test to make sure IV works as we expect. 2013-04-08 13:01:21 +00:00
Nick Bolton 0a69c28ac5 implemented crypto stream, with some extra unit tests 2013-04-05 16:33:48 +00:00
Nick Bolton d0081ebd7a removed #pragma once from cpp. 2013-04-04 22:06:42 +00:00
Nick Bolton 21a4d0f586 #if for win32 messagebox stuff 2013-04-04 21:57:51 +00:00
Nick Bolton 3aaebd9e50 Patch by Jerry:
* wrote CCryptoStream and supporting unit tests
* changed CStreamFilter to accept CMockEventQueue
* changed CStreamFilter's dtor to virtual because it is inherited
2013-04-04 16:17:25 +00:00
Nick Bolton 7040905632 crypto++ -- upgraded to 5.6.2 and added zip to svn instead of individual source files (easier to manage). also added unit test to prove that linking works well on windows. 2013-04-03 12:59:02 +00:00
Nick Bolton 6ec2ea2c0e patch by jerry -- his first patch! :-)
issue #421 -- portable version for windows.
2013-03-15 16:14:43 +00:00
Nick Bolton c34918fca1 appears to fix mouse cursor randomly not showing/hiding bug -- not sure though 2012-10-30 18:42:58 +00:00
Nick Bolton eda0018fc5 attempted fix to 'cursor does not show' bug, though i don't think the issue is solved, it appears to be more stable (but it's so hard to tell, since the bug is so random) 2012-10-29 13:43:08 +00:00
Nick Bolton 69db341660 added cursor show/hide test, and modified osx screen class to be more robust with memory usage. also fixed some bad code style. 2012-10-28 11:36:30 +00:00
Nick Bolton e9bf981eec tweaked cursor show/hide log messages 2012-10-26 00:58:11 +00:00
Nick Bolton 240c5a781d fixed wrong code style around cursor show/hide, made secondary input event handling look more readable, cut down on cursor shown/hidden state usage (to make sure the cursor is shown and hidden when needed), added check after show/hide to make sure that it actually happened 2012-10-26 00:21:22 +00:00
Nick Bolton 0502e3b3d6 fixed code style (whitespace) 2012-10-25 21:58:24 +00:00
Nick Bolton 7f6eca9eb4 corrected license and author attribution (cs 2002-2012, nb 2008-2012) 2012-09-04 02:09:56 +00:00
Nick Bolton 3f49e1aa52 fixed: log line was err, should be debug 2012-08-03 17:03:24 +00:00
Nick Bolton dde0cfabc1 fixed: log class using wrong debug macros 2012-07-29 02:10:25 +00:00
Nick Bolton 4d4eecdb5a corrected inconsistent log messages 2012-07-29 00:25:04 +00:00
Nick Bolton 86bb49aeae added feature to control uac elevation on desk switch (login screen, lock, etc) 2012-07-28 13:34:35 +00:00
Nick Bolton 268f3a99bb added process elevation support to the relauncher, very experimental, has some bugs. 2012-07-28 02:59:20 +00:00
Nick Bolton 1c89fd2ef6 reverted patch for #242 (right shift broken for ms remote desktop) to fix bug #2799 (right shift broken for osx). 2012-07-25 00:06:27 +00:00
Nick Bolton 6dcefaf353 patch: for "old" unix, fixed compile problems (missing xi2 stuff), and refactored header tests (thanks to Jim Hague) 2012-07-20 15:14:19 +00:00
Nick Bolton 82a439f893 patch: build CGameDevice module on all platforms since it's cross platform code anyway (thanks to Jim Hague) 2012-07-20 15:10:36 +00:00
Nick Bolton bc3a76770c patch: feature #2974 - multi touch gestures. thanks to Bo Jordan. 2012-07-20 12:27:26 +00:00
Nick Bolton de30d04c72 added failing unit test and event queue DI to ms desks class. 2012-07-20 12:24:55 +00:00
Nick Bolton 3e0f062df0 process stop detection and relaunch feature (useful for winxp where the server/client is killed at logout). 2012-07-14 04:48:32 +00:00
Nick Bolton 4378e520f0 fixed: on windows xp daemon deadlocks and synergys crashes on startup. also fixed uninitialized ipc program args value (always turning ipc on). moved the event queue further up the stack for (client, server and daemon) so that it's always available (not just in the main loop). 2012-07-14 00:15:07 +00:00
Nick Bolton 764d63a5d5 improved ipc log messages. 2012-07-13 17:34:59 +00:00
Nick Bolton 738c321bae fixed lousy ipc client/server cleanup and shutdown doubled timeout. 2012-07-13 17:08:00 +00:00
Nick Bolton 82d91605fa changed ipc protocol to be more like original synergy protocol (4 byte message codes and better use of protocol util class). 2012-07-11 18:06:10 +00:00
Nick Bolton eca240eec7 changed integ tests to use another port for ipc. 2012-07-11 12:07:13 +00:00
Nick Bolton 5f0402d47b fixed linux syntax and build errors 2012-07-10 18:35:33 +00:00
Nick Bolton e942093407 added "shutdown existing processes" feature to relauncher. 2012-07-10 11:54:20 +00:00
Nick Bolton f9f04034c9 fixed: ipc client running on synergyc wasn't sending hello message, and so wasn't getting shutdown message. edits to CIpcClient or CIpcTests weren't really needed, but looks slightly better this way maybe. 2012-07-10 11:23:08 +00:00
Nick Bolton 5be1fd0cfa made ipc log outputter message drop mechanism only drop messages from the buffer thread (*should* not cause deadlock, but feels a bit risky). 2012-07-10 10:04:52 +00:00
Nick Bolton 8bad45e8a2 * fixed a shit-ton of memory leaks (lots in the ipc log handler, oops)
* added non-pod data support to events (event delete can now call dtors)
* improved cleanup of ipc message objects (because of non-pod event data support)
* moved the "message received" event up to ipc server and client (passed on from proxies)
2012-07-10 01:51:51 +00:00
Nick Bolton 21cf3f2478 fixed minor warning - type signing mismatch. 2012-07-09 12:27:13 +00:00
Nick Bolton 346666791e * made gui ipc reader more robust by getting rid of reader thread (but read wait now blocks gui thread)
* separated ipc client proxy mutex into read and write (i think read was deadlocking write)
* fixed cpu spinning on ipc log send buffer thread (now uses wait cond like before).
2012-07-09 12:09:24 +00:00
Nick Bolton e501552f24 * increased gui ipc read check (yes yes, i should be using wait cond... but qt mutexes suck)
* added mutex to client proxy to protect stream
* added try/catch to ipc log outputter buffer thread
* protected ipc client proxy list with mutex (saw a weird stl error, might be caused by cross-thread weirdness)
2012-07-08 17:49:45 +00:00
Nick Bolton ecf1833f36 * removed wait cond and mutex usage from gui ipc log reader (it was being used incorrectly anyway)
* raised the log-to-console level to DEBUG2
* added force option to ipc log buffer (to side-step the anti-recursion "mechanism")
* made relauncher always relay server/client messages to ipc client (gui)
2012-07-08 16:27:28 +00:00
Nick Bolton f0493351a1 attempting to solve ipc recursion/deadlock problem by always buffering in the log outputter. 2012-07-08 16:01:27 +00:00
Nick Bolton af9a6beb78 made ipc reader on gui side more robuts, but deadlocking issue on ipc server still exists (caused by sending log messages). 2012-07-06 22:17:26 +00:00
Nick Bolton 663cd28f2d attempting to fix deadlocks by going mutex crazy (this never ends well) 2012-07-06 16:18:21 +00:00
Nick Bolton 17a92f4f4c attempted to fix deadlock caused by ipc logger causing recursion. 2012-07-06 14:46:46 +00:00
Nick Bolton 12eb8efb61 implemented ipc message buffering (dequeues on gui reconnect) 2012-07-06 12:27:22 +00:00
Nick Bolton fbc4a89653 added retry to installer for synrgyhk.dll file delete problem, seems to help.
added hack to daemon to suppresses service controller false positive error.
tidied up a few of the log lines to make the place look nicer for newbies.
removed annoying build line from dist command.
2012-07-05 21:26:41 +00:00
Nick Bolton ddb2d7feeb fixed: ipc client connected event was being wiped out
daemon now communicates graceful shutdown message through new ipc system.
2012-07-05 19:10:04 +00:00
Nick Bolton 3d6551f708 moved stream into synergy namespace (to prevent naming collision in win libs)
implemented ipc "hello" message (to identify client type)
integ tests working for hello message, but use of ipc in main program has problem with events.
2012-07-05 18:05:35 +00:00
Nick Bolton 4e268760b3 ripped out rest of shitty named pipes ipc stuff.
fixed the byte to int reader on the gui ipc (unsigned chars, argh!!!).
retry on fail for gui ipc connect.
2012-07-04 23:27:03 +00:00
Nick Bolton a8ce3418fe improved hook lib load fail error a little 2012-07-04 23:25:25 +00:00
Nick Bolton 0537bbdfad increased ipc message length. 2012-07-03 17:33:19 +00:00
Nick Bolton 7d5fbde71d fully replaced gui/daemon named pipes ipc with tcp ipc. 2012-07-03 14:15:05 +00:00
Nick Bolton 79d73bd163 ipc send message to client finished. 2012-07-02 15:28:23 +00:00
Nick Bolton 97b2cd669d finished ipc send to server. 2012-07-02 13:45:52 +00:00
Nick Bolton 05775bc73d finished ipc connect with unit test. 2012-07-01 21:18:21 +00:00
Nick Bolton 218e98398f ipc client connect test with working unit tests. 2012-06-29 11:33:21 +00:00
Nick Bolton 7d8fd5927d skeleton for new ipc code. 2012-06-28 07:29:06 +00:00
Nick Bolton 0c42964f3a normalised line endings. 2012-06-28 04:40:23 +00:00
Nick Bolton 488241850c moving 1.4 to trunk 2012-06-10 16:50:54 +00:00
Nick Bolton e65886857d removed trunk; please commit to (and build patches against) release branches instead. 2011-10-05 00:10:22 +00:00
Nick Bolton 2fe11744cf merged 1.4 r1043:1044 into trunk 2011-06-18 23:44:23 +00:00
Nick Bolton b4918163a7 merged 1.3 r1009:1010 into 1.4 and trunk 2011-05-21 02:47:10 +00:00
Nick Bolton 5a315324ca merged 1.4 r1007:1008 into trunk 2011-05-21 00:30:08 +00:00
Nick Bolton bebf8c2c2c made dll copy quiet and overwrite 2011-05-13 21:32:02 +00:00
Nick Bolton 52edb17015 fixed missing kDEBUG2 error in trunk and 1.4 2011-05-12 22:34:38 +00:00
Nick Bolton 13c6c36107 merged 1.4 r982:983 into trunk 2011-05-09 00:28:45 +00:00
Nick Bolton 627771cf13 merged 1.3 r978:979 into trunk 2011-05-08 22:46:06 +00:00
Nick Bolton 710e3a1967 removed unused declaration 2011-05-07 02:47:20 +00:00
Nick Bolton edeae477e1 implemented google mock config and gave it a quick try (see: add_newValue_writeWasCalled) 2011-05-07 02:12:09 +00:00
Nick Bolton 933522451a win32: Task #2933 Prevent multiple integ tests from running in parallel (had to expose some arch misc windows functions) 2011-05-06 21:13:07 +00:00
Nick Bolton 8472fec34d removed 'lib' prefix from libraries (cmake does this for us automatically on UNIX) 2011-04-25 22:21:32 +00:00
Nick Bolton 66c4bdc356 fixed library linkage on linux 2011-04-25 22:10:46 +00:00
Nick Bolton 143c4cd297 restructured source code, put CMakeLists.txt in more conventional locations, and split the libraries up 2011-04-25 21:09:32 +00:00