diff --git a/capi/examples/client.c b/capi/examples/client.c index 3cccdd6ae1..57a3e7b6c7 100644 --- a/capi/examples/client.c +++ b/capi/examples/client.c @@ -24,44 +24,42 @@ static size_t read_cb(void *userdata, hyper_context *ctx, uint8_t *buf, size_t b struct conn_data *conn = (struct conn_data *)userdata; ssize_t ret = read(conn->fd, buf, buf_len); - if (ret < 0) { - int err = errno; - if (err == EAGAIN) { - // would block, register interest - if (conn->read_waker != NULL) { - hyper_waker_free(conn->read_waker); - } - conn->read_waker = hyper_context_waker(ctx); - return HYPER_IO_PENDING; - } else { - // kaboom - return HYPER_IO_ERROR; - } - } else { + if (ret >= 0) { return ret; } + + if (errno != EAGAIN) { + // kaboom + return HYPER_IO_ERROR; + } + + // would block, register interest + if (conn->read_waker != NULL) { + hyper_waker_free(conn->read_waker); + } + conn->read_waker = hyper_context_waker(ctx); + return HYPER_IO_PENDING; } static size_t write_cb(void *userdata, hyper_context *ctx, const uint8_t *buf, size_t buf_len) { struct conn_data *conn = (struct conn_data *)userdata; ssize_t ret = write(conn->fd, buf, buf_len); - if (ret < 0) { - int err = errno; - if (err == EAGAIN) { - // would block, register interest - if (conn->write_waker != NULL) { - hyper_waker_free(conn->write_waker); - } - conn->write_waker = hyper_context_waker(ctx); - return HYPER_IO_PENDING; - } else { - // kaboom - return HYPER_IO_ERROR; - } - } else { + if (ret >= 0) { return ret; } + + if (errno != EAGAIN) { + // kaboom + return HYPER_IO_ERROR; + } + + // would block, register interest + if (conn->write_waker != NULL) { + hyper_waker_free(conn->write_waker); + } + conn->write_waker = hyper_context_waker(ctx); + return HYPER_IO_PENDING; } static void free_conn_data(struct conn_data *conn) { @@ -98,9 +96,9 @@ static int connect_to(const char *host, const char *port) { if (connect(sfd, rp->ai_addr, rp->ai_addrlen) != -1) { break; - } else { - close(sfd); } + + close(sfd); } freeaddrinfo(result); @@ -142,17 +140,17 @@ typedef enum { #define STR_ARG(XX) (uint8_t *)XX, strlen(XX) int main(int argc, char *argv[]) { - const char *host = argc > 1 ? argv[1] : "httpbin.org"; - const char *port = argc > 2 ? argv[2] : "80"; - const char *path = argc > 3 ? argv[3] : "/"; - printf("connecting to port %s on %s...\n", port, host); + const char *host = argc > 1 ? argv[1] : "httpbin.org"; + const char *port = argc > 2 ? argv[2] : "80"; + const char *path = argc > 3 ? argv[3] : "/"; + printf("connecting to port %s on %s...\n", port, host); - int fd = connect_to(host, port); + int fd = connect_to(host, port); if (fd < 0) { return 1; } - printf("connected to %s, now get %s\n", host, path); + printf("connected to %s, now get %s\n", host, path); if (fcntl(fd, F_SETFL, O_NONBLOCK) != 0) { printf("failed to set socket to non-blocking\n"); return 1; @@ -168,7 +166,6 @@ int main(int argc, char *argv[]) { conn->read_waker = NULL; conn->write_waker = NULL; - // Hookup the IO hyper_io *io = hyper_io_new(); hyper_io_set_userdata(io, (void *)conn); @@ -315,15 +312,16 @@ int main(int argc, char *argv[]) { if (sel_ret < 0) { printf("select() error\n"); return 1; - } else { - if (FD_ISSET(conn->fd, &fds_read)) { - hyper_waker_wake(conn->read_waker); - conn->read_waker = NULL; - } - if (FD_ISSET(conn->fd, &fds_write)) { - hyper_waker_wake(conn->write_waker); - conn->write_waker = NULL; - } + } + + if (FD_ISSET(conn->fd, &fds_read)) { + hyper_waker_wake(conn->read_waker); + conn->read_waker = NULL; + } + + if (FD_ISSET(conn->fd, &fds_write)) { + hyper_waker_wake(conn->write_waker); + conn->write_waker = NULL; } } diff --git a/capi/examples/upload.c b/capi/examples/upload.c index 10582c8867..9b791eedf8 100644 --- a/capi/examples/upload.c +++ b/capi/examples/upload.c @@ -24,44 +24,42 @@ static size_t read_cb(void *userdata, hyper_context *ctx, uint8_t *buf, size_t b struct conn_data *conn = (struct conn_data *)userdata; ssize_t ret = read(conn->fd, buf, buf_len); - if (ret < 0) { - int err = errno; - if (err == EAGAIN) { - // would block, register interest - if (conn->read_waker != NULL) { - hyper_waker_free(conn->read_waker); - } - conn->read_waker = hyper_context_waker(ctx); - return HYPER_IO_PENDING; - } else { - // kaboom - return HYPER_IO_ERROR; - } - } else { + if (ret >= 0) { return ret; } + + if (errno != EAGAIN) { + // kaboom + return HYPER_IO_ERROR; + } + + // would block, register interest + if (conn->read_waker != NULL) { + hyper_waker_free(conn->read_waker); + } + conn->read_waker = hyper_context_waker(ctx); + return HYPER_IO_PENDING; } static size_t write_cb(void *userdata, hyper_context *ctx, const uint8_t *buf, size_t buf_len) { struct conn_data *conn = (struct conn_data *)userdata; ssize_t ret = write(conn->fd, buf, buf_len); - if (ret < 0) { - int err = errno; - if (err == EAGAIN) { - // would block, register interest - if (conn->write_waker != NULL) { - hyper_waker_free(conn->write_waker); - } - conn->write_waker = hyper_context_waker(ctx); - return HYPER_IO_PENDING; - } else { - // kaboom - return HYPER_IO_ERROR; - } - } else { + if (ret >= 0) { return ret; } + + if (errno != EAGAIN) { + // kaboom + return HYPER_IO_ERROR; + } + + // would block, register interest + if (conn->write_waker != NULL) { + hyper_waker_free(conn->write_waker); + } + conn->write_waker = hyper_context_waker(ctx); + return HYPER_IO_PENDING; } static void free_conn_data(struct conn_data *conn) { @@ -98,9 +96,9 @@ static int connect_to(const char *host, const char *port) { if (connect(sfd, rp->ai_addr, rp->ai_addrlen) != -1) { break; - } else { - close(sfd); } + + close(sfd); } freeaddrinfo(result); @@ -126,17 +124,20 @@ static int poll_req_upload(void *userdata, struct upload_body* upload = userdata; ssize_t res = read(upload->fd, upload->buf, upload->len); - if (res < 0) { - printf("error reading upload file: %d", errno); - return HYPER_POLL_ERROR; - } else if (res == 0) { + if (res > 0) { + *chunk = hyper_buf_copy(upload->buf, res); + return HYPER_POLL_READY; + } + + if (res == 0) { // All done! *chunk = NULL; return HYPER_POLL_READY; - } else { - *chunk = hyper_buf_copy(upload->buf, res); - return HYPER_POLL_READY; } + + // Oh no! + printf("error reading upload file: %d", errno); + return HYPER_POLL_ERROR; } static int print_each_header(void *userdata, @@ -348,20 +349,20 @@ int main(int argc, char *argv[]) { hyper_executor_push(exec, body_data); break; - } else { - assert(task_type == HYPER_TASK_EMPTY); - hyper_task_free(task); - hyper_body_free(resp_body); + } - printf("\n -- Done! -- \n"); + assert(task_type == HYPER_TASK_EMPTY); + hyper_task_free(task); + hyper_body_free(resp_body); - // Cleaning up before exiting - hyper_executor_free(exec); - free_conn_data(conn); - free(upload.buf); + printf("\n -- Done! -- \n"); - return 0; - } + // Cleaning up before exiting + hyper_executor_free(exec); + free_conn_data(conn); + free(upload.buf); + + return 0; case EXAMPLE_NOT_SET: // A background task for hyper completed... hyper_task_free(task); @@ -387,17 +388,17 @@ int main(int argc, char *argv[]) { if (sel_ret < 0) { printf("select() error\n"); return 1; - } else { - if (FD_ISSET(conn->fd, &fds_read)) { - hyper_waker_wake(conn->read_waker); - conn->read_waker = NULL; - } - if (FD_ISSET(conn->fd, &fds_write)) { - hyper_waker_wake(conn->write_waker); - conn->write_waker = NULL; - } } + if (FD_ISSET(conn->fd, &fds_read)) { + hyper_waker_wake(conn->read_waker); + conn->read_waker = NULL; + } + + if (FD_ISSET(conn->fd, &fds_write)) { + hyper_waker_wake(conn->write_waker); + conn->write_waker = NULL; + } }