* Build improvements, use pkgconfig.
* Don't add rpc2's 100ms delayed ack delay in SFTP roundtrip estimate.
* Reduce the number of packets SFTP drops when we receive duplicates.
* Retransmit more worried packets (which 'should' have been acked).
* Only retransmit on timeouts, have the active side of the connection be
mostly timeout driven to avoid duplicate transfers.
* Fail when configure cannot find a usable LEX or YACC binary.
* Fix RetryInterval calculation, we were waiting twice as long as specified.
* Make sure RPC2/Coda defined error values do not collide with system errnos.
Also, shlib major version changed.
patch-aa was merged upstream.
changes (partial):
- Updated for current autoconf/gcc build environment.
- Some cleanups for the code generated by the rp2gen stub generator.
- Hopefully improved 'timeout' behaviour on asynchronous links (ADSL).
Fixes memory corruptions that typically hit during reintegration, andperformance
problems when writing data to the servers.
- Now internally supports >2GB files, however we're not really using
this new capability in Coda yet.
- Re-added a lost lseek that was causing truncated backup files.
Small files that got piggybacked on the outgoing RPC2 packets were
only sent to one server in a replicated group. The operation on the
other servers fails and the client disconnected. The next time the
servers are accessed this inconsistency was detected and
automatically resolved. But doing it right in the first place is
somewhat more efficient and reliable.
The RPC2 random number generator was not initialized correctly. Not
sure how much effect this had on connection handling and other
places that liked random numbers to be unique.
Removed MultiRPC pool allocator, now we can have more than 8 concurrent RPC
operations. And because the per-user limit got removed in Coda-6.0.2, this is
more likely to happen.
A packet with random data could easily trigger an assertion in the MultiRPC
decoding. Now we simply drop it and avoid the possible DoS.
IPv6 support, it is just waiting for the right flag from userspace. As a
result the 1.19 API is binary compatible for older clients and servers.
Removed sftp listener and timeout threads. We always run what was previously
called 'masqueraded'. This works fine as long as our peer uses rpc2-1.9
or later.
buildlink2.mk files back into the main trunk. This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.
* Fixed crash when an expired connection receives a NAK.
* Increased lower bound on retransmission time to 300ms.
* Removed Linux specific optimization in processing time calculation which
made RPC2 clients assume a server can respond faster than it actually does.
* Fixed the very infrequent SFTP_SendResponse crash again, hopefully for real
this time.
* A non-masqueraded rpc2 client wouldn't send out it's SFTP packets through
the rpc2 socket when talkin to a masqueraded rpc2-server. This broke
backfetches through a firewall.
* Added delayed acks, when an RPC2 operation on the server is taking more than
200ms, an unsolicited RPC2_BUSY is sent back to the client to avoid
unnecessary retransmissions of the request.
* Stricter prototyping for callback functions.
* Fixed the very infrequent SFTP_SendResponse crash.
* Keeping track of current fd offset in sftp to allow non-multirpc transfers
from/to a non-seekable fd (eg. stdout).
${BUILDLINK_INCDIR} and ${BUILDLINK_LIBDIR}, to be used by other packages.
* Use buildlink.mk files to get dependencies and to prevent unintended
linking against installed libraries or finding installed headers except
for those that are explicitly linked into ${BUILDLINK_INCDIR} and
${BUILDLINK_LIBDIR}.
* Don't prototype history functions directly, but use
<readline/history.h> to pull them in. This allows us to use libedit's
readline emulation.
* Change from USE_PERL5 to a build dependency on perl -- it's only used to
generate a header file during the build.