diff --git a/src/context.c b/src/context.c index 61e2f14..f33d965 100644 --- a/src/context.c +++ b/src/context.c @@ -263,7 +263,7 @@ struct us_listen_socket_t *us_socket_context_listen(int ssl, struct us_socket_co return 0; } - struct us_poll_t *p = us_create_poll(context->loop, 0, sizeof(struct us_listen_socket_t)); + struct us_poll_t *p = us_create_poll(context->loop, 0, sizeof(struct us_listen_socket_t) - sizeof(struct us_poll_t)); us_poll_init(p, listen_socket_fd, POLL_TYPE_SEMI_SOCKET); us_poll_start(p, context->loop, LIBUS_SOCKET_READABLE); @@ -294,7 +294,7 @@ struct us_listen_socket_t *us_socket_context_listen_unix(int ssl, struct us_sock return 0; } - struct us_poll_t *p = us_create_poll(context->loop, 0, sizeof(struct us_listen_socket_t)); + struct us_poll_t *p = us_create_poll(context->loop, 0, sizeof(struct us_listen_socket_t) - sizeof(struct us_poll_t)); us_poll_init(p, listen_socket_fd, POLL_TYPE_SEMI_SOCKET); us_poll_start(p, context->loop, LIBUS_SOCKET_READABLE); @@ -325,7 +325,7 @@ struct us_socket_t *us_socket_context_connect(int ssl, struct us_socket_context_ } /* Connect sockets are semi-sockets just like listen sockets */ - struct us_poll_t *p = us_create_poll(context->loop, 0, sizeof(struct us_socket_t) + socket_ext_size); + struct us_poll_t *p = us_create_poll(context->loop, 0, sizeof(struct us_socket_t) - sizeof(struct us_poll_t) + socket_ext_size); us_poll_init(p, connect_socket_fd, POLL_TYPE_SEMI_SOCKET); us_poll_start(p, context->loop, LIBUS_SOCKET_WRITABLE); @@ -354,7 +354,7 @@ struct us_socket_t *us_socket_context_connect_unix(int ssl, struct us_socket_con } /* Connect sockets are semi-sockets just like listen sockets */ - struct us_poll_t *p = us_create_poll(context->loop, 0, sizeof(struct us_socket_t) + socket_ext_size); + struct us_poll_t *p = us_create_poll(context->loop, 0, sizeof(struct us_socket_t) - sizeof(struct us_poll_t) + socket_ext_size); us_poll_init(p, connect_socket_fd, POLL_TYPE_SEMI_SOCKET); us_poll_start(p, context->loop, LIBUS_SOCKET_WRITABLE); diff --git a/src/crypto/openssl.c b/src/crypto/openssl.c index 4473679..6f9b0cf 100644 --- a/src/crypto/openssl.c +++ b/src/crypto/openssl.c @@ -407,7 +407,7 @@ void *us_internal_ssl_socket_context_get_native_handle(struct us_internal_ssl_so struct us_internal_ssl_socket_context_t *us_internal_create_child_ssl_socket_context(struct us_internal_ssl_socket_context_t *context, int context_ext_size) { /* Create a new non-SSL context */ struct us_socket_context_options_t options = {0}; - struct us_internal_ssl_socket_context_t *child_context = (struct us_internal_ssl_socket_context_t *) us_create_socket_context(0, context->sc.loop, sizeof(struct us_internal_ssl_socket_context_t) + context_ext_size, options); + struct us_internal_ssl_socket_context_t *child_context = (struct us_internal_ssl_socket_context_t *) us_create_socket_context(0, context->sc.loop, sizeof(struct us_internal_ssl_socket_context_t) - sizeof(struct us_socket_context_t) + context_ext_size, options); /* The only thing we share is SSL_CTX */ child_context->ssl_context = context->ssl_context; @@ -645,7 +645,7 @@ struct us_internal_ssl_socket_context_t *us_internal_create_ssl_socket_context(s } /* Otherwise ee continue by creating a non-SSL context, but with larger ext to hold our SSL stuff */ - struct us_internal_ssl_socket_context_t *context = (struct us_internal_ssl_socket_context_t *) us_create_socket_context(0, loop, sizeof(struct us_internal_ssl_socket_context_t) + context_ext_size, options); + struct us_internal_ssl_socket_context_t *context = (struct us_internal_ssl_socket_context_t *) us_create_socket_context(0, loop, sizeof(struct us_internal_ssl_socket_context_t) - sizeof(struct us_socket_context_t) + context_ext_size, options); /* I guess this is the only optional callback */ context->on_server_name = NULL; diff --git a/src/eventing/epoll_kqueue.c b/src/eventing/epoll_kqueue.c index c4444b7..72c6118 100644 --- a/src/eventing/epoll_kqueue.c +++ b/src/eventing/epoll_kqueue.c @@ -287,7 +287,7 @@ unsigned int us_internal_accept_poll_event(struct us_poll_t *p) { /* Timer */ #ifdef LIBUS_USE_EPOLL struct us_timer_t *us_create_timer(struct us_loop_t *loop, int fallthrough, unsigned int ext_size) { - struct us_poll_t *p = us_create_poll(loop, fallthrough, sizeof(struct us_internal_callback_t) + ext_size); + struct us_poll_t *p = us_create_poll(loop, fallthrough, sizeof(struct us_internal_callback_t) - sizeof(struct us_poll_t) + ext_size); int timerfd = timerfd_create(CLOCK_REALTIME, TFD_NONBLOCK | TFD_CLOEXEC); if (timerfd == -1) { return NULL; @@ -372,7 +372,7 @@ void us_timer_set(struct us_timer_t *t, void (*cb)(struct us_timer_t *t), int ms /* Async (internal helper for loop's wakeup feature) */ #ifdef LIBUS_USE_EPOLL struct us_internal_async *us_internal_create_async(struct us_loop_t *loop, int fallthrough, unsigned int ext_size) { - struct us_poll_t *p = us_create_poll(loop, fallthrough, sizeof(struct us_internal_callback_t) + ext_size); + struct us_poll_t *p = us_create_poll(loop, fallthrough, sizeof(struct us_internal_callback_t) - sizeof(struct us_poll_t) + ext_size); us_poll_init(p, eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC), POLL_TYPE_CALLBACK); struct us_internal_callback_t *cb = (struct us_internal_callback_t *) p; diff --git a/src/udp.c b/src/udp.c index 9a63822..e19d3e6 100644 --- a/src/udp.c +++ b/src/udp.c @@ -118,7 +118,7 @@ struct us_udp_socket_t *us_create_udp_socket(struct us_loop_t *loop, struct us_u int ext_size = 0; int fallthrough = 0; - struct us_poll_t *p = us_create_poll(loop, fallthrough, sizeof(struct us_internal_udp_t) + ext_size); + struct us_poll_t *p = us_create_poll(loop, fallthrough, sizeof(struct us_internal_udp_t) - sizeof(struct us_poll_t) + ext_size); us_poll_init(p, fd, POLL_TYPE_CALLBACK); struct us_internal_udp_t *cb = (struct us_internal_udp_t *) p;