sometimes calling io_multiplex_write()/rwrite() or msg_list_add().
This simplifies the code that does the defer_forwarding_messages
checking because it can now be done in just one place, in send_msg()
(because rwrite() also calls send_msg() now when forwarding a msg).
- Standardized the format of the opening comment, including adding a
brief description of what's in the file for those that lacked it.
- Added some missing copyright lines.
- Some minor whitespace tweaks (in a few of the files).
variables. In the future it might be useful to get rsync to
mention what kind of a message it was trying to write, but the
'phase "unknown"' output was ubiquitous and confusing.
- Got rid of the completely unused write_int_named() function.
integral part of the structure instead of pointer to a
separately allocated buffer.
- Improved the code that was ensuring that no messages from the
receiver could be merged into the middle of a partially written
buffer from the generator. The new code ensures that we never
avoid reading the messages from the receiver (like we used to).
This ensures that the generator will not hang when the receiver
got a read error on the socket, sent us a message about it, but
the socket in the generator never becomes writable for it to get
a similar error (now we are assured of getting the receiver's
note about their read error, and we know to shut things down).
code instead of a normal FERROR. The generator is the only
process that will receive this, and it uses it to close down
the multi-I/O over the socket so that it won't ever hang trying
to write an error down a dead socket.
enough to handle long-filename messages on a system that has a
really short MAXPATHLEN value. Also, make it large enough to
be able to comment on a MAXPATHLEN filename.
- Added hlink_list, a FIFO list of finished hard-link items.
- Made get_redo_num() check for finished hard-link items and
call the generator when they are found. This ensures that
we finish all the hard-link items by the time the MSG_DONE
is read and returned to the generator.
- Added get_hlink_num() to read the new hlink_list.
only needed back when the generator was reading a separate redo
pipe from the message pipe.
- Fixed a potential data corruption in the data that the generator
is sending: if a message comes in from the receiver, we now make
sure that we can't put the forwarding of this message to the sender
into the middle of a multiplexed-write record that the generator
is trying to flush.
at EOF -- it should be a rapidly arriving event, so only hang around
for 10 seconds, max., and then go ahead and report the "unexpectedly
closed" error.
us to ignore a timeout without turning off the timeout-related
time-keeping that the keep-alive processing needs.
- Added a new function: maybe_send_keepalive().
have it figure out if it should send the message to our sibling
or the other side.
- Handle the new MSG_DELETED message in both the generator and the
sender. This message is used to let the client side log each
deletion when the server side is the receiver.