Commit Graph

949 Commits

Author SHA1 Message Date
Keith Winstein aca69ef684 Server does not need to raise exception on failed sendto(). Fixes #183. 2012-04-15 23:13:58 -04:00
Keith Winstein 6b6747cda7 Fix valgrind error with 1-col char then 2-col char in a 1x1 terminal 2012-04-15 17:11:40 -04:00
Keegan McAllister cd2d482484 Don't use *_t for our own typedefs
It's reserved by POSIX.

(closes #158 pull request)
2012-04-15 13:50:18 -04:00
Keegan McAllister 937882caff Remove Boost dep for Fedora too 2012-04-15 13:49:15 -04:00
Keegan McAllister 280400152d Replace one find_if with a loop
g++/libstdc++ 4.1.2 is unhappy with this use of bind2nd, possibly because the
argument is a reference.  This is a problem for EL5.
2012-04-15 13:49:15 -04:00
Keegan McAllister 8bcc001b52 Remove Boost entirely 2012-04-15 13:49:15 -04:00
Keegan McAllister 2675f13676 Remove boost::lambda remaining instances from terminaloverlay.cc 2012-04-15 13:49:15 -04:00
Keegan McAllister 06fa8eaedb Remove boost::lambda from PredictionEngine::get_or_make_row 2012-04-15 13:49:15 -04:00
Keegan McAllister 5f1bc88ed8 Remove boost::lambda with for_each in terminaloverlay.cc 2012-04-15 13:49:15 -04:00
Keegan McAllister 8f099cafbb Remove boost::lambda from ConditionalOverlayCell::get_validity 2012-04-15 13:49:15 -04:00
Keegan McAllister 83694977a7 Remove boost::lambda from transportsender.cc 2012-04-15 13:49:15 -04:00
Keegan McAllister 8bc9aa33bf Remove boost::lambda from completeterminal.cc 2012-04-15 13:49:15 -04:00
Keegan McAllister 4152af9c8e Remove BOOST_AUTO from terminaloverlay.cc 2012-04-15 13:49:15 -04:00
Keegan McAllister 5320fbd346 Remove BOOST_AUTO from completeterminal.cc 2012-04-15 13:49:15 -04:00
Keegan McAllister 6e56fd2157 Remove BOOST_AUTO from terminaldisplay.cc 2012-04-15 13:49:15 -04:00
Keegan McAllister 87a5f86794 Remove BOOST_AUTO from terminalframebuffer.cc 2012-04-15 13:49:15 -04:00
Keegan McAllister 5904d4f5e6 Remove BOOST_AUTO from transportsender.cc 2012-04-15 13:49:15 -04:00
Keith Winstein cc8b1f293a Forcibly detach earlier in blind effort to fix #114 (needs testing) 2012-04-15 12:38:48 -04:00
Keith Winstein 8f60f7ab05 Convey locale-related environment variables as backup, and nicer error.
Fixes #74.
2012-04-14 16:56:48 -04:00
Keith Winstein 597756b846 Document new -v (verbose) server switch. 2012-04-14 13:56:46 -04:00
Keith Winstein a4221d17a4 Disable posterization and rely solely on TERM to tell remote end about colors
(should help #155 github issue)
2012-04-14 13:46:38 -04:00
Keith Winstein 0e9be1b471 Close terminal fd's to properly detach on old sshd (e.g. RHEL/CentOS 5.0).
May help some sufferers of #114 github issue.
2012-04-14 12:37:28 -04:00
Keith Winstein 1823f7e860 Provide more helpful error message on lack of -t argument. 2012-04-14 12:29:05 -04:00
Keith Winstein 5c20c8d4be Keep using OSC 0 when possible to preserve compability with older clients.
Re: #137
2012-04-14 02:11:31 -04:00
Keith Winstein d0a818d2e2 Track icon name and window title separately. Implement MOSH_TITLE_NOPREFIX 2012-04-14 01:55:28 -04:00
Keith Winstein 53f79e4261 Fix vttest "Funny scrolling regions" by ignoring some invalid scroll regions
Addresses #155 github issue.
2012-04-14 01:11:57 -04:00
Keith Winstein 45487f6623 Handle crazy cursor more gracefully (closes #168) 2012-04-13 14:03:16 -04:00
Keith Winstein 7be90ae244 Close server-related file descriptors before executing child process
Closes #170 github issue.
2012-04-13 13:48:56 -04:00
Keegan McAllister 0eec0b60f0 Linux: Use our own signalfd wrapper, rather than libstddjb
selfpipe already does a fine job of interfacing to signalfd.  But Debian and
Ubuntu want us to depend on the skalibs-dev package rather than build libstddjb
ourselves.  That would be fine except that skalibs-dev has static libraries
only, and they aren't built with -fPIC.  This interferes with building
mosh-{client,server} as position-independent executables, which is a desirable
security measure.

So we have our own wrapper, which invokes either signalfd or selfpipe.  And we
build it ourselves with our own flags, because it's part of the Mosh project
proper.

(closes #108)
2012-04-13 12:33:21 -04:00
Keegan McAllister 93325d3ef0 Include -fPIE when we check for $LD -pie
configure's linker flag check also compiles a C++ program.  g++ -pie informs
both the compiler and linker, but clang++ -Wl,-pie is only a linker flag, and
the linker will complain that the code hasn't been compiled as
position-independent.
2012-04-13 12:27:27 -04:00
Keegan McAllister 8c16ca8123 Try $LD -Wl,-pie if $LD -pie fails
clang on OS X wants the former.

c.f. http://bugs.ruby-lang.org/issues/5697
2012-04-13 12:27:27 -04:00
Keegan McAllister d2434d1a79 Check compiler support for -fno-default-inline and -pipe
clang was spewing warnings about the unrecognized -fno-default-inline.  (Oddly,
it warns only with -c, not when compiling directly to an executable.)  For
completeness we also check -pipe, even though clang is OK with that one.

It should be fine to omit either flag.  gcc -fno-default-inline drops the
implicit 'inline' annotation on functions defined inside a class scope, but
'inline' is only a hint anyway.  -fno-default-inline does not change linkage.
-pipe is merely a compile speed optimization.
2012-04-13 12:27:27 -04:00
Keegan McAllister 62b6137ff5 Grep for clang warnings when testing compiler flag support
There is no way to make clang's "argument unused" warning fatal.

Ideally the search string would also include 'clang: ' but this output might
depend on clang's argv[0].
2012-04-13 12:27:27 -04:00
Keegan McAllister b5ab0d0736 Document the binary hardening measures 2012-04-13 12:27:25 -04:00
Keegan McAllister 349e2d20c8 Use the hardening flags
Closes #79.
2012-04-13 12:25:09 -04:00
Keegan McAllister ffd7332f8d Detect binary hardening flags supported by the compiler and linker 2012-04-13 12:25:09 -04:00
Keegan McAllister f7fc34e0c7 Add ax_check_{compile,link}_flag.m4 2012-04-13 12:25:09 -04:00
Daniel O'Connor 3d76ec8208 Skip 'new' otherwise BSD getopt will think there are no options.
IMO 'new' should be dropped entirely since it's not optional and 'new' is the only choice.

If it were to change in future then it should go after all the options.

(closes #111)
2012-04-13 12:07:49 -04:00
Anders Kaseorg 1f34a08346 AX_CHECK_LIBRARY: Bump serial to match upstream
The m4_ifnblank patch was accepted upstream as
http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=commitdiff;h=7ea1d1b18e5c1c3300936dd89c3e55b5b370ae72

Signed-off-by: Anders Kaseorg <andersk@mit.edu>

(closes #153)
2012-04-13 12:06:23 -04:00
Keegan McAllister b86cf72ea4 README: Clarify that mosh-{client,server} don't need to be "installed" per se 2012-04-12 22:02:28 -07:00
Keegan McAllister 88de326344 README: Mention IRC channel 2012-04-12 21:53:02 -07:00
Keegan McAllister b803c49fc9 README: Add warning about env var security 2012-04-12 21:53:02 -07:00
Keegan McAllister afa09948fe README: Remove some information duplicated on mosh.mit.edu 2012-04-12 21:53:02 -07:00
Andy Stewart 99842c974f Augment Ubuntu PPA installation instructions.
Ubuntu 10.04 does not recognise `sudo add-apt-repository ppa:blah` out of the box.
2012-04-11 11:29:31 +03:00
Keith Winstein 719e085f3e Bump version number 2012-04-11 03:37:09 -04:00
Keith Winstein a67ae7b0f4 Support 16-color set (per Anders Kaseorg).
Closes #106 github issue.
Closes #133 github issue.
Closes #131 github issue.
2012-04-11 03:09:26 -04:00
termie 774e50dc19 Allow lowercase "utf-8" in charset for OS X iTerm.
Closes #104 github pull request.
2012-04-11 02:49:35 -04:00
Anders Kaseorg 9cec566cd1 Find ncurses from pkg-config if possible, and prefer separate libtinfo
Recent ncurses can be configured --with-termlib, which splits out the
terminfo-level functions from libncurses into a separate libtinfo.
This allows us to avoid an unnecessary dependency on libncurses.  (We
already avoided this on distributions that link with -Wl,--as-needed.)

Signed-off-by: Anders Kaseorg <andersk@mit.edu>

Closes #128 github pull request.
2012-04-11 02:47:55 -04:00
Peter Jeremy fd0ddf0e22 strtol(3) can optionally set errno to EINVAL if no conversion could be
performed and FreeBSD (at least) implements thin behaviour.  Add an
explicit test to detect this situation in Dispatcher::parse_params().
(This behaviour difference is not relevant to other uses of strtol()).

This corrects the mishandling of (eg) "CSI m" on FreeBSD.

Closes #129 github pull request.
[keithw -- also fixes same issue with mosh-server on OS X]
2012-04-11 02:46:26 -04:00
Keegan McAllister c6751cfb92 configure.ac: Fix protoc check
AC_MSG_ERROR inside the variable assignment doesn't work properly.  We get
output like

    checking for protoc... ./configure: line 4524: is: command not found
    no

and then the build continues (and fails) with PROTOC="".

Closes #132 github pull request.
2012-04-11 02:45:15 -04:00