libev protect when disabled at runtime in server.c
Signed-off-by: Andy Green <andy.green@linaro.org>
diff --git a/lib/server.c b/lib/server.c
index 88bacf4..1a310ad 100644
--- a/lib/server.c
+++ b/lib/server.c
@@ -189,7 +189,9 @@
/* one shot */
lws_change_pollfd(wsi, LWS_POLLOUT, 0);
#ifdef LWS_USE_LIBEV
- ev_io_stop(context->io_loop,(struct ev_io*)&(wsi->w_write));
+ if (LWS_LIBEV_ENABLED(context))
+ ev_io_stop(context->io_loop,
+ (struct ev_io *)&wsi->w_write);
#endif /* LWS_USE_LIBEV */
if (wsi->state != WSI_STATE_HTTP_ISSUING_FILE) {
@@ -276,16 +278,18 @@
LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED, NULL, NULL, 0);
#ifdef LWS_USE_LIBEV
- new_wsi->w_read.context = context;
- new_wsi->w_write.context = context;
- /*
- new_wsi->w_read.wsi = new_wsi;
- new_wsi->w_write.wsi = new_wsi;
- */
- struct ev_io* w_read = (struct ev_io*)&(new_wsi->w_read);
- struct ev_io* w_write = (struct ev_io*)&(new_wsi->w_write);
- ev_io_init(w_read,libwebsocket_accept_cb,accept_fd,EV_READ);
- ev_io_init(w_write,libwebsocket_accept_cb,accept_fd,EV_WRITE);
+ if (LWS_LIBEV_ENABLED(context)) {
+ new_wsi->w_read.context = context;
+ new_wsi->w_write.context = context;
+ /*
+ new_wsi->w_read.wsi = new_wsi;
+ new_wsi->w_write.wsi = new_wsi;
+ */
+ struct ev_io* w_read = (struct ev_io*)&(new_wsi->w_read);
+ struct ev_io* w_write = (struct ev_io*)&(new_wsi->w_write);
+ ev_io_init(w_read,libwebsocket_accept_cb,accept_fd,EV_READ);
+ ev_io_init(w_write,libwebsocket_accept_cb,accept_fd,EV_WRITE);
+ }
#endif /* LWS_USE_LIBEV */
#ifdef LWS_OPENSSL_SUPPORT
@@ -355,7 +359,9 @@
lws_change_pollfd(wsi, LWS_POLLOUT, 0);
#ifdef LWS_USE_LIBEV
- ev_io_stop(context->io_loop,(struct ev_io*)&(wsi->w_write));
+ if (LWS_LIBEV_ENABLED(context))
+ ev_io_stop(context->io_loop,
+ (struct ev_io *)&wsi->w_write);
#endif /* LWS_USE_LIBEV */
lws_latency_pre(context, wsi);
@@ -402,7 +408,9 @@
if (m == SSL_ERROR_WANT_READ) {
lws_change_pollfd(wsi, 0, LWS_POLLIN);
#ifdef LWS_USE_LIBEV
- ev_io_start(context->io_loop,(struct ev_io*)&(wsi->w_read));
+ if (LWS_LIBEV_ENABLED(context))
+ ev_io_start(context->io_loop,
+ (struct ev_io *)&wsi->w_read);
#endif /* LWS_USE_LIBEV */
lwsl_info("SSL_ERROR_WANT_READ\n");
break;
@@ -410,7 +418,9 @@
if (m == SSL_ERROR_WANT_WRITE) {
lws_change_pollfd(wsi, 0, LWS_POLLOUT);
#ifdef LWS_USE_LIBEV
- ev_io_start(context->io_loop,(struct ev_io*)&(wsi->w_write));
+ if (LWS_LIBEV_ENABLED(context))
+ ev_io_start(context->io_loop,
+ (struct ev_io *)&wsi->w_write);
#endif /* LWS_USE_LIBEV */
break;
}