Commit Graph

60 Commits

Author SHA1 Message Date
John Hood 1077db41b6 Support OpenBSD 6.0 pledge() syscall for sandboxing. 2016-09-19 13:23:16 -04:00
John Hood 882539884e Remove unnecessary usage of #include <iostream>. Rename templated impls from .cc to -impl.h. 2016-05-14 00:10:59 -04:00
John Hood ca21788c96 Remove usage of exceptional fdsets with select(). 2016-01-11 04:35:21 -05:00
John Hood 551b77f27e Remove display-posterizing code. It's been dead 3 years.
Signed-off-by: John Hood <cgull@glup.org>
2015-12-06 19:03:36 -05:00
John Hood b41bad918d Make Terminal::Framebuffer::Rows shared and copy-on-write.
* Support both std:: and std::tr1:: shared_ptr. FreeBSD 10 now uses C++11 by default.
* Remove Framebuffer pointers in STMClient
2015-12-06 17:42:34 -05:00
John Hood 5959342ac7 mosh-client: return meaningful exitstatus on network setup/teardown or other failure 2015-10-03 03:43:18 -04:00
John Hood fc80eaaecf Show the escape key properly when server unavailable.
Fixes #624.

Signed-off-by: John Hood <cgull@glup.org>
2015-06-11 00:49:06 -04:00
Geoffrey Thomas a38b6f61d5 STMClient::process_network_input: Return void, instead of always true
This function has never in its history had a codepath returning false.
2015-06-04 23:47:32 -04:00
Geoffrey Thomas 5721b392ab Make all exception classes inherit from std::exception
This refactors out a very common pattern of formatting "%s: %s" with
e.function.c_str() and strerror( e.the_errno ) into just the what()
method of NetworkException. It's also a prerequisite for making cleaner
public API for any exceptions we throw, and allows us to more easily
get exceptions passed back to us to handle.
2015-06-04 23:47:31 -04:00
John Hood fdf8e427c3 OpenBSD: Use snprintf, not sprintf (PORT) 2015-05-25 02:17:24 -04:00
Anders Kaseorg 56837881fc Fix MOSH_ESCAPE_KEY validation
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2014-01-08 18:52:08 -05:00
Anders Kaseorg c1f96b37a1 Connection: Store the port number as a string
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-08-17 08:26:30 -04:00
Timo J. Rinne f960a8bcf5 mosh-client: Make terminal escape character configurable
Uses environment variable MOSH_ESCAPE_KEY. Defaults to current Ctrl-^
which is somewhat problematic for many non-US keyboards.

Signed-off-by: Timo J. Rinne <tri@iki.fi>

Closes #425. Closes #215.
2013-05-17 15:05:33 -04:00
Keith Winstein 61c6ee6011 Send SIGSTOP to whole process group on suspend (closes #401) 2013-03-27 00:26:59 -04:00
Keith Winstein abf240768f Cleanups when suspending/resuming with smcup/rmcup 2013-03-11 01:25:18 -04:00
Anders Kaseorg e2abb8524f Catch exceptions by reference
Found by cppcheck.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-03-10 15:48:08 -04:00
Anders Kaseorg 03217ddb5a Move Emulator::{open,close} to Display
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-03-10 15:46:38 -04:00
Keith Winstein e2b40fcaa7 Show infobar when Ctrl-^ is typed. 2012-11-26 04:03:04 -05:00
Keith Winstein 5eafc209ea Allow suspend by keystroke (Ctrl-^ Ctrl-Z)
(based on patch by Nickolai Zeldovich)
2012-11-26 03:34:14 -05:00
Keith Winstein 28ed30c356 Allow stopping (via kill -STOP) and "fg" to resume session 2012-11-04 13:07:24 -05:00
Keith Winstein c0092a6e7e Hop new ports, but keep the old [for a minute, and up to 10 at a time]
(One is silver and the other gold...)
2012-10-05 02:51:25 -04:00
Keith Winstein d17fb7824b Reset fd sets every time we poll (because network.fd() can now change) 2012-10-05 00:06:37 -04:00
Timo Sirainen 0c5307f345 Added forkpty() and cfmakeraw() fallback implementations if they don't exist.
Signed-off-by: Timo Sirainen <tss@iki.fi>
2012-08-11 17:14:44 -04:00
Keith Winstein a744004bf6 Get system timestamp less often (only after sleeping/selecting) 2012-07-26 21:13:26 -04:00
Keith Winstein 92ecb99b71 Add OpenSSL licensing exception 2012-07-20 16:46:00 -04:00
Keith Winstein 37f78d0e4c Disable out-of-order warning (fires too much on some 802.11n networks)
This reverts commit 682bbdfebd.
2012-05-30 02:04:32 -04:00
Keith Winstein 682bbdfebd Warn on out-of-order or duplicated packets (or missing nonce increment!) 2012-05-23 18:08:31 -04:00
Keith Winstein b9ed0cdaa6 Cleanups to "firewalled" quit scenario. 2012-05-23 12:05:59 -04:00
Keith Winstein c0a8cd61ee More graceful quit sequence when UDP is firewalled. 2012-05-23 11:48:10 -04:00
Larry Doolittle eda48085ba Simple spelling fixes 2012-05-23 05:11:05 -04:00
Keegan McAllister 4f23326a92 Use Select signal handling in mosh-{client,server} 2012-05-16 00:00:27 -04:00
Keegan McAllister 768d4ce797 Make Select a singleton
It's going to manipulate process-global signal state, so multiple
instances do not make sense.
2012-05-16 00:00:27 -04:00
Keegan McAllister 2112a3865c Use Select in mosh-{client,server} 2012-05-16 00:00:27 -04:00
Keegan McAllister 02c04fbdaa Display sendto() exception until a successful send 2012-05-09 14:19:46 -04:00
Keegan McAllister 67a85eaf99 Deliver sendto() exceptions without disturbing control flow
This prevents the client from waking up every 200 ms while the network is down.
Addresses #243.
2012-05-09 14:19:46 -04:00
Keegan McAllister 9dddcd8566 Move NetworkException formatting into NotificationEngine 2012-05-09 14:19:46 -04:00
Keith Winstein 2ea3f3a347 Warn when server has not heard from us (even if we have heard from server) 2012-04-30 22:43:45 -04:00
Keith Winstein b9a8b8c009 More helpful messages when locale not found or wrong (closes #209) 2012-04-19 02:35:14 -04:00
Keith Winstein a8c3df9c80 More robust shutdown sequence with warning on unclean shutdown. 2012-04-16 06:22:35 -04:00
Keith Winstein 119bbcaced Add nicer message and 15s timeout if server can't be reached on UDP.
(Closes #152)
2012-04-16 02:31:27 -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 d0a818d2e2 Track icon name and window title separately. Implement MOSH_TITLE_NOPREFIX 2012-04-14 01:55:28 -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 ba6387f36c Allow CryptoExceptions to be fatal 2012-03-31 16:19:33 -04:00
Keith Winstein 9a7f3ad33d Print warnings when IUTF8 missing 2012-03-31 15:20:30 -04:00
Quentin Smith 44ab7360bc Fix poll.h location 2012-03-28 14:32:32 +02:00
Keegan McAllister 7ed5174aa7 Move some locale handling into one place 2012-03-26 20:08:55 -04:00
Keith Winstein 0b0ff72f40 Don't display blue "Connecting..." bar immediately 2012-03-21 19:21:02 -04:00
Keith Winstein 170bc8366a Posterize to 8 colors when outer terminal does not support 256 colors
Fixes #58 github issue.
2012-03-16 17:43:01 -04:00
Keith Winstein 487ab77e42 Eliminate one terminal copy per frame (20% speedup on benchmark) 2012-03-14 01:59:07 -04:00