Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liblongpath-rsync
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liblongpath
liblongpath-rsync
Commits
4e0fcd85
Commit
4e0fcd85
authored
Feb 26, 2005
by
Wayne Davison
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Handle keep-alive messages at the end of the transfer when
--delete-after is happening.
parent
59faec8b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
11 deletions
+32
-11
main.c
main.c
+32
-11
No files found.
main.c
View file @
4e0fcd85
...
...
@@ -428,6 +428,23 @@ static char *get_local_name(struct file_list *flist,char *name)
}
static
void
read_final_goodbye
(
int
f_in
,
int
f_out
,
int
flist_count
)
{
if
(
protocol_version
<
29
)
{
read_int
(
f_in
);
return
;
}
/* Handle any keep-alive messages from --delete-after processing. */
while
(
read_int
(
f_in
)
==
flist_count
)
{
if
(
read_shortint
(
f_in
)
!=
ITEM_IS_NEW
)
return
;
/* Complain? */
write_int
(
f_out
,
flist_count
);
write_shortint
(
f_out
,
ITEM_IS_NEW
);
}
}
static
void
do_server_sender
(
int
f_in
,
int
f_out
,
int
argc
,
char
*
argv
[])
{
int
i
;
...
...
@@ -484,10 +501,8 @@ static void do_server_sender(int f_in, int f_out, int argc,char *argv[])
send_files
(
flist
,
f_out
,
f_in
);
io_flush
(
FULL_FLUSH
);
report
(
f_out
);
if
(
protocol_version
>=
24
)
{
/* final goodbye message */
read_int
(
f_in
);
}
if
(
protocol_version
>=
24
)
read_final_goodbye
(
f_in
,
f_out
,
flist
->
count
);
io_flush
(
FULL_FLUSH
);
exit_cleanup
(
0
);
}
...
...
@@ -543,9 +558,17 @@ static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name)
send_msg
(
MSG_DONE
,
""
,
0
);
io_flush
(
FULL_FLUSH
);
/* finally we go to sleep until our parent kills us
* with a USR2 signal. We sleep for a short time as on
* some OSes a signal won't interrupt a sleep! */
/* Finally, we hang around until our parent kills us with a
* USR2 signal. If --delete-after was specified, we might get
* a keep-alive message over the socket, so handle that too. */
if
(
protocol_version
>=
29
)
{
while
(
read_int
(
f_in
)
==
flist
->
count
)
{
if
(
read_shortint
(
f_in
)
!=
ITEM_IS_NEW
)
break
;
/* Complain? */
}
}
while
(
1
)
msleep
(
20
);
}
...
...
@@ -740,10 +763,8 @@ int client_run(int f_in, int f_out, pid_t pid, int argc, char *argv[])
io_flush
(
NORMAL_FLUSH
);
send_files
(
flist
,
f_out
,
f_in
);
io_flush
(
FULL_FLUSH
);
if
(
protocol_version
>=
24
)
{
/* final goodbye message */
read_int
(
f_in
);
}
if
(
protocol_version
>=
24
)
read_final_goodbye
(
f_in
,
f_out
,
flist
->
count
);
if
(
pid
!=
-
1
)
{
if
(
verbose
>
3
)
rprintf
(
FINFO
,
"client_run waiting on %d
\n
"
,
(
int
)
pid
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment