diff --git a/libs/libblade/Makefile.am b/libs/libblade/Makefile.am index f65872f79d..9bbecb6d66 100644 --- a/libs/libblade/Makefile.am +++ b/libs/libblade/Makefile.am @@ -13,6 +13,7 @@ libunqlite_la_LIBADD = -lpthread lib_LTLIBRARIES = libblade.la libblade_la_SOURCES = src/blade.c src/blade_stack.c libblade_la_SOURCES += src/blade_identity.c src/blade_jsonrpc.c src/blade_connection.c src/blade_session.c +libblade_la_SOURCES += src/blade_protocol.c libblade_la_SOURCES += src/blade_transport.c src/blade_transport_wss.c libblade_la_CFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS) @@ -22,6 +23,7 @@ libblade_la_LIBADD = libunqlite.la library_includedir = $(prefix)/include library_include_HEADERS = src/include/blade.h src/include/blade_types.h src/include/blade_stack.h library_include_HEADERS += src/include/blade_identity.h src/include/blade_jsonrpc.h src/include/blade_connection.h src/include/blade_session.h +library_include_HEADERS += src/include/blade_protocol.h library_include_HEADERS += src/include/blade_transport.h src/include/blade_transport_wss.h library_include_HEADERS += src/include/unqlite.h test/tap.h diff --git a/libs/libblade/src/blade_stack.c b/libs/libblade/src/blade_stack.c index 570c3cfc63..888fd1d30f 100644 --- a/libs/libblade/src/blade_stack.c +++ b/libs/libblade/src/blade_stack.c @@ -69,7 +69,7 @@ struct blade_handle_s { ks_hash_t *session_state_callbacks; - // @note everything below this point is exclusively for the master node + // @note everything below this point is exclusively for the master node // @todo need to track the details from blade.publish, a protocol may be published under multiple realms, and each protocol published to a realm may have multiple target providers // @todo how does "exclusive" play into the providers, does "exclusive" mean only one provider can exist for a given protocol and realm? @@ -1198,7 +1198,7 @@ ks_bool_t blade_protocol_publish_request_handler(blade_jsonrpc_request_t *breq, ks_hash_write_lock(bh->protocols); - bp = (blade_protocol_t *)ks_hash_search(bh->protocols, bp_key, KS_UNLOCKED); + bp = (blade_protocol_t *)ks_hash_search(bh->protocols, (void *)bp_key, KS_UNLOCKED); if (bp) { // @todo deal with exclusive stuff when the protocol is already registered } @@ -1211,7 +1211,7 @@ ks_bool_t blade_protocol_publish_request_handler(blade_jsonrpc_request_t *breq, ks_hash_insert(bh->protocols, (void *)ks_pstrdup(bh->pool, bp_key), bp); } - bp_cleanup = (ks_hash_t *)ks_hash_search(bh->protocols_cleanup, req_params_requester_nodeid, KS_UNLOCKED); + bp_cleanup = (ks_hash_t *)ks_hash_search(bh->protocols_cleanup, (void *)req_params_requester_nodeid, KS_UNLOCKED); if (!bp_cleanup) { ks_hash_create(&bp_cleanup, KS_HASH_MODE_CASE_INSENSITIVE, KS_HASH_FLAG_RWLOCK | KS_HASH_FLAG_DUP_CHECK | KS_HASH_FLAG_FREE_KEY, bh->pool); ks_assert(bp_cleanup); @@ -1236,7 +1236,7 @@ ks_bool_t blade_protocol_publish_request_handler(blade_jsonrpc_request_t *breq, blade_session_send(bs, res, NULL); done: - + if (res) cJSON_Delete(res); if (bs) blade_session_read_unlock(bs); diff --git a/libs/libblade/switchblade/switchblade.cfg b/libs/libblade/switchblade/switchblade.cfg index 1f2d88a96e..13adf0ac00 100644 --- a/libs/libblade/switchblade/switchblade.cfg +++ b/libs/libblade/switchblade/switchblade.cfg @@ -6,18 +6,21 @@ blade: nodeid = "00000000-0000-0000-0000-000000000000"; realms = ( "mydomain.com" ); }; - wss: - { - endpoints: - { - ipv4 = ( { address = "0.0.0.0", port = 2100 } ); - ipv6 = ( { address = "::", port = 2100 } ); - backlog = 128; - }; - # SSL group is optional, disabled when absent - ssl: - { - # todo: server SSL stuffs here - }; - }; + transport: + { + wss: + { + endpoints: + { + ipv4 = ( { address = "0.0.0.0", port = 2100 } ); + ipv6 = ( { address = "::", port = 2100 } ); + backlog = 128; + }; + # SSL group is optional, disabled when absent + ssl: + { + # todo: server SSL stuffs here + }; + }; + }; }; diff --git a/libs/libblade/test/blades.cfg b/libs/libblade/test/blades.cfg index ce267655b9..6deb9958e2 100644 --- a/libs/libblade/test/blades.cfg +++ b/libs/libblade/test/blades.cfg @@ -6,8 +6,8 @@ blade: { endpoints: { - ipv4 = ( { address = "0.0.0.0", port = 2100 } ); - ipv6 = ( { address = "::", port = 2100 } ); + ipv4 = ( { address = "0.0.0.0", port = 2101 } ); + ipv6 = ( { address = "::", port = 2101 } ); backlog = 128; }; # SSL group is optional, disabled when absent