Commit Graph

38 Commits

Author SHA1 Message Date
crs23 5c29ae9967 Applied patch by maruel:
- Fixed taking the address of begin() on an empty std::vector.
- Fixed nsis makefile to use %ProgramFiles% environment variable.
- Fixed nsis makefile to pass the output directory and file to makensis.
- Fixed synergy.nsi to get the files from the output directory. That
  enables a debug build of the installer.
- Fixes to compile under VS2005.

I did not apply VS2005 project files, instead adding nmake files.
nmake is pretty weak but the makefiles can be modified without having
visual studio.  Also modified the .rc files to not use winres.h.
This plus nmake means synergy can now be built using the freely
downloadable Microsoft Windows SDK for Vista, available from
microsoft's web site.  This change removes all of the old VC++6
project files in favor of the nmake files.  It also removes the
XCode project in favor of ./configure and make.

All of the nmake files are named nmake.mak.  Only the top level
makefile is directly useful (the rest are included by it) so all
builds are from the top level directory.  nmake knows the following
targets:

  all:  build synergy.exe, synergyc.exe and synergys.exe
  clean:  remove all intermediate files, keep programs
  clobber:  clean and remove programs
  installer:  build programs and an installer
  debug:  build a debug version of 'all'
  release:  build a release version of 'all'
  debug-installer:  build an installer of the debug build
  release-installer:  build an installer of the release build

The default build version is release so 'all' and 'installer' will
build a release version.  The installer itself never has debug
symbols, just the stuff it installs.  The default target is 'all'.
To build use:

  nmake /nologo /f nmake.mak <target>

VC++ and VisualStudio users may need to manually run vcvars.bat in a
command.exe or cmd.exe window before invoking nmake.  The Window 98/Me
command.exe may not handle potentially long command lines;  I haven't
tried to verify if that works.
2007-09-06 05:01:44 +00:00
crs 52ae656411 Restored lost files and changes in version 1.3.1 to depot. 2007-06-17 11:19:18 +00:00
crs 3d961e4767 Adapted and applied patch by Brent Priddy for re-resolving the server
hostname on each connection.  This allows the client to startup
without being able to resolve the server's hostname.  It also lets
it handle changes in the server's address, a typical scenario when
the client is a laptop moving between networks.
2004-12-30 13:28:51 +00:00
crs c135432040 Changed scheme used to lock the socket multiplexer's job list.
I think the new scheme is easier to understand.  It should have
exactly the same behavior.
2004-11-11 19:17:03 +00:00
crs 07e2a3e511 Removed recursive mutexes. Simplified stream filters as a side
effect.  Removed -D_BSD_SOURCE and -D_XOPEN_SOURCE=500 from
compile since they're not longer necessary.
2004-09-29 21:59:26 +00:00
crs ef85356f45 Worked around bug/weirdness on OS X. It's reporting that a
non-blocking connect is available for writing (i.e. the connection
was successful) when the connection has actually failed.  This
caused synergy to rapidly retry connecting.  This change makes
synergy check for a connection error whether one was reported or
not.  Thankfully, OS X does correctly set the socket error state
when it bogusly reports a successful connection so we can tell the
connection failed.
2004-07-29 21:48:40 +00:00
crs 970c8b2fba Added workaround for apparent bug in OS X 10.3.4. If you started
a synergy client on that OS and pointed it at a system that wasn't
listening for connections then instead of the connection attempt
failing with 'connection refused' the system would claim the
connection succeeded.  A subsequent read would reveal the problem
and synergy would "disconnect" and retry, causing the CPU to spin.
The system does correctly set the socket error state so this
workaround checks for socket errors when connecting whether or not
select reports an error state.

Also, sometimes the system doesn't claim success but doesn't report
an error.  Synergy eventually times out these attempts.
2004-07-28 21:54:39 +00:00
crs 62b5cefb64 Changed VC++ projects to put release targets in ./build, debug
targets in ./debug, and intermediate files under ./gen.
2004-05-16 18:02:49 +00:00
crs ab0a693891 Fixed bug in TCP socket that caused a busy loop in the socket
multiplexer.  That caused a lock up on windows when quitting
the server with a client connected.
2004-05-04 19:37:46 +00:00
crs 083607345a Removed DEPTH, VDEPTH, and VPATH from makefiles. 2004-04-04 12:12:32 +00:00
crs d6ec331b09 Made all arch sockets non-blocking. 2004-02-29 16:11:17 +00:00
crs 54acf38d82 Merged Win32 updates. Added full warnings on g++. Fixed bug in
client when handling server rejection.
2004-02-28 12:19:49 +00:00
crs 612a2054e6 Updated Makefiles and win32 projects and removed dead classes. 2004-02-15 18:12:35 +00:00
crs 48908242d2 Checkpoint. Conversion to event driven system complete for Unix.
Still need to convert win32 platform specific files.
2004-02-15 17:32:11 +00:00
crs 1861f21fb5 Checkpoint. synergys now works. Still need to do lib/client and
synergyc.
2004-02-14 14:04:36 +00:00
crs 3bcdf139a7 No longer sending incorrect disconnect events in read() and
removed redundant sending of disconnect event in close().
2004-02-08 16:51:45 +00:00
crs 848aee7a3a Checkpoint. Code does not run. Still converting over to new
event loop model.  Streams, stream filters, and sockets are
converted.  Client proxies are almost converted.  CServer is
in progress.  Removed all HTTP code.  Haven't converted the
necessary win32 arch stuff.
2004-02-01 21:09:22 +00:00
crs 4c7e524896 Checkpointing centralized event queue stuff. Currently have:
an event queue and events, TCP sockets converted to use events,
unix multithreading and network stuff converted, and an X Windows
event queue subclass.
2004-01-24 16:09:25 +00:00
crs f65921bc3f Refactored some platform dependent code into a new library,
lib/arch.  This should make porting easier.  Will probably
continue to refactor a little more, moving platform dependent
event handling stuff into lib/platform.
2003-01-04 22:01:32 +00:00
crs 41dc621579 Fixed typos. 2002-12-25 18:42:39 +00:00
crs 9567a970a8 Changes to support building on solaris, irix, and darwin. Also
removed test for working fork (AC_FORK).
2002-12-25 10:35:59 +00:00
crs 17e8ba2dbd Merged fixes for building on MacOS X. It dies on one file with
an 	internal compiler error;  building that file without
optimization works around the compiler bug.  Sadly, synergy can
only interact with X windows, not native MacOS windows.
2002-11-03 18:09:28 +00:00
crs cf13980bb8 Fixed bugs in error handling in CTCPSocket; previously was not
handling read errors at all and error handling for writes was
never being used.  Now the socket disconnects if a read or write
fails on the socket for any reason except EINTR.  Also added
<netinet/in.h> to includes in CNetwork.h because it's needed on
some platforms.
2002-10-30 22:16:30 +00:00
crs 9102fb80b9 Ported recent changes to win32 and fixed CRLF problems with project
files (most had CRCRCRLF).
2002-10-29 22:07:55 +00:00
crs 24119802c6 Removed obsolete comment. 2002-10-28 21:33:48 +00:00
crs 8f229393b8 Replaced inet_addr() with inet_aton(), which is a better function
anyway but isn't implemented in winsock, removed use of INADDR_NONE
which some platforms don't define except on winsock which does
define it, and changed SOL_TCP to IPPROTO_TCP which should work on
more platforms.
2002-10-20 22:36:24 +00:00
crs 586a5a81ab Changed non-reentrant network functions to be reentrant and
thread safe.
2002-10-17 20:56:28 +00:00
crs 11e29ff7eb Added support for using select() instead of poll(). 2002-10-16 22:01:50 +00:00
crs d8dde48c2b Changed log() and logc() macros to LOG() and LOGC(), respectively.
This avoids a conflict with the standard math library log()
function.
2002-10-15 21:29:44 +00:00
crs fec679cfe5 added better network error message support. 2002-09-14 20:56:28 +00:00
crs 435bb738e6 added win32 launcher program. also changed VC++ dsp and dsw
files to binary form so \r\n aren't converted.  added icons
to client and server apps on win32.
2002-08-11 11:49:36 +00:00
crs f6c3a9453b added copyright to top of each file. 2002-08-02 19:57:46 +00:00
crs 5bb5542a13 fixes to get vpath builds working (necessary for `make distcheck'). 2002-07-31 17:34:05 +00:00
crs fae797e220 Moved version header to base and it now uses VERSION macro
from config.h if available (which means version is now a
string, not three integers).  Changed version to 1.0.0 and
protocol version to 1.0.  And added MAINTAINERCLEANFILES
to makefiles to remove generated files.
2002-07-31 16:57:26 +00:00
crs 8c1f5f623b added EXTRA_* files to get `make dist' doing the right thing. 2002-07-31 16:27:06 +00:00
crs f5795a6630 added new files to projects and added two project files that
should've been adding in change 530.
2002-07-30 19:03:40 +00:00
crs 69496abbab now using class factories to move some decisions from the libraries
into the application.
2002-07-30 18:31:00 +00:00
crs fee4095624 Reorganized source tree. Moved client.cpp into cmd/synergy as
synergy.cpp and server.cpp into cmd/synergyd as synergyd.cpp.
Moved and renamed related files.  Moved remaining source files
into lib/....  Modified and added makefiles as appropriate.
Result is that library files are under lib with each library
in its own directory and program files are under cmd with each
command in its own directory.
2002-07-30 16:52:46 +00:00