mutable callbacks : callbacks;
mutable send_done_enabled : bool;
- mutable recv_enabled : bool;
send_buf : Buffer.t;
}
let recv_ready_callback el h fd =
let conn = Conns.get_conn h in
- if conn.recv_enabled then
- let buflen = 512 in
- let buf = String.create buflen in
- try
- let read_bytes = Unix.read fd buf 0 buflen in
- if read_bytes = 0 then
- conn.callbacks.shutdown_callback conn
- else begin
- dbg "<- %s" (String.sub buf 0 read_bytes);
- conn.callbacks.recv_callback conn buf 0 read_bytes
- end
- with
- | Unix.Unix_error (Unix.EWOULDBLOCK, _, _)
- | Unix.Unix_error (Unix.EAGAIN, _, _)
- | Unix.Unix_error (Unix.EINTR, _, _) ->
- ()
- | Unix.Unix_error (ec, f, s) ->
- conn.callbacks.error_callback conn (ec, f, s)
- else
- Eventloop.disable_recv conn.ev_loop conn.ev_handle
+ let buflen = 512 in
+ let buf = String.create buflen in
+ try
+ let read_bytes = Unix.read fd buf 0 buflen in
+ if read_bytes = 0 then
+ conn.callbacks.shutdown_callback conn
+ else begin
+ dbg "<- %s" (String.sub buf 0 read_bytes);
+ conn.callbacks.recv_callback conn buf 0 read_bytes
+ end
+ with
+ | Unix.Unix_error (Unix.EWOULDBLOCK, _, _)
+ | Unix.Unix_error (Unix.EAGAIN, _, _)
+ | Unix.Unix_error (Unix.EINTR, _, _) ->
+ ()
+ | Unix.Unix_error (ec, f, s) ->
+ conn.callbacks.error_callback conn (ec, f, s)
let send_ready_callback el h fd =
let conn = Conns.get_conn h in
ev_fd = fd;
callbacks = callbacks;
send_done_enabled = enable_send_done;
- recv_enabled = enable_recv;
send_buf = Buffer.create 16;
}
in