diff --git a/src/event.c b/src/event.c index d9a4170..53ddc7e 100644 --- a/src/event.c +++ b/src/event.c @@ -116,73 +116,6 @@ int hyper_requeue_event(int efd, struct hyper_event *ev) return 0; } -static int hyper_getmsg_len(struct hyper_event *he, uint32_t *len) -{ - struct hyper_buf *buf = &he->rbuf; - - if (buf->get < he->ops->len_offset + 4) - return -1; - - *len = hyper_get_be32(buf->data + he->ops->len_offset); - return 0; -} - -int hyper_event_read(struct hyper_event *he, int efd) -{ - struct hyper_buf *buf = &he->rbuf; - uint32_t len = he->ops->len_offset + 4; - uint8_t data[4]; - int size; - int ret; - - fprintf(stdout, "%s\n", __func__); - - if (buf->get < len) { - size = nonblock_read(he->fd, buf->data + buf->get, len - buf->get); - if (size < 0) { - return size; - } - if (size > 0 && he->ops->ack) { - /* control channel, need ack */ - hyper_set_be32(data, size); - hyper_send_msg(he->fd, NEXT, 4, data); - } - buf->get += size; - if (buf->get < len) { - return 0; - } - } - - hyper_getmsg_len(he, &len); - fprintf(stdout, "get length %" PRIu32"\n", len); - // test it with '>=' to leave at least one byte in handle(), - // so that handle() can convert the data to c-string inplace. - if (len >= buf->size) { - fprintf(stderr, "get length %" PRIu32", too long\n", len); - return -1; - } - - size = nonblock_read(he->fd, buf->data + buf->get, len - buf->get); - if (size < 0) { - return size; - } - if (size > 0 && he->ops->ack) { - /* control channel, need ack */ - hyper_set_be32(data, size); - hyper_send_msg(he->fd, NEXT, 4, data); - } - buf->get += size; - if (buf->get < len) { - return 0; - } - - /* get and consume the whole data */ - ret = he->ops->handle(he, len); - buf->get = 0; - - return ret == 0 ? 0 : -1; -} - int hyper_event_write(struct hyper_event *he, int efd) { struct hyper_buf *buf = &he->wbuf; diff --git a/src/event.h b/src/event.h index 5d46ddf..a1aae44 100644 --- a/src/event.h +++ b/src/event.h @@ -43,6 +43,5 @@ int hyper_init_event(struct hyper_event *de, struct hyper_event_ops *ops, int hyper_handle_event(int efd, struct epoll_event *event); void hyper_reset_event(struct hyper_event *de); void hyper_event_hup(struct hyper_event *de, int efd); -int hyper_event_read(struct hyper_event *dei, int efd); int hyper_event_write(struct hyper_event *de, int efd); #endif