Subject What is: "error-detection protocol"
Author nitaligavino <Dan.Crea@apropos.com>
Hello All:

I need some help understanding what is going on here? I seem to have
found a bug in the method packet_receive(…) in file inet.c. There
are some comments about an "error-detection protocol" and sending a
dummy packet to see if the client is still active.

Anyway, what I'm seeing is that the following:

Within the packet_receive(…) function there is a loop for(;;) that is
waiting on a socket select call. What ends up happing however is the
select call is timing out after 60 seconds and the following code is
executed:

packet.p_operation = op_dummy;
if (!send_full (port, &packet))
return FALSE;
continue;

the continue forces a retry which calls select and again waits 60
seconds unit it times out. This loop is never ending so the client
that made the original call is blocked indefinitely.

Can someone explain what is supposed to happen here? Is there a
configuration flag that can be changed to prevent this end-less
looping?

Best regards,
Dan