Andrew Tridgell
e92ee12893
make sure we don't chew too much CPU when the outgoing fd is full
2000-08-29 05:07:08 +00:00
Andrew Tridgell
ae682c3e11
got rid of some unused variables
2000-08-19 15:25:05 +00:00
David Dykstra
ef5d23ebcd
Add --bwlimit option contributed by Matthew Demicco and Jamie Gritton.
2000-06-06 21:13:05 +00:00
Andrew Tridgell
0adb99b9dc
don't pprint the IO timeout message if we are a server or daemon (can
...
cause recursive error messages)
2000-04-09 02:32:18 +00:00
Andrew Tridgell
f0359dd00d
went back to non-blokcing IO
...
it looks like ssh is willing to accept a non-blocking fd when used as
a transport, this seems to avoid the Solaris socketpair bug
2000-03-30 14:15:00 +00:00
Andrew Tridgell
8b35435f7c
another hang-at-end fix. It looks like we are more sensiitive to
...
these with socketpairs. The receiver now sleeps until it gets a signal
to tell it to exit
also fixed test.sh to use the current version remotely
2000-01-30 00:50:19 +00:00
Andrew Tridgell
6d7b6081ac
damn!
...
the last pre-release had a bug that didn't setup the multiplexing
correctly. This means that pre-release will get "unexpected tag -7"
whenm talking to the fixed code.
2000-01-29 04:50:01 +00:00
Andrew Tridgell
b2999e457f
don't need PIPE_BUF any more
2000-01-29 02:56:36 +00:00
Andrew Tridgell
0f3203c312
fixed some logcode warnings
2000-01-29 02:49:03 +00:00
Andrew Tridgell
ff41a59f58
- switched on multiplexing for all connections, not just daemon
...
connections (this fixes the stderr/stdout problem). Upped
protocol version for backward compat
- use multiplexing on error fd
- upped minimal protocol version
- got rid of some ugly code in the write buffering
2000-01-28 15:29:59 +00:00
Andrew Tridgell
08f15335b5
switch to using socketpair instead of pipe if possible. This fixes the
...
ssh clag problems as long as you also fix the same problem in sshd
removed all the old read buffering code from io.c as this was only
there to try to reduce the chance of clagging up sshd.
2000-01-28 12:37:58 +00:00
Andrew Tridgell
cbce490e13
reinstated the MAX_READ_BUFFER code. Its a nasty tradeoff - using lots
...
of memory vs. ssh bugs. uggh.
2000-01-24 12:23:39 +00:00
Andrew Tridgell
8a5d6bba09
don't use stderr after we become a daemon
2000-01-24 09:19:44 +00:00
Andrew Tridgell
554e0a8dd0
added some really ugly code to allow errors to propogate to
...
clients when writing to a rsync server
it works like this:
- we have an extra pipe from the receiver to the generator
- the server always runs with multiplexing on
- errors from the generator go down the multiplexed connection
- errors from the receiver go over the pipe, and from there to
the multiplexed conn
it required some incredibly ugly code. damn.
2000-01-23 07:36:56 +00:00
Andrew Tridgell
5d1e1dcf4b
don't try to write errors to a dead socket
2000-01-23 01:11:43 +00:00
Andrew Tridgell
07b7c86c06
don't write more than PIPE_BUF bytes in any one write() in io.c
...
this makes sure that the write never blocks.
1999-11-23 08:43:16 +00:00
Andrew Tridgell
1f5c6343e6
removed old non-blocking fd code (a hangover from a earlier version of
...
io.c). Thanks to Theo for pointing out this brokenness.
1999-11-15 01:32:20 +00:00
Andrew Tridgell
37f9805dab
changed strlcat() and strlcpy() to have the same semantics as the
...
OpenBSD functions of the same name.
changed slprintf() to take buffer length rather than buffer length -1
1998-11-14 23:31:58 +00:00
Andrew Tridgell
654175798b
patch from Alberto Accomazzi <aaccomazzi@cfa.harvard.edu> to add
...
different exit codes for different conditions.
1998-11-03 07:08:27 +00:00
Andrew Tridgell
1b7c47cb55
Jason told me that's its very important for his site to log exactly
...
how many bytes were needed to be transferred for each file. I added %b
and %c log format options to cover this. See the man page for details.
1998-11-02 04:17:56 +00:00
Andrew Tridgell
d730b113f4
final change needed to get rsync working on a CRAY J90
1998-10-29 05:48:11 +00:00
Andrew Tridgell
8de330a387
changes to get rsync working on a CRAY J90. This machine doesn't have
...
a 4 byte integer type (short is 8 bytes). I needed to use a new md4
implementation (I used the portable one I wrote for Samba).
1998-10-29 05:01:47 +00:00
Andrew Tridgell
6e4fb64e61
added finddead target, removed dead code and made some functions
...
static
1998-09-09 05:57:34 +00:00
Andrew Tridgell
2f9af90118
removed the limit on the read buffer size until I fully understand the
...
interactions with ssh. The old ssh freezes have shown up again and
some debugging (with help from James Welborn) showed that the cause
was the read buffer hitting maximum size. I think this means that ssh
must be misbehaving about blocking IO.
This change gets rid of the freezes at the expense of memory
usage. Where it would have frozen it uses more memory instead.
1998-08-27 05:07:52 +00:00
Andrew Tridgell
c46ded4621
I think I might havefinally fixed the rsync hanging bug. It was caused
...
by a read during an io_flush() triggered during a readfd(). A simple
logic bug in the io code :(
1998-07-20 05:36:25 +00:00
Andrew Tridgell
8cd9fd4e8c
always use a timeout to select, even if --timeout is not
...
specified. This makes things easier to debug.
1998-07-19 10:51:26 +00:00
Andrew Tridgell
ca8e96946e
changed wording of an error message
1998-07-17 07:25:42 +00:00
Andrew Tridgell
eb601ffeb8
code style change
1998-07-17 05:37:56 +00:00
Andrew Tridgell
bd7e05d799
remove a redundent continue statement
1998-07-02 03:02:14 +00:00
Andrew Tridgell
c95f1aa9d3
prioritise reading over writing in the select loop. (this is another
...
ssh-friendly attempt)
1998-07-02 02:59:04 +00:00
Andrew Tridgell
86ffe37f11
fix the problem of --timeout waiting for twice the specified time.
1998-07-02 02:48:09 +00:00
Andrew Tridgell
bf9f01689f
if we get EWOULDBLOCK on a write then reduce the amount of data we are
...
trying to write. This guarantees that the maximum amount of data that
can be written at any one time is written.
1998-06-19 00:55:19 +00:00
Andrew Tridgell
f7b9377863
handle non-blocking file descriptors for both read and write. Add a
...
workaround for buggy systems that say there is space to write when
there isn't.
1998-06-18 09:33:46 +00:00
Andrew Tridgell
a800434a82
added --stats option for verbose stats on the file transfer
1998-06-01 03:42:14 +00:00
Andrew Tridgell
e44f9a12c4
make sure that io_flush() doesn't call writefd_unbuffered from within
...
a writefd_unbuffered call!
this should fix the "decompressor lost sync" bug
1998-05-30 02:02:23 +00:00
Andrew Tridgell
cad2bba7d8
fixed a bug in the flist sending code that caused the flist sending to
...
get out of sync.
1998-05-29 02:28:33 +00:00
Andrew Tridgell
fe8c0a9824
use Realloc instead of realloc
1998-05-28 06:40:25 +00:00
Andrew Tridgell
528bfcd79a
cosmetic fix. don't display a EOF error when displaying just the motd
...
from a rsync server
1998-05-28 01:58:33 +00:00
Andrew Tridgell
ea2111d10a
- always flush the IO write buffer when reading
...
- handle start of line in exclude properly
1998-05-27 13:05:05 +00:00
Andrew Tridgell
4c36ddbeec
heaps of cleanup in the io code.
...
we no longer use non-blocking IO, instead it uses select a lot more,
being careful to always allow for reading whenever a valid read fd is
available and chcking timeouts.
also split the file io calls into fileio.c
1998-05-27 12:37:22 +00:00
Andrew Tridgell
679e765768
fixed a multiplexing bug
1998-05-18 10:23:47 +00:00
Andrew Tridgell
8d9dc9f99d
this is a large commit which adds io multiplexing, thus giving error
...
messages from the server when using the socket code.
I've doen a fair bit of testing and I don't seem to have broken
anything, but it is a very complex change. More testing needed!
1998-05-18 08:20:26 +00:00
Andrew Tridgell
22d6234e04
close some unnecessary file descriptors in do_recv()
1998-05-17 07:22:53 +00:00
Andrew Tridgell
5dd7e03167
put a limit (default 1MB) on the read buffer size. This stops it
...
growing too much if the sender is much faster than the receiver
1998-05-17 05:56:32 +00:00
Andrew Tridgell
e42c9458c2
use strlcat() strlcpy() and slprintf() whenever possible to avoid any
...
chance of a buffer overflow
1998-05-15 09:26:01 +00:00
Andrew Tridgell
d6dead6bb1
added write buffering during the file list sending. This makes things
...
a bit more efficient (less system calls)
1998-05-15 07:34:19 +00:00
Andrew Tridgell
344fb1276b
fixed a select bug which caused rsync to use far more cpu time than
...
necessary on the server
1998-05-15 07:11:29 +00:00
Andrew Tridgell
f855d1a309
vsprintf returns char* on sunos4
1998-05-13 13:48:25 +00:00
Andrew Tridgell
f0fca04e4e
first vesrion of working socket based rsync. It still needs a lot of
...
work, but at least it works :-)
1998-05-09 13:58:54 +00:00
Andrew Tridgell
9486289ce4
some large systematic changes to make socket conversion easier. The
...
biggest one is the use of rprintf() instead of fprintf()
1998-05-07 14:50:22 +00:00