diff --git a/CMakeLists.txt b/CMakeLists.txt index e2db72d8c5f746ad0f7dec1ef70a17471081f24f..ac2bda1b96703298804bcb91acf6e51fe1144517 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,10 +143,17 @@ set (CMAKE_C_FLAGS if (${CMAKE_BUILD_TYPE} STREQUAL "None") set (core_cflags "-std=gnu99") else() - set (core_cflags "-std=gnu99 -Wall -Wextra -Werror") + set (core_cflags "-std=gnu99 -Wall -Wextra") set (core_cflags "${core_cflags} -Wno-sign-compare -Wno-strict-aliasing") endif() +# Only add -Werror if it's a debug build, done by developers. +# Community builds should not cause extra trouble. + +if (${CMAKE_BUILD_TYPE} STREQUAL "Debug") + set (core_cflags "${core_cflags} -Werror") +endif() + # # Specify where to look for include files. # diff --git a/core/admin.m b/core/admin.m index 6ffc97035e7caef54fd337bb2d44e6639f721751..412dc7b8868b918a84f51db2f8f62170c8c162a5 100644 --- a/core/admin.m +++ b/core/admin.m @@ -1477,7 +1477,7 @@ admin_handler(void *_data __attribute__((unused))) int admin_init(void) { - if (fiber_server(tcp_server, cfg.admin_port, admin_handler, NULL, NULL) == NULL) { + if (fiber_server(cfg.admin_port, admin_handler, NULL, NULL) == NULL) { say_syserror("can't bind to %d", cfg.admin_port); return -1; } diff --git a/core/admin.rl b/core/admin.rl index 2e10c8968c904a1324d24e2755cf0b2a47364091..81265ecf7a57c87b87a9ca15ec80eb1d978d7141 100644 --- a/core/admin.rl +++ b/core/admin.rl @@ -223,7 +223,7 @@ admin_handler(void *_data __attribute__((unused))) int admin_init(void) { - if (fiber_server(tcp_server, cfg.admin_port, admin_handler, NULL, NULL) == NULL) { + if (fiber_server(cfg.admin_port, admin_handler, NULL, NULL) == NULL) { say_syserror("can't bind to %d", cfg.admin_port); return -1; } diff --git a/core/fiber.m b/core/fiber.m index 74876d70dcad4bf6ac0b086a58aa9d6181993bb6..c0b83055f0f27b7a1e98b7523ff45540203f0dcb 100644 --- a/core/fiber.m +++ b/core/fiber.m @@ -286,7 +286,7 @@ fiber_io_yield() } static void -fiber_io_stop(int events) +fiber_io_stop(int events __attribute__((unused))) { ev_io *io = &fiber->io; @@ -1175,15 +1175,13 @@ tcp_server_handler(void *data) } struct fiber * -fiber_server(fiber_server_type type, int port, void (*handler) (void *data), void *data, +fiber_server(int port, void (*handler) (void *data), void *data, void (*on_bind) (void *data)) { char *server_name; struct fiber_server *server; struct fiber *s; - assert(type == tcp_server); - server_name = palloc(eter_pool, 64); snprintf(server_name, 64, "%i/acceptor", port); s = fiber_create(server_name, -1, -1, tcp_server_handler, data); diff --git a/include/fiber.h b/include/fiber.h index caa49da8b5972d46de70ea0cff82c60eb3dd090f..ab8cd7e679dc7e6265c270bae709fd22a8e827e1 100644 --- a/include/fiber.h +++ b/include/fiber.h @@ -191,13 +191,9 @@ void fiber_sleep(ev_tstamp s); void fiber_info(struct tbuf *out); int set_nonblock(int sock); -typedef enum fiber_server_type { - tcp_server, -} fiber_server_type; - typedef void (*fiber_server_callback)(void *); -struct fiber *fiber_server(fiber_server_type type, int port, +struct fiber *fiber_server(int port, fiber_server_callback callback, void *, void (*on_bind) (void *)); diff --git a/mod/box/box.m b/mod/box/box.m index 6e6084ed9432d3b10b0e474ee17772a4405c52a5..26721739199c0bb52a2b126044d679ee6dfe9389 100644 --- a/mod/box/box.m +++ b/mod/box/box.m @@ -1406,16 +1406,16 @@ mod_init(void) } if (cfg.memcached != 0) { - fiber_server(tcp_server, cfg.primary_port, memcached_handler, NULL, + fiber_server(cfg.primary_port, memcached_handler, NULL, box_leave_local_hot_standby_mode); } else { if (cfg.secondary_port != 0) - fiber_server(tcp_server, cfg.secondary_port, + fiber_server(cfg.secondary_port, (fiber_server_callback) iproto_interact, &ro_callback, NULL); if (cfg.primary_port != 0) - fiber_server(tcp_server, cfg.primary_port, + fiber_server(cfg.primary_port, (fiber_server_callback) iproto_interact, &rw_callback, box_leave_local_hot_standby_mode); }