dl_status dl_on_recv(dl_t self, const char *buf, ssize_t length) { dl_private_t my = self->private_state; if (length < 0) { return DL_ERROR; } else if (length == 0) { return DL_SUCCESS; } if (cb_begin_input(my->in, buf, length)) { return DL_ERROR; } dl_status ret = dl_recv_loop(self); if (cb_end_input(my->in)) { return DL_ERROR; } return ret; }
wi_status wi_on_recv(wi_t self, const char *buf, ssize_t length) { wi_private_t my = self->private_state; if (length < 0) { return WI_ERROR; } else if (length == 0) { return WI_SUCCESS; } wi_on_debug(self, "wi.recv", buf, length); if (cb_begin_input(my->in, buf, length)) { return self->on_error(self, "begin_input buffer error"); } wi_status ret = wi_recv_loop(self); if (cb_end_input(my->in)) { return self->on_error(self, "end_input buffer error"); } return ret; }