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

Reply via email to