Keith Winstein
d17fb7824b
Reset fd sets every time we poll (because network.fd() can now change)
2012-10-05 00:06:37 -04:00
Keith Winstein
f621f9f001
Grammar fix on ssh -t message
2012-09-28 20:17:58 -04:00
Keith Winstein
0311365810
Read utmpx directly instead of using "who", and prettify detached warning
2012-09-28 20:06:04 -04:00
Xi Wang
f0d9cb3db3
Avoid null pointer dereference in chdir_homedir()
...
Return if pw is NULL, to avoid dereferencing it at pw->pw_dir.
2012-09-26 22:27:24 -04:00
Keith Winstein
89da6105aa
When not connected, (1) client hops port numbers (2) server stops sending.
2012-08-13 11:19:25 +03:00
Timo Sirainen
9296ffbed7
Don't reopen stdio. It's not needed, and it doesn't compile with Solaris.
...
Signed-off-by: Timo Sirainen <tss@iki.fi >
2012-08-11 17:14:45 -04:00
Timo Sirainen
9cade23616
It's safer to close stdin/out/err by replacing their fd with /dev/null.
...
Otherwise the next opened fds are 0/1/2, and any code writing to
stdout/stderr might break things by writing to an unintentional fd.
Signed-off-by: Timo Sirainen <tss@iki.fi >
2012-08-11 17:14:45 -04:00
Timo Sirainen
b245ed00ca
Don't call setsid(), forkpty() does it anyway. This fixes a failing ioctl(TIOCSCTTY) in Solaris.
...
Signed-off-by: Timo Sirainen <tss@iki.fi >
2012-08-11 17:14:45 -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
894a190f06
Revert creation of utmp entry to avoid uninitialized "master"
2012-08-11 17:13:43 -04:00
Keith Winstein
c073ad364a
get_SSH_IP gracefully handles missing, IPv6-formatted environment var
...
Closes #292 github issue.
2012-07-26 22:54:45 -04:00
Keith Winstein
a744004bf6
Get system timestamp less often (only after sleeping/selecting)
2012-07-26 21:13:26 -04:00
Keith Winstein
2cb2f3aeb5
Tidy up unattached warning, only print when showing motd
2012-07-23 01:25:55 -04:00
Keith Winstein
549cf0a9bd
Warn of unattached Mosh sessions on login
2012-07-23 01:16:57 -04:00
Keith Winstein
92ecb99b71
Add OpenSSL licensing exception
2012-07-20 16:46:00 -04:00
Keegan McAllister
dd941df19d
Remove unused sigfd and skalibs
...
Closes #265 .
2012-05-16 00:00:27 -04:00
Keegan McAllister
4f23326a92
Use Select signal handling in mosh-{client,server}
2012-05-16 00:00:27 -04:00
Keegan McAllister
6edc04ed1c
mosh-server: Ignore signals rather than blocking them
...
For pselect() we want to mess with the signal mask, and this is closer to our
intent anyway.
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
5bf681629d
mosh-server: Treat errors on pty read like EOF
...
Fixes #264 .
2012-05-16 00:00:27 -04:00
Keegan McAllister
5cff456400
Define PROG, for newer versions of skalibs
...
Needed to build from our source tarball on some Gentoo systems.
Closes #239 .
Closes #254 .
2012-05-05 02:11:02 -04:00
Massimo Gengarelli
49fc21c8a3
Catch by const reference (remove Eclipse warnings)
...
(closes #245 )
2012-04-29 02:24:31 -04:00
Keith Winstein
62330a0b09
Put the setsid() where it belongs
2012-04-20 20:38:27 -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
1508d40b4c
Chdir to homedir ( closes #193 ) and honor .hushlogin ( closes #216 ).
2012-04-19 01:03:25 -04:00
Keith Winstein
9cf87d224e
Verbose server now turns on verbose transport layer (much more output)
...
Relevant to #217 .
2012-04-18 10:47:18 -04:00
Keegan McAllister
a289a2319e
Preserve RLIMIT_CORE hard limit, and restore soft limit before exec
...
Closes #196 .
2012-04-16 20:03:04 -04:00
Keith Winstein
3ed9c0fb77
Only print motd for login shells, not when command is specified.
2012-04-16 18:34:53 -04:00
Keith Winstein
68825dccde
Print /etc/motd before login shell. Closes #190 .
2012-04-16 18:19:45 -04:00
Keith Winstein
b4263b354e
Check for paths.h and make sure we have _PATH_BSHELL
2012-04-16 17:51:52 -04:00
Jay Freeman (saurik)
2462434390
Use _PATH_BSHELL for "/bin/sh" and fix argv[0].
...
The previous code had the following issues:
1) hardcoded the path of /bin/sh (should use paths.h)
2) threw away the variable with the fallback shell
3) prepended - to the path rather than the shell name
4) added a - before explicit chosen non-shell commands
Closes #199 .
2012-04-16 17:40:30 -04:00
Keith Winstein
bcb96d9337
Change some asserts flagging runtime errors to fatal_asserts (Anders Kaseorg)
2012-04-16 06:27:14 -04:00
Ed Schouten
033953dcd2
Don't leak utmpx entries on shutdown.
...
As far as I know, for all implementations of libutempter, the
utempter_remove_added_record() function depends on the file descriptor
passed to utempter_add_record() to still be valid. The reason for this,
is that this file descriptor is propagated to the setuid utility that is
responsible for modifying utmpx.
Modify the code to remove the utmpx entry before closing the
pseudo-terminal master device. While there, simply use
utempter_remove_record(), which takes the file descriptor explicitly.
The advantage is that this prevents potential foot-shooting in the
future. Visual inspection of the source code will make it more obvious
that utempter depends on the file descriptor.
Closes #179 .
2012-04-16 01:37:48 -04:00
Keith Winstein
7103c5f48b
Using fclose() instead of close() means future fprintf() doesn't kill us on Mac.
2012-04-15 23:25:21 -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
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
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
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
Keith Winstein
4d9483bc83
Fix build when libutil.h exists but is deprecated
2012-04-07 20:23:59 -04:00
Benjamin Kaduk
29539516e5
FreeBSD needs libutil.h for forkpty()
...
The header is not available everywhere, so only include it if it
is present. (The extra include should be harmless on Linux by
inspection.)
2012-04-05 18:19:37 -04:00
Keegan McAllister
ba6387f36c
Allow CryptoExceptions to be fatal
2012-03-31 16:19:33 -04:00
Keegan McAllister
ba9b16aafa
Fully initialize the argument to TIOCSWINSZ
...
struct winsize contains fields other than ws_col and ws_row. To avoid passing
uninitialized data to TIOCSWINSZ, initialize it first using TIOCGWINSZ.
Found by Valgrind.
(closes #85 github issue)
2012-03-31 15:41:34 -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