Wayne Davison [Tue, 20 Jan 2004 17:46:29 +0000 (17:46 +0000)]
- Changed push_dir() to not take a "save" arg and to return 1 or 0
for success or failure instead of a string pointer. The function
also ensures that we don't overflow the curr_dir[] buffer.
- Changed pop_dir() to not free() anything and to return 1 or 0
for success or failure.
Wayne Davison [Tue, 20 Jan 2004 00:29:49 +0000 (00:29 +0000)]
Fixed a bug in strlcat() where it would not properly detect a no-change
condition if called with an initial string longer than the specified
size limit (due to an unsigned var's inability to go negative).
Wayne Davison [Thu, 15 Jan 2004 07:42:21 +0000 (07:42 +0000)]
- Call io_flush() with its new FULL_FLUSH/NORMAL_FLUSH arg.
- Got rid of the recv_pipe between the receiver and the generator.
- Use new send_msg(MSG_DONE,...) call to signal the generator
when the receiver is done.
- Use the new get_redo_num() call in the generator to read the
final -1 from the receiver.
Wayne Davison [Thu, 15 Jan 2004 07:42:17 +0000 (07:42 +0000)]
- Moved the err_list* stuff here from log.c and renamed them msg_list*.
- Renamed log_error_fd to msg_fd_out, and io_error_fd to msg_fd_in.
- Added a redo_list* to keep track of any redo items that come over
the message channel from the receiver to the generator.
- The io_flush() and msg_list_push() functions now take an arg:
NORMAL_FLUSH or FULL_FLUSH. The latter ensures that we don't lose
any log messages that haven't gotten written from the msg_list.
- Added a send_msg() function that log.c calls to send any remote
log messages. It is also called to send the new MSG_REDO and
MSG_DONE messages.
Wayne Davison [Fri, 9 Jan 2004 18:19:32 +0000 (18:19 +0000)]
- Never allocate a useless sum array for a non-regular flist item.
- Don't transmit the sum array for non-regular files (p28 onward).
- Tweaked a couple comments.
Wayne Davison [Thu, 8 Jan 2004 22:45:12 +0000 (22:45 +0000)]
Updated the send_file_name() and receive_file_entry() functions to make
some of the variable names more logical in the new program flow. Also
improved the setting of the new last_rdev value that only remembers the
high 3 bytes.
Wayne Davison [Thu, 8 Jan 2004 11:08:30 +0000 (11:08 +0000)]
Implemented an extended-flag-byte in the transfer protocol by moving
the SAME_RDEV bit into the next 8 bits and adding an EXTENDED_FLAG
bit. Also modified the meaning of this bit for protocol 28 and above:
SAME_HIGH_RDEV indicates that all but the lowest byte matches. The
older protocols get OLD_SAME_RDEV set (with the old semantics) for
compatibility. Note also that protocol 28 isn't turned on yet.
Wayne Davison [Thu, 8 Jan 2004 04:56:27 +0000 (04:56 +0000)]
Improved the code in send_file_entry() and receive_file_entry() to
make it a little easier to read and a little more optimized. Also
made the flag size in our function calls match the size of the flags
in the flist_struct. These changes will make it easier for me to
optimize the sending of the hard-link data in a future commit.
Wayne Davison [Thu, 8 Jan 2004 03:17:07 +0000 (03:17 +0000)]
- No need to check S_ISREG() on files already in the hlink_list.
- The realloc in init_hard_links() might fail if the list is empty
(which can happen if there are no regular files in the transfer).
I changed the code to free the list in that case.
Wayne Davison [Sun, 4 Jan 2004 18:43:18 +0000 (18:43 +0000)]
Changed recv_generator() to take a "struct file_struct *" instead of
a "struct file_list *", which allows us to call it with a copy of the
current file_struct entry that we've modified. This is better than
modifying the entry directly because the latter causes the shared
memory between the generator and the receiver to slowly vanish as
the in-memory changes happen.