Commit Graph

268 Commits

Author SHA1 Message Date
Anders Kaseorg a52b095f50 mosh-server: Remove unused mosh_read_line function
This function is buggy.  feof(file) does not become true until after
we’ve tried to read past the last character; it should instead be
checking the getc return value for EOF (which is distinct from any
unsigned char).  Really it should just be replaced by istream
&std::getline(istream &is, string &str).  Fortunately, it’s unused so
we can just delete it.

Resolves a truncated stdio return value issue found by Coverity Scan
service.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-06-04 23:50:40 -04:00
Anders Kaseorg c03bacd0c9 mosh-server: Catch exception for parsing nonintegral number of colors
Print a real error message instead of abnormally aborting.  Found by
Coverity Scan service.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-06-04 23:50:40 -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 b5ac92491c Throw std::exception subclasses instead of std::strings
Now everything we throw or catch ourselves is a subclass of
std::exception.
2015-06-04 23:47:32 -04:00
Geoffrey Thomas aeffb71cfc Style cleanup: "foo &x", not "foo& x" 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 f3073bbe5d Add git commit version info 2015-05-25 03:46:48 -04:00
John Hood fdf8e427c3 OpenBSD: Use snprintf, not sprintf (PORT) 2015-05-25 02:17:24 -04:00
Richard Woodbury cd1317b273 Conditionally rename main to mosh_main for building under NaCl. 2014-04-26 20:50:01 +00:00
Anders Kaseorg 50152bfcba mosh-client: Catch all exceptions when ensuring client is shut down
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2014-01-08 18:54:40 -05: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
Igor Bukanov 96bf5af1b4 mosh-server: allow startup with PTY with zero width or height like Emacs shell.
Closes #472
Closes #473
2014-01-04 02:55:17 -05:00
Anders Kaseorg 553918d3f2 Connection: Support IPv6 addresses
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-08-17 09:02:44 -04: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
Anders Kaseorg 9187e307c6 mosh-client: Print exceptions after the client is shut down
Otherwise the printed exception may be immediately hidden when the
terminal exits alternate screen mode.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-08-17 08:26:30 -04:00
Keith Winstein 45bba44c83 mosh-server: Allow startup without PTY 2013-07-15 11:20:07 -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
Alexander Chernyakhovsky 172b1e5cef Cast time_elapsed to int before calling human_readable_duration
When attempting to build againt EPEL 5, it was noticed that
human_readable_duration expects an int, but time_elapsed is an
integer.  Explicitly static_cast<int>( time_elapsed ) to appease older
compilers.
2013-03-27 02:15:25 -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
Keith Winstein 093bbc9111 Detached warning: Omit spurious utmp entries (generated by screen) 2013-03-10 16:31:37 -04:00
Anders Kaseorg a54e6d1661 STMClient::still_connecting: Make const
Found by cppcheck.

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

Closes #390.
2013-03-10 15:48:12 -04:00
Anders Kaseorg d0eeabb51e human_readable_duration, Terminal::appendstring: Pass strings by reference
Found by cppcheck.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-03-10 15:48:08 -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
Anders Kaseorg ba8d013609 main: Don’t leak desired_ip memory
Signed-off-by: Anders Kaseorg <andersk@mit.edu>

Closes #385.
2013-03-10 15:45:52 -04:00
Anders Kaseorg b9763b6997 serve: Remove dead store of bytes_read
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-03-10 15:45:47 -04:00
Anders Kaseorg d6ff754a9a get_SSH_IP: Don’t leak SSH_writable memory
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-03-10 15:45:47 -04:00
Anders Kaseorg 2686b7c634 main: Don’t leak shell_name memory
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-03-10 15:45:47 -04:00
Alexander von Gernler ebe7ae96f6 fix a perror() message in mosh-server
A perror() message flanking an open() call was reading "dup2" where it
should read "open".

[closes #377]
2013-01-18 11:51:28 -05:00
Anton Lundin 438d0d8b9a Use the right term.h
When ncurses is in a separate include dir, we need to take the term.h
from there to match with the [n]curses.h
2012-12-16 17:30:14 +01:00
Keith Winstein 1fe6799092 Don't leak extra /dev/null fd (thanks to Julien Cristau) 2012-12-12 19:05:24 -05:00
Keith Winstein 1034f7092a Wrap termio.h include in guard 2012-12-12 18:03:15 -05:00
Anton Lundin 55eb2759c0 use unistd.h instead of getopt.h
getopt.h doesn't exist on AIX and getopt is in unistd.h
2012-12-01 14:49:29 +01:00
Anton Lundin 73d39980f4 Solaris term.h needs both termio.h and termios.h
On solaris, the term.h pulls in termio.h and termios.h if it detects
that they are not loaded. Because stmclient.h pulls in termios.h that
breaks type definitions in term.h that needs termio.h.
2012-12-01 12:53:29 +01:00
Anton Lundin 993abf57f1 Rework curses detection
Detect diffrent variants of curses and use them.
2012-12-01 12:53:28 +01:00
Keith Winstein a2da17d48a Don't immediately clear network exceptions, even when problem solved 2012-11-26 04:19:56 -05: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 1c2b48abc6 mosh-server warning on unattached servers checks that device exists 2012-11-26 03:06:11 -05:00
Keith Winstein 2f8a67acc7 Adjust timeouts so server dies quicker, updates utmp slower 2012-11-26 02:21:06 -05:00
Keith Winstein 486325e76b mosh-server: Fix bug where spins forever if process dies while disconnected 2012-11-26 02:14:48 -05:00
Keith Winstein b018e3a1ab Make "elapsed time" human readable even when other error is displayed 2012-11-05 22:02:46 -05:00
Keith Winstein cdd00fee42 Simplify implementation of human_readable_duration() 2012-11-05 21:57:02 -05:00
Kevin Ballard efbe9b2bab Make the 'lost contact' string more human-readable
Teach the 'lost contact' warning string about time units larger than
seconds. After 60 esconds it will switch over to using a time display
that looks like 1:23, or 1:02:34.

Fixes #321.

Signed-off-by: Kevin Ballard <kevin@sb.org>
2012-11-05 18:39:09 -08:00
Keith Winstein 28ed30c356 Allow stopping (via kill -STOP) and "fg" to resume session 2012-11-04 13:07:24 -05:00
Luke Mewburn 141ec239da Support port range as -p/--port PORT[:HIGHPORT].
Extend mosh and mosh-server to support parsing a high port from
the desired_port argument.  The first (low) port must not be
greater than the second (high) port.
If only one value is provided, behaviour is as before; bind
to one port.  Also tweak the formatting in mosh-server(1) synopsis
to be consistent.

This resolves mosh issue # 296.

Signed-off-by: Luke Mewburn <luke@mewburn.net>
2012-10-29 14:59:28 -04:00
Keith Winstein da18a8c7ea Detect edge case when argc == 0 2012-10-20 14:17:19 -04:00
Ira Cooper deecf6bb2f Add limits.h to allow for illumos to compile.
Closes #331
2012-10-05 04:02:11 -04: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