ipropd-slave: don't send I_HAVE in response to AYT
ipropd-master sends AYT messages often as a result of a possibly- transient error, but if the slave responds to such an AYT with I_HAVE, then the same code path that failed will be executed on the master, and if the error wasn't transient then we'll loop hard. So don't send an I_HAVE in response to an AYT.
This commit is contained in:

committed by
Nico Williams

parent
c6d0793e63
commit
9de1728850
@@ -1023,11 +1023,14 @@ main(int argc, char **argv)
|
||||
if (verbose)
|
||||
krb5_warnx(context, "master sent us a ping");
|
||||
is_up_to_date(context, status_file, server_context);
|
||||
ret = ihave(context, auth_context, master_fd,
|
||||
server_context->log_context.version);
|
||||
if (ret)
|
||||
connected = FALSE;
|
||||
|
||||
/*
|
||||
* We used to send an I_HAVE here. But the master may send
|
||||
* ARE_YOU_THERE messages in response to local, possibly-
|
||||
* transient errors, and if that happens and we respond with an
|
||||
* I_HAVE then we'll loop hard if the error was not transient.
|
||||
*
|
||||
* So we don't ihave() here.
|
||||
*/
|
||||
send_im_here(context, master_fd, auth_context);
|
||||
break;
|
||||
case YOU_HAVE_LAST_VERSION:
|
||||
|
Reference in New Issue
Block a user