Commits on Nov 30, 2016
Commits on Nov 23, 2016
  1. s/geteuid/getuid/ for correct user lookups

    Addresses an issue mentioned in #193.
    cgull committed Nov 23, 2016
Commits on Nov 20, 2016
  1. Fix Coverity "missing move operator" (copy to rvalue).

    Also makes this bit of code more readable, but the overall handling of
    Unicode characters in Actions and Transitions is messy, and may get
    reworked later.
    cgull committed Nov 20, 2016
  2. Remove a Network::Exception that isn't one.

    Code smell pointed out by Coverity.
    cgull committed Nov 20, 2016
Commits on Nov 19, 2016
  1. src/test/local.test: Set TERM=xterm

    Signed-off-by: Anders Kaseorg <>
    andersk committed Nov 19, 2016
  2. src/tests/ Send the inner stderr to the outer stderr

    Signed-off-by: Anders Kaseorg <>
    andersk committed Nov 19, 2016
  3. Add a little hint for first-time users

    I was recommended to use mosh as "an in-place replacement for ssh" by
    my friends, and take a while to figure out the message until I
    realized I missed the line "The Mosh package should be installed on
    both the client and server."
    If this line often corresponds to missing server-side installation,
    rather than other mysterious scenario, how about adding a hint?
    chenxiaoqino committed with cgull Jun 10, 2016
  4. Make all commands properly support --help and --version

    These should output to stdout and exit with status 0.  Passing
    std-options to AM_INIT_AUTOMAKE causes ‘make installcheck’ (hence also
    ‘make distcheck’) to verify this.
    Signed-off-by: Anders Kaseorg <>
    andersk committed with cgull Nov 8, 2016
  5. Fix Configure failure on FreeBSD with only base OpenSSL.

    Search for OpenSSL libraries both with pkg-config and directly.
    Fixes #763.
    cgull committed Nov 19, 2016
Commits on Nov 17, 2016
  1. Describe Cell width as a narrow/wide boolean.

    A character cell can only be either narrow or wide.  It's more
    convenient to represent that as an int containing 1 or 2, but slightly
    more correct to represent it as a "boolean" single-bit integer.
    cgull committed with cgull Nov 16, 2016
  2. Fix broken wrap behavior causing broken copy/paste.

    The terminal framebuffer was not resetting the wrap state of a row
    when a previously-wrapping line was overwritten by a non-wrapping
    line.  Restore previous, subtle behavior of line wrap.  Fix wrap
    verification bug now exposed by emulation-wrap-across-frames.test.
    Also hoist some getters, mostly for clarity.
    Fixes #820.
    cgull committed with cgull Nov 15, 2016
Commits on Nov 13, 2016
  1. src/tests/ Skip the test on forkpty failures

    Signed-off-by: Anders Kaseorg <>
    andersk committed Nov 13, 2016
  2. Align configuration to be like

    This fixes a FreeBSD 11.0 build failure.
    cgull committed with cgull Nov 13, 2016
  3. Add a trivial test that the mosh script works without needing tmux

    None of the previous tests even ran the mosh script unless tmux ≥ 1.8 is
    installed.  Thus ‘make check’ was “passing” on, e.g., RHEL 6 even though
    its Perl is too old (5.10.1).
    Signed-off-by: Anders Kaseorg <>
    andersk committed with cgull Nov 8, 2016

    This doesn't help that much, Apple's linker is apparently hopelessly
    cgull committed Nov 4, 2016
  5. OS X package build on Travis

    This builds an OS X package and deploys it to a GitHub release when a
    tag is pushed.  It also generates a tarball reporting the build
    environment and configuration.  The build log is still separate.
    This is not yet final, it deploys to cgull/mosh and not
    It should not affect Linux or OS X CI builds (other than the change to
    the Travis Xcode 7.1 image).
    Included changes:
    The Travis Xcode 7 image seems to have added tmux while we were gone,
    breaking our Homebrew setup.
    There seems to be no clean reliable way to determine whether a
    Homebrew package is installed or needs updating.  Reinstalling is less
    efficient but seems to work reliably.
    The OS X build is now split between four files:
    .travis.yml contains Travis-specific CI/release build configuration.
    macosx/ contains Homebrew-specific package manager installs and
    macosx/ contains Apple-specific OS/X and Xcode reporting.
    macosx/ does the actual package build.
    cgull committed Oct 31, 2016
Commits on Nov 12, 2016
  1. tests/prediction-unicode.test: env -u is not POSIX

    Seen to fail on OpenBSD 5.2.
    cgull committed Nov 12, 2016
  2. Restore Perl 5.10 support

    On Perl < 5.14, we can use Socket::GetAddrInfo from CPAN to replace the
    missing getaddrinfo functionality of Socket.
    Socket::GetAddrInfo < 0.22 requires :newapi in the import list, but 0.22
    forbids it and enables the new API by default.
    Signed-off-by: Anders Kaseorg <>
    andersk committed Nov 10, 2016
  3. Revert "Do not close stdin on ssh session."

    This reverts commit 45c521d.
    cgull committed Nov 12, 2016
Commits on Nov 6, 2016
  1. Test for spinning Mosh

    cgull committed Oct 29, 2016
  2. Update send/ack timers on empty diff

    The root problem here is that writes to the frame buffer may alter it,
    but leave it with the same contents as before, and the diff between
    the two states is the empty string.  With the dirty-rows,
    smart-pointer changes to Framebuffer, it is easy to run into this
    situation.  This got Network::TransportSender confused about timeouts,
    and mosh-server would spin.
    The theoretically correct fix would be to have operator==() exactly
    correspond to diff(otherstate).empty().  I have partly implemented
    this (and may yet finish) but it's not trivial to get right.
    This is a much simpler fix that simply attempts to correctly update
    timers when two framebuffers are different and an empty diff is
    cgull committed Oct 28, 2016
  3. Log/limit pselect() with timeout of 0

    This is not a fix for bad timeouts, but rather a band-aid
    to keep Mosh from consuming large amounts of CPU time.
    cgull committed Oct 13, 2016
  4. Do not close stdin on ssh session.

    This helps with #819.
    cgull committed Nov 5, 2016
  5. Exit gracefully on pty write or ioctl failure.

    Fixes #821, OS X abnormal exit on client input at mosh-server
    shutdown.  On OpenIndiana, TIOCG[GS]WINSZ also fail in this situation.
    cgull committed Nov 5, 2016
  6. Handle printing to closed pipes better in tests.

    Some systems do not deliver SIGPIPE to shell pipeline writers when the
    downstream reader has exited.  So, also check for errors from
    /bin/printf.  I fixed this for OpenBSD 6.0 but I think it will also
    fix posh on Linux.
    cgull committed Nov 6, 2016
  7. OpenIndiana pid_t is long int

    cgull committed Nov 6, 2016
  8. Remove unused include

    cgull committed Nov 6, 2016