File tree Expand file tree Collapse file tree 1 file changed +13
-6
lines changed
Expand file tree Collapse file tree 1 file changed +13
-6
lines changed Original file line number Diff line number Diff line change @@ -242,10 +242,18 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents)
242242
243243 if (!remote -> send_ctx -> connected )
244244 {
245+ remote -> buf_idx = 0 ;
246+ remote -> buf_len = r ;
247+
245248 if (!fast_open || remote -> direct )
246249 {
247250 // connecting, wait until connected
248251 connect (remote -> fd , remote -> addr_info -> ai_addr , remote -> addr_info -> ai_addrlen );
252+
253+ // wait on remote connected event
254+ ev_io_stop (EV_A_ & server_recv_ctx -> io );
255+ ev_io_start (EV_A_ & remote -> send_ctx -> io );
256+ ev_timer_start (EV_A_ & remote -> send_ctx -> watcher );
249257 }
250258 else
251259 {
@@ -282,18 +290,17 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents)
282290 remote -> buf_len = r - s ;
283291 remote -> buf_idx = s ;
284292 }
293+
294+ // Just connected
295+ remote -> send_ctx -> connected = 1 ;
296+ ev_timer_stop (EV_A_ & remote -> send_ctx -> watcher );
297+ ev_io_start (EV_A_ & remote -> recv_ctx -> io );
285298#else
286299 // if TCP_FASTOPEN is not defined, fast_open will always be 0
287300 LOGE ("can't come here" );
288301 exit (1 );
289302#endif
290303 }
291- // wait on remote connected event
292- remote -> buf_idx = 0 ;
293- remote -> buf_len = r ;
294- ev_io_stop (EV_A_ & server_recv_ctx -> io );
295- ev_io_start (EV_A_ & remote -> send_ctx -> io );
296- ev_timer_start (EV_A_ & remote -> send_ctx -> watcher );
297304 }
298305 else
299306 {
You can’t perform that action at this time.
0 commit comments