Hi,
I used libevent library to implement proxy. I created a read event and
registered a read_callbk when the socket is ready to read.
event_set(&c->event_read, sfd, EV_READ | EV_PERSIST, tcp_read_cb, (void
*)c);
event_base_set(base,&c->event_read);
if (event_add(&c->event_read, 0) == -1)
{
conn_add_to_freelist(c);
dedup_dbg(3, "error in event add\n");
return NULL;
}
I noticed that after some time , the read is not getting invoked. Packet
capture shows that the receiver(that is this machine) is advertising zero
window.
Did anyone face such a problem . If so, how do we read data when we experience
zero window. Is the read lost? There is some 64K buffer in the read buffer in
kernel .
How do we read this data?
Regards,
Arun