Commit Graph

115 Commits

Author SHA1 Message Date
Dave Taht 72e6c85e3d Set diffserv values to AF42 + ECT
AF42 has both the properties of CS42 and the IMM bit.

Whether this has the advantages or disadvantages of just one or
the other, I don't know. With most mac80211 stacks this will
force mosh packets in the VI queue on wireless.

As for pfifo_fast, have to look it up...
2012-05-25 20:40:49 -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 7700984bbb Revert "Use protobuf's Gzip streams"
This reverts commit b0e05776f1.
2012-05-23 01:55:57 -04:00
Keith Winstein eca34ea0fd Make mandatory check for bad throwaway from sender 2012-05-22 23:12:48 -04:00
Keith Winstein e5f8ed7579 Cap state queue used by receiver, even if sender is malicious 2012-05-22 23:01:39 -04:00
Anders Kaseorg b0e05776f1 Use protobuf's Gzip streams
This reverts commit 63459ed1c7.
2012-05-16 00:24:21 -04:00
Keegan McAllister c258e0bc4e Make timing parameters public within namespace Network
So that UI timeouts can adjust accordingly.
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
Keith Winstein 43182729ec More graceful output from failed verification 2012-05-05 01:53:28 -04:00
Keith Winstein 3573cec92a Enable round-trip verifier in verbose mode 2012-05-05 01:46:22 -04:00
Keith Winstein a82f50f085 Improve lossy connections by sending diff from "known" state if it's easy 2012-05-04 23:06:20 -04:00
Keith Winstein ce47d1f769 Fix bug in retransmission logic (improves performance on lossy links) 2012-05-02 23:55:13 -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
Massimo Gengarelli 49fc21c8a3 Catch by const reference (remove Eclipse warnings)
(closes #245)
2012-04-29 02:24:31 -04:00
Keith Winstein 22e7cf60d3 Keep aligned buffers around, instead of allocing on each packet
Fixes #238 github issue.
Also fixes armel "Bad alignment" problem.
2012-04-24 18:40:01 -04:00
Keith Winstein 63459ed1c7 Revert use of protobuf's Gzip streams.
Unfortunately some Red Hat-based distributions lack the required header.
See https://bugzilla.redhat.com/show_bug.cgi?id=815587

This reverts commit 261a389a76.
This reverts commit b6736eb0a5.
2012-04-23 22:50:49 -04:00
Anders Kaseorg b6736eb0a5 Use protobuf’s Gzip{Input,Output}Stream wrapper around zlib
This removes our direct zlib dependency (although of course protobuf
still uses it internally), removes a fixed 4 MiB buffer and its
corresponding limit on the terminal size, reduces some string copying,
and deletes some code.

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

(Closes #230.)
2012-04-22 16:14:28 -04:00
Keith Winstein 8de74afb5f Restore 50 fps cap on frame rate (relevant to #222 github issue). 2012-04-19 23:00:12 -04:00
Keith Winstein 3c6e45a469 Adjust timing parameters in response to real-world trace data.
Also increases maximum frame rate from 50 fps to 100 fps.

Relevant to issue #222 on github.
2012-04-19 22:40:03 -04:00
Keith Winstein 58589787ea Make compressor take string references (closes #214 github issue) 2012-04-19 01:35:15 -04:00
Keith Winstein feb352c809 Optional verifier for round-trippability, and fix wrapping and tab bugs. 2012-04-16 09:09:20 -04:00
Keith Winstein a8c3df9c80 More robust shutdown sequence with warning on unclean shutdown. 2012-04-16 06:22:35 -04:00
Keith Winstein 99e8626a01 Tidy check for exception in Network::Connection::send(). 2012-04-15 23:29:05 -04:00
Keith Winstein aca69ef684 Server does not need to raise exception on failed sendto(). Fixes #183. 2012-04-15 23:13:58 -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 8bcc001b52 Remove Boost entirely 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 5904d4f5e6 Remove BOOST_AUTO from transportsender.cc 2012-04-15 13:49:15 -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 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 349e2d20c8 Use the hardening flags
Closes #79.
2012-04-13 12:25:09 -04:00
Alexander Chernyakhovsky 87d57c9567 Add unistd.h to network.cc to allow mosh to build on Fedora Rawhide (future Fedora 18) 2012-03-26 18:46:52 -04:00
Keegan McAllister 4eb3cace0b Use the PRNG class for chaff
In particular, srand( time( NULL ) ) is very predictable.

[keithw@mit.edu -- modified to use byte PRNG from /dev/urandom]
2012-03-19 23:12:07 -04:00
Keith Winstein 483bfe9f0f Make make_chaff() static class function to fix spurious clang warning 2012-03-18 14:11:49 -04:00
Keith Winstein ee2aea1a6e Add chaff to outgoing instructions (closes #26 github issue) 2012-03-18 13:56:27 -04:00
Keith Winstein 3d4ce8b52d Revert "Increase shutdown retries before giving up"
This reverts commit df54a869e9.

This takes too long and the UI is not pretty (since lasts more than 1 s).
2012-03-18 03:41:16 -04:00
Keith Winstein df54a869e9 Increase shutdown retries before giving up 2012-03-17 15:08:17 -04:00
Keith Winstein 66c6c0669a Print pre-CONNECT output only on failure 2012-03-10 03:55:25 -05:00
Keith Winstein df3eec1397 Allow explicit UDP port option, confine ports to range 60000..61000 2012-03-10 03:34:47 -05:00
Keith Winstein df5d163f9c Fix asserts with side-effects (per Keegan McAllister) 2012-03-08 10:50:19 -05:00
Anders Kaseorg edada5e1ea Don’t use $(builddir)
$(builddir) is always ., except apparently on automake 1.9 which
doesn’t define it.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2012-03-07 03:10:19 -05:00
Quentin Smith a1671bcf3b Handle the absence of IP_MTU_DISCOVER 2012-03-07 03:05:36 -05:00
Quentin Smith e8d14d35a6 Add boost and protobuf in the places where they are needed
[seph@directionless.org, andersk@mit.edu: add in even more places]
2012-03-07 03:05:36 -05:00
Quentin Smith 582bf347c9 Add alternate timestamp implementations
Add mach_absolute_time and gettimeofday timestamp implementations, and
fix clock_gettime check so that it can actually succeed
2012-03-07 03:05:36 -05:00
Quentin Smith 17d6962af8 Check for proper byteorder functions
[andersk@mit.edu: Add byteorder.h to libmoshcrypto_a_SOURCES]
2012-03-07 03:05:36 -05:00
Anders Kaseorg aad760e7d6 Make warning CXXFLAGS configurable
This turns off -Werror by default except in the Debian package.
-Werror is inherently unportable and breaks things on OS X.  While it
can cause problems in Debian too, this is at least a little better.

It also turns off -pedantic in src/protobufs, because apparently
protoc output doesn’t compile with -pedantic on all platforms.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2012-03-07 03:05:35 -05:00
Keegan McAllister 12fcf6800a Change timeout from -1 to INT_MAX in TransportSender
This allows min() to work properly on timeouts.
2012-03-06 11:57:45 -08:00
Keegan McAllister e35733a2c1 Rename 'attached' to 'has_remote_addr'
Even with future support for detaching and reattaching, this variable will keep
its original meaning.
2012-03-06 11:54:56 -08:00
Keith Winstein 9e13176d96 Fix build problem on i386 2012-02-26 13:51:11 -05:00
Keith Winstein 7a9f92d7f1 Compress all instructions (closes #19 github issue) 2012-02-26 04:41:03 -05:00