| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some of these were incorrectly calculated so the server or client would
wait too long before proceeding with decoding.
Change all of these to be a more explicit calculation to avoid such
issues in the future.
|
| | |
| | |
| | |
| | | |
TCP_CORK is a Linux thing and BSD has TCP_NOPUSH instead.
|
| | |
| | |
| | |
| | |
| | | |
We didn't include the proper headers to get the correct define, so
corking was never enabled.
|
|/ /
| |
| |
| |
| | |
Otherwise we might end up owners of something we cannot deliver data on,
which can hang applications.
|
| | |
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Setting `rfbport` to `-1` disables TCP port listening.
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
So the current clipboard state is properly reflected in the desktop
session.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
This was out of sync with the client handling for no good reason.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The peer expects a response, so we should also be able to respond that
there is no clipboard data currently available.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The extended clipboard protocol has the ability for the peer to request
things to be sent automatically, without a request message. Make sure we
honor such settings.
|
| | | | |
|
| | | | |
|
| | | | |
|
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | | |
It took way too long to converge on a sane value, so reduce the window
by a factor of ten. This seems to work smoothly.
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Include something more user friendly when we need to fail fatally and
not just the technical error.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Major restructuring of how streams work. Neither input nor output
streams are now blocking. This avoids stalling the rest of the client or
server when a peer is slow or unresponsive.
Note that this puts an extra burden on users of streams to make sure
they are allowed to do their work once the underlying transports are
ready (e.g. monitoring fds).
|
| | | |
| | | |
| | | |
| | | |
| | | | |
These are not universal in the protocol so having functions for them
only obfuscates things.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The specification only states a single result byte and not any reason
after a TLS authentication failure.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now measures over an entire update, which should hopefully give us more
stable values. They are still small values for fast networks though so
increase precision in the values we keep.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Provide some safety checks when directly accessing the underlying
pointer of streams.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Some systems (like TLS) need to send some final data before closing
a connection. Make sure this is properly handled by cleaning up the
security object before closing the underlying network socket.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Otherwise we might send duplicate result codes and other weird things.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
External callers don't need to know the exact details, only if there is
data that needs to be flushed or not.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This allows us to handle peaks in input and output streams gracefully
without having to block processing.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The principle can be used in a more general fashion than just TCP
streams.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
We can do what we want with the standard methods.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Just have a simply number of bytes argument to avoid a lot of
complexity.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Most streams are backed by a memory buffer. Create common base classes
for this functionality to avoid code duplication.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Makes it more readable to write code that needs to know how much
data/space is available in a stream.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
It might leak data depending on what's in the buffer. Use pad() instead
where blank space is needed.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
They were accidentally left unused in fbad8a9 so they haven't been used
in some time.
|
| | | |
| | | |
| | | |
| | | | |
We need to be able to tell this exception came from a decoder.
|
| | | |
| | | |
| | | |
| | | | |
For readability.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
There might be some final handshake data that is still stuck in the
buffers, so make a best effort attempt at getting it to the client.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The socket is closed at this point so we have to rely on a cached
value for the logging.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
It's a generic feature that is better handled as part of SConnection's
state machine.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We can't safely use the normal timers in base classes as we cannot
guarantee that subclasses will call the base class' handleTimeout()
properly if the subclass overrides it.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
So that people can easily find them and not file bug reports for
things that are just questions.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
We want users to use the templates so we don't miss any relevant
information.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We computed a safe area if a client gave us a bogus one, but we didn't
actually use it. Fix this properly and make sure we don't pass on bad
coordinates further.
|