|
|
|
@ -58,7 +58,11 @@ namespace llarp
|
|
|
|
|
{
|
|
|
|
|
ctx->worker = llarp_init_threadpool(workers, "llarp-worker");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else
|
|
|
|
|
if (!strcmp(key, "contact-file"))
|
|
|
|
|
{
|
|
|
|
|
strncpy(ctx->conatctFile, val, fmin(255, strlen(val)));
|
|
|
|
|
} else
|
|
|
|
|
if(!strcmp(key, "net-threads"))
|
|
|
|
|
{
|
|
|
|
|
ctx->num_nethreads = atoi(val);
|
|
|
|
@ -362,10 +366,57 @@ llarp_main_getDatabase(struct llarp_main *ptr, byte_t *pk)
|
|
|
|
|
{
|
|
|
|
|
return ptr->ctx->GetDatabase(pk);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
struct llarp_rc *
|
|
|
|
|
llarp_main_getLocalRC(struct llarp_main *ptr)
|
|
|
|
|
{
|
|
|
|
|
//
|
|
|
|
|
/*
|
|
|
|
|
llarp_config_iterator iter;
|
|
|
|
|
iter.user = this;
|
|
|
|
|
iter.visit = &iter_config;
|
|
|
|
|
llarp_config_iter(ctx->config, &iter);
|
|
|
|
|
*/
|
|
|
|
|
llarp::Info("Loading ", ptr->ctx->conatctFile);
|
|
|
|
|
llarp_rc *rc = llarp_rc_read(ptr->ctx->conatctFile);
|
|
|
|
|
return rc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void llarp_main_checkOnline(void *u, uint64_t orig, uint64_t left) {
|
|
|
|
|
//llarp::Info("checkOnline - check ", left);
|
|
|
|
|
if(left)
|
|
|
|
|
return;
|
|
|
|
|
struct check_online_request *request = static_cast<struct check_online_request *>(u);
|
|
|
|
|
//llarp::Debug("checkOnline - running");
|
|
|
|
|
//llarp::Info("checkOnline - DHT nodes ", request->ptr->ctx->router->dht->impl.nodes->nodes.size());
|
|
|
|
|
request->online = false;
|
|
|
|
|
request->nodes = request->ptr->ctx->router->dht->impl.nodes->nodes.size();
|
|
|
|
|
if (request->ptr->ctx->router->dht->impl.nodes->nodes.size()) {
|
|
|
|
|
//llarp::Info("checkOnline - Going to say we're online");
|
|
|
|
|
request->online = true;
|
|
|
|
|
}
|
|
|
|
|
request->hook(request);
|
|
|
|
|
// reschedue our self
|
|
|
|
|
llarp_main_queryDHT(request);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void llarp_main_queryDHT_online(struct check_online_request *request) {
|
|
|
|
|
//Info("llarp_main_queryDHT_online: ", request->online ? "online" : "offline");
|
|
|
|
|
if (request->online && !request->first) {
|
|
|
|
|
request->first = true;
|
|
|
|
|
llarp::Info("llarp_main_queryDHT_online - We're online");
|
|
|
|
|
llarp::Info("llarp_main_queryDHT_online - Querying DHT");
|
|
|
|
|
llarp_dht_lookup_router(request->ptr->ctx->router->dht, request->job);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void llarp_main_queryDHT(struct llarp_main *ptr, llarp_router_lookup_job *job)
|
|
|
|
|
void llarp_main_queryDHT(struct check_online_request *request)
|
|
|
|
|
{
|
|
|
|
|
llarp_dht_lookup_router(ptr->ctx->router->dht, job);
|
|
|
|
|
//llarp::Info("llarp_main_queryDHT - setting up timer");
|
|
|
|
|
request->hook = &llarp_main_queryDHT_online;
|
|
|
|
|
llarp_logic_call_later(request->ptr->ctx->router->logic,
|
|
|
|
|
{1000, request, &llarp_main_checkOnline});
|
|
|
|
|
//llarp_dht_lookup_router(ptr->ctx->router->dht, job);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|