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 |