ACLOCAL_AMFLAGS=-I build
EXTRA_DIST =
-SUBDIRS = . test
+SUBDIRS = . test switchblade
AUTOMAKE_OPTIONS = subdir-objects
AM_CFLAGS += -I$(top_srcdir)/src -I$(top_srcdir)/src/include
lib_LTLIBRARIES = libblade.la
libblade_la_SOURCES = src/blade.c src/blade_stack.c
-libblade_la_SOURCES += src/blade_datastore.c
-libblade_la_SOURCES += src/blade_identity.c src/blade_module.c src/blade_connection.c
-libblade_la_SOURCES += src/blade_session.c src/blade_protocol.c src/blade_space.c src/blade_method.c
-libblade_la_SOURCES += src/blade_module_wss.c
-libblade_la_SOURCES += src/dht/ks_dht.c src/dht/ks_dht_datagram.c src/dht/ks_dht_endpoint.c src/dht/ks_dht_message.c src/dht/ks_dht_transaction.c
-libblade_la_SOURCES += src/dht/ks_dht_job.c src/dht/ks_dht_search.c src/dht/ks_dht_publish.c src/dht/ks_dht_distribute.c src/dht/ks_dht_storageitem.c
-libblade_la_SOURCES += src/dht/ks_dht_bucket.c src/ks_bencode.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_transport.c src/blade_transport_wss.c
libblade_la_CFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS)
libblade_la_LDFLAGS = -version-info 0:1:0 -lncurses -lpthread -lm -lconfig $(AM_LDFLAGS)
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_datastore.h
-library_include_HEADERS += src/include/blade_identity.h src/include/blade_module.h src/include/blade_connection.h
-library_include_HEADERS += src/include/blade_session.h src/include/blade_protocol.h src/include/blade_space.h src/include/blade_method.h
-library_include_HEADERS += src/include/blade_module_wss.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_transport.h src/include/blade_transport_wss.h
library_include_HEADERS += src/include/unqlite.h test/tap.h
-library_include_HEADERS += src/include/ks_dht.h src/include/ks_bencode.h
tests: libblade.la
$(MAKE) -C test tests
+
+switchblade: libblade.la
+ $(MAKE) -C switchblade sb
AC_CONFIG_FILES([Makefile
test/Makefile
+ switchblade/Makefile
libblade.pc
])
void *key = NULL;
void *value = NULL;
- ks_hash_this(it, &key, NULL, &value);
+ ks_hash_this(it, (const void **)&key, NULL, &value);
blade_handle_route_remove(bs->handle, (const char *)key);
}
const char *realm = bh->master_realms[index];
//char *identity = ks_pstrcat(bh->pool, bh->master_user, "@", realm); // @todo this does not work... why?
char *identity = ks_psprintf(bh->pool, "%s@%s", bh->master_user, realm);
-
+
blade_handle_identity_register(bh, identity);
blade_handle_realm_register(bh, realm);
key = ks_pstrdup(bh->pool, identity);
ks_hash_insert(bh->identities, (void *)key, (void *)KS_TRUE);
-
+
ks_log(KS_LOG_DEBUG, "Identity Registered: %s\n", key);
return KS_STATUS_SUCCESS;
key = ks_pstrdup(bh->pool, identity);
value = ks_pstrdup(bh->pool, id);
- ks_hash_insert(bh->identities, (void *)key, (void *)id);
+ ks_hash_insert(bh->identities, (void *)key, (void *)value);
- ks_log(KS_LOG_DEBUG, "Route Added: %s through %s\n", key, id);
+ ks_log(KS_LOG_DEBUG, "Route Added: %s through %s\n", key, value);
// @todo when a route is added, upstream needs to be notified that the identity can be found through the session to the
// upstream router, and likewise up the chain to the Master Router Node, to create a complete route from anywhere else
while ((it = ks_hash_first(bh->identities, KS_UNLOCKED))) {
void *key = NULL;
void *value = NULL;
- ks_hash_this(it, &key, NULL, &value);
+ ks_hash_this(it, (const void **)&key, NULL, &value);
ks_hash_remove(bh->identities, key);
}
while ((it = ks_hash_first(bh->realms, KS_UNLOCKED))) {
void *key = NULL;
void *value = NULL;
- ks_hash_this(it, &key, NULL, &value);
+ ks_hash_this(it, (const void **)&key, NULL, &value);
ks_hash_remove(bh->realms, key);
}
ks_pool_free(bh->pool, &bh->upstream_id);
blade_session_write_unlock(bs);
-
+
return ret;
}
{
// @todo get exact timeout from service config?
int32_t poll_flags = 0;
-
+
ks_assert(btwssl);
ks_assert(json);
// @todo start here for a reusable handler for "blade.connect" request jsonrpc method within transport implementations,
// output 2 parameters for response and error, if an error occurs, send it, otherwise send the response
-
+
jsonrpc = cJSON_GetObjectCstr(json_req, "jsonrpc"); // @todo check for definitions of these keys and fixed values
if (!jsonrpc || strcmp(jsonrpc, "2.0")) {
ks_log(KS_LOG_DEBUG, "Received message is not the expected protocol\n");
void *value = NULL;
char *identity = NULL;
- ks_hash_this(it, &key, NULL, &value);
+ ks_hash_this(it, (const void **)&key, NULL, &value);
identity = ks_psprintf(pool, "%s@%s", sid, (const char *)key);
void *key = NULL;
void *value = NULL;
- ks_hash_this(it, &key, NULL, &value);
+ ks_hash_this(it, (const void **)&key, NULL, &value);
cJSON_AddItemToArray(json_result_identities, cJSON_CreateString((const char *)key));
}
void *key = NULL;
void *value = NULL;
- ks_hash_this(it, &key, NULL, &value);
+ ks_hash_this(it, (const void **)&key, NULL, &value);
cJSON_AddItemToArray(json_result_realms, cJSON_CreateString((const char *)key));
}
+AM_CFLAGS += -I$(abs_top_srcdir)/src/include -g -ggdb -O0
+TEST_LDADD = $(abs_top_builddir)/libblade.la -lconfig -lm -lpthread
+check_PROGRAMS =
+
+
+check_PROGRAMS += switchblade
switchblade_SOURCES = switchblade.c
-switchblade_CFLAGS = $(AM_CFLAGS) -I$(abs_top_srcdir)/src/include -g -ggdb -O0
-switchblade_LDADD = $(abs_top_builddir)/libblade.la -lconfig -lm -lpthread
+switchblade_CFLAGS = $(AM_CFLAGS)
+switchblade_LDADD = $(TEST_LDADD)
-all: switchblade
+sb: $(check_PROGRAMS)
return EXIT_FAILURE;
}
- // @todo portable process signal handler (SIGINT, SIGHUP, etc)
-
idle(bh);
blade_handle_destroy(&bh);
blades_CFLAGS = $(AM_CFLAGS)
blades_LDADD = $(TEST_LDADD)
-check_PROGRAMS += testdht2
-testdht2_SOURCES = testdht2.c tap.c
-testdht2_CFLAGS = $(AM_CFLAGS)
-testdht2_LDADD = $(TEST_LDADD)
-
-check_PROGRAMS += testbuckets
-testbuckets_SOURCES = testbuckets.c tap.c
-testbuckets_CFLAGS = $(AM_CFLAGS)
-testbuckets_LDADD = $(TEST_LDADD)
-
-check_PROGRAMS += nodeidgen
-nodeidgen_SOURCES = nodeidgen.c tap.c
-nodeidgen_CFLAGS = $(AM_CFLAGS)
-nodeidgen_LDADD = $(TEST_LDADD)
+#check_PROGRAMS += testdht2
+#testdht2_SOURCES = testdht2.c tap.c
+#testdht2_CFLAGS = $(AM_CFLAGS)
+#testdht2_LDADD = $(TEST_LDADD)
+
+#check_PROGRAMS += testbuckets
+#testbuckets_SOURCES = testbuckets.c tap.c
+#testbuckets_CFLAGS = $(AM_CFLAGS)
+#testbuckets_LDADD = $(TEST_LDADD)
+
+#check_PROGRAMS += nodeidgen
+#nodeidgen_SOURCES = nodeidgen.c tap.c
+#nodeidgen_CFLAGS = $(AM_CFLAGS)
+#nodeidgen_LDADD = $(TEST_LDADD)
TESTS=$(check_PROGRAMS)
config_t config;
config_setting_t *config_blade = NULL;
const char *cfgpath = "bladec.cfg";
- const char *session_state_callback_id = NULL;
+ //const char *session_state_callback_id = NULL;
const char *autoconnect = NULL;
ks_global_set_default_logger(KS_LOG_LEVEL_DEBUG);