add release targets to makefile for future

purge llarp_alloc

colored logging
pull/1/head
Jeff Becker 6 years ago
parent fbb6913ee9
commit 02d785d30c
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

4
.gitignore vendored

@ -21,3 +21,7 @@ CMakeCache.txt
callgrind.* callgrind.*
.gdb_history .gdb_history
*.sig
*.signed
*.key

@ -9,6 +9,15 @@ endif(ASAN)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -Wall -fPIC ${DEBUG_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -Wall -fPIC ${DEBUG_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -fPIC ${DEBUG_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -fPIC ${DEBUG_FLAGS}")
if(NOT GIT_VERSION)
exec_program("git" ${CMAKE_CURRENT_SOURCE_DIR} ARGS "rev-parse --short HEAD" OUTPUT_VARIABLE GIT_VERSION)
add_definitions(-DGIT_REV="${GIT_VERSION}")
endif()
if(RELEASE_MOTTO)
add_definitions(-DLLARP_RELEASE_MOTTO="${RELEASE_MOTTO}")
endif()
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
@ -17,7 +26,6 @@ set(EXE_SRC daemon/main.cpp)
set(LIBS sodium pthread stdc++fs) set(LIBS sodium pthread stdc++fs)
set(LIB llarp) set(LIB llarp)
set(SHARED_LIB ${LIB}) set(SHARED_LIB ${LIB})
set(STATIC_LIB ${LIB}-static) set(STATIC_LIB ${LIB}-static)
@ -30,16 +38,15 @@ set(LIB_SRC
llarp/crypto_async.cpp llarp/crypto_async.cpp
llarp/crypto_libsodium.cpp llarp/crypto_libsodium.cpp
llarp/ev.cpp llarp/ev.cpp
llarp/exit_info.c llarp/exit_info.cpp
llarp/exit_route.c llarp/exit_route.c
llarp/iwp_link.cpp llarp/iwp_link.cpp
llarp/logger.cpp llarp/logger.cpp
llarp/link.c llarp/link.c
llarp/link_intro.cpp llarp/link_intro.cpp
llarp/link_message.cpp llarp/link_message.cpp
llarp/logic.c llarp/logic.cpp
llarp/mem.cpp llarp/mem.cpp
llarp/mem_std.cpp
llarp/net.cpp llarp/net.cpp
llarp/nodedb.cpp llarp/nodedb.cpp
llarp/router_contact.cpp llarp/router_contact.cpp

@ -1,21 +1,42 @@
all: debug all: debug
SIGN = gpg --sign --detach
TARGETS = llarpd libllarp.so libllarp-static.a
SIGS = $(TARGETS:=.sig)
clean: clean:
rm -f build.ninja rules.ninja cmake_install.cmake CMakeCache.txt rm -f build.ninja rules.ninja cmake_install.cmake CMakeCache.txt
rm -rf CMakeFiles rm -rf CMakeFiles
rm -f $(TARGETS)
rm -f *.sig
debug-configure: clean debug-configure: clean
cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DASAN=true cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DASAN=true
release-configure: clean
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DRELEASE_MOTTO="$(shell cat motto.txt)"
configure: clean configure: clean
cmake -GNinja -DCMAKE_BUILD_TYPE=Release cmake -GNinja -DCMAKE_BUILD_TYPE=Debug
compile: configure build: configure
ninja ninja
debug: debug-configure debug: debug-configure
ninja ninja
release-compile: release-configure
ninja
strip $(TARGETS)
$(TARGETS): release-compile
%.sig: $(TARGETS)
$(SIGN) $*
release: $(SIGS)
format: format:
clang-format -i $$(find daemon llarp include | grep -E '\.[h,c](pp)?$$') clang-format -i $$(find daemon llarp include | grep -E '\.[h,c](pp)?$$')

@ -16,7 +16,6 @@ namespace llarp
int num_nethreads = 1; int num_nethreads = 1;
std::vector< std::thread > netio_threads; std::vector< std::thread > netio_threads;
llarp_alloc mem;
llarp_crypto crypto; llarp_crypto crypto;
llarp_router *router = nullptr; llarp_router *router = nullptr;
llarp_threadpool *worker = nullptr; llarp_threadpool *worker = nullptr;

@ -1,7 +1,8 @@
#ifndef LLARP_LOGGER_HPP #ifndef LLARP_LOGGER_HPP
#define LLARP_LOGGER_HPP #define LLARP_LOGGER_HPP
#include <chrono> #include <ctime>
#include <iomanip>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
@ -15,7 +16,16 @@ namespace llarp
eLogError eLogError
}; };
extern LogLevel loglevel; struct Logger
{
LogLevel minlevel = eLogDebug;
std::ostream& out = std::cout;
};
extern Logger _glog;
void
SetLogLevel(LogLevel lvl);
/** internal */ /** internal */
template < typename TArg > template < typename TArg >
@ -38,30 +48,35 @@ namespace llarp
void void
Log(LogLevel lvl, const char* tag, TArgs&&... args) Log(LogLevel lvl, const char* tag, TArgs&&... args)
{ {
if(loglevel > lvl) if(_glog.minlevel > lvl)
return; return;
std::stringstream ss; std::stringstream ss;
switch(lvl) switch(lvl)
{ {
case eLogDebug: case eLogDebug:
ss << (char)27 << "[0m";
ss << "[DBG] "; ss << "[DBG] ";
break; break;
case eLogInfo: case eLogInfo:
ss << (char)27 << "[1m";
ss << "[NFO] "; ss << "[NFO] ";
break; break;
case eLogWarn: case eLogWarn:
ss << (char)27 << "[1;33m";
ss << "[WRN] "; ss << "[WRN] ";
break; break;
case eLogError: case eLogError:
ss << (char)27 << "[1;31m";
ss << "[ERR] "; ss << "[ERR] ";
break; break;
} }
auto now = std::chrono::steady_clock::now().time_since_epoch(); auto t = std::time(nullptr);
ss << std::chrono::duration_cast< std::chrono::milliseconds >(now).count() auto now = std::localtime(&t);
<< " " << tag << "\t"; ss << std::put_time(now, "%F %T") << " " << tag << "\t";
LogAppend(ss, std::forward< TArgs >(args)...); LogAppend(ss, std::forward< TArgs >(args)...);
std::cout << ss.str() << std::endl; ss << (char)27 << "[0;0m";
_glog.out << ss.str() << std::endl;
} }
template < typename... TArgs > template < typename... TArgs >

@ -10,7 +10,7 @@ extern "C" {
struct llarp_logic; struct llarp_logic;
struct llarp_logic* struct llarp_logic*
llarp_init_logic(struct llarp_alloc* mem); llarp_init_logic();
void void
llarp_free_logic(struct llarp_logic** logic); llarp_free_logic(struct llarp_logic** logic);

@ -1,34 +1,13 @@
#ifndef LLARP_MEM_H_ #ifndef LLARP_MEM_H_
#define LLARP_MEM_H_ #define LLARP_MEM_H_
#ifdef NO_JEMALLOC
#include <stdlib.h>
#else
#include <jemalloc/jemalloc.h>
#endif
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h> #include <stdint.h>
#include <stdlib.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
struct llarp_alloc
{
void *impl;
void *(*alloc)(struct llarp_alloc *mem, size_t sz, size_t align);
void (*free)(struct llarp_alloc *mem, void *ptr);
};
void
llarp_mem_stdlib(struct llarp_alloc *mem);
void
llarp_mem_jemalloc(struct llarp_alloc *mem);
void
llarp_mem_dmalloc(struct llarp_alloc *mem);
void
llarp_mem_slab(struct llarp_alloc *mem, uint32_t *buf, size_t sz);
/** constant time memcmp */ /** constant time memcmp */
bool bool
llarp_eq(const void *a, const void *b, size_t sz); llarp_eq(const void *a, const void *b, size_t sz);

@ -10,7 +10,7 @@ struct llarp_nodedb;
/** create an empty nodedb */ /** create an empty nodedb */
struct llarp_nodedb * struct llarp_nodedb *
llarp_nodedb_new(struct llarp_alloc *mem, struct llarp_crypto *crypto); llarp_nodedb_new(struct llarp_crypto *crypto);
/** free a nodedb and all loaded rc */ /** free a nodedb and all loaded rc */
void void

@ -18,7 +18,7 @@ llarp_findOrCreateIdentity(struct llarp_crypto *crypto, const char *path,
byte_t *secretkey); byte_t *secretkey);
struct llarp_router * struct llarp_router *
llarp_init_router(struct llarp_alloc *mem, struct llarp_threadpool *worker, llarp_init_router(struct llarp_threadpool *worker,
struct llarp_ev_loop *netloop, struct llarp_logic *logic); struct llarp_ev_loop *netloop, struct llarp_logic *logic);
void void
llarp_free_router(struct llarp_router **router); llarp_free_router(struct llarp_router **router);

@ -25,4 +25,7 @@
#endif #endif
#define LLARP_VERSION "llarpd" LLARP_VERSION_NUM #define LLARP_VERSION "llarpd" LLARP_VERSION_NUM
#ifndef LLARP_RELEASE_MOTTO
#define LLARP_RELEASE_MOTTO "(dev build)"
#endif
#endif #endif

@ -7,6 +7,7 @@ namespace llarp
{ {
Context::Context(std::ostream &stdout) : out(stdout) Context::Context(std::ostream &stdout) : out(stdout)
{ {
llarp::Info(__FILE__, LLARP_VERSION, " ", LLARP_RELEASE_MOTTO);
} }
Context::~Context() Context::~Context()
@ -22,13 +23,14 @@ namespace llarp
bool bool
Context::ReloadConfig() Context::ReloadConfig()
{ {
llarp::Info(__FILE__, LLARP_VERSION, " loading config at ", configfile); llarp::Info(__FILE__, "loading config at ", configfile);
if(!llarp_load_config(config, configfile.c_str())) if(!llarp_load_config(config, configfile.c_str()))
{ {
llarp_config_iterator iter; llarp_config_iterator iter;
iter.user = this; iter.user = this;
iter.visit = &iter_config; iter.visit = &iter_config;
llarp_config_iter(config, &iter); llarp_config_iter(config, &iter);
llarp::Info(__FILE__, "config loaded");
return true; return true;
} }
llarp_free_config(&config); llarp_free_config(&config);
@ -70,10 +72,10 @@ namespace llarp
int int
Context::Run() Context::Run()
{ {
llarp_mem_stdlib(&mem); llarp::Info(__FILE__, "starting up");
llarp_ev_loop_alloc(&mainloop); llarp_ev_loop_alloc(&mainloop);
llarp_crypto_libsodium_init(&crypto); llarp_crypto_libsodium_init(&crypto);
nodedb = llarp_nodedb_new(&mem, &crypto); nodedb = llarp_nodedb_new(&crypto);
if(nodedb_dir[0]) if(nodedb_dir[0])
{ {
nodedb_dir[sizeof(nodedb_dir) - 1] = 0; nodedb_dir[sizeof(nodedb_dir) - 1] = 0;
@ -83,9 +85,9 @@ namespace llarp
if(!worker) if(!worker)
worker = llarp_init_threadpool(2, "llarp-worker"); worker = llarp_init_threadpool(2, "llarp-worker");
// ensure netio thread // ensure netio thread
logic = llarp_init_logic(&mem); logic = llarp_init_logic();
router = llarp_init_router(&mem, worker, mainloop, logic); router = llarp_init_router(worker, mainloop, logic);
if(llarp_configure_router(router, config)) if(llarp_configure_router(router, config))
{ {
@ -98,7 +100,7 @@ namespace llarp
pthread_setname_np(netio_threads.back().native_handle(), pthread_setname_np(netio_threads.back().native_handle(),
"llarp-netio"); "llarp-netio");
} }
llarp::Info(__FILE__, "running"); llarp::Info(__FILE__, "Ready");
llarp_logic_mainloop(logic); llarp_logic_mainloop(logic);
return 0; return 0;
} }

@ -96,7 +96,7 @@ struct llarp_epoll_loop : public llarp_ev_loop
{ {
if(ev->read(readbuf, sizeof(readbuf)) == -1) if(ev->read(readbuf, sizeof(readbuf)) == -1)
{ {
llarp::Info(__FILE__, "close ev"); llarp::Debug(__FILE__, "close ev");
close_ev(ev); close_ev(ev);
delete ev; delete ev;
} }
@ -146,7 +146,7 @@ struct llarp_epoll_loop : public llarp_ev_loop
} }
} }
llarp::Addr a(*addr); llarp::Addr a(*addr);
llarp::Info(__FILE__, "bind to ", a.to_string()); llarp::Debug(__FILE__, "bind to ", a.to_string());
if(bind(fd, addr, slen) == -1) if(bind(fd, addr, slen) == -1)
{ {
perror("bind()"); perror("bind()");

@ -3,29 +3,19 @@
#include <llarp/exit_info.h> #include <llarp/exit_info.h>
#include <llarp/mem.h> #include <llarp/mem.h>
#include <llarp/string.h> #include <llarp/string.h>
#include <list>
struct llarp_xi_list_node
{
struct llarp_xi data;
struct llarp_xi_list_node *next;
};
struct llarp_xi_list struct llarp_xi_list
{ {
struct llarp_alloc *mem; std::list< llarp_xi > list;
struct llarp_xi_list_node *root;
}; };
extern "C" {
struct llarp_xi_list * struct llarp_xi_list *
llarp_xi_list_new(struct llarp_alloc *mem) llarp_xi_list_new()
{ {
struct llarp_xi_list *l = mem->alloc(mem, sizeof(struct llarp_xi_list), 8); return new llarp_xi_list;
if(l)
{
l->mem = mem;
l->root = NULL;
}
return l;
} }
void void
@ -33,22 +23,15 @@ llarp_xi_list_free(struct llarp_xi_list *l)
{ {
if(l) if(l)
{ {
struct llarp_alloc *mem = l->mem; l->list.clear();
struct llarp_xi_list_node *current = l->root; delete l;
while(current)
{
struct llarp_xi_list_node *tmp = current->next;
mem->free(mem, current);
current = tmp;
}
mem->free(mem, l);
} }
} }
static bool static bool
llarp_xi_iter_bencode(struct llarp_xi_list_iter *iter, struct llarp_xi *xi) llarp_xi_iter_bencode(struct llarp_xi_list_iter *iter, struct llarp_xi *xi)
{ {
return llarp_xi_bencode(xi, iter->user); return llarp_xi_bencode(xi, static_cast< llarp_buffer_t * >(iter->user));
} }
bool bool
@ -56,8 +39,7 @@ llarp_xi_list_bencode(struct llarp_xi_list *l, llarp_buffer_t *buff)
{ {
if(!bencode_start_list(buff)) if(!bencode_start_list(buff))
return false; return false;
struct llarp_xi_list_iter xi_itr = {.user = buff, struct llarp_xi_list_iter xi_itr = {buff, nullptr, &llarp_xi_iter_bencode};
.visit = &llarp_xi_iter_bencode};
llarp_xi_list_iterate(l, &xi_itr); llarp_xi_list_iterate(l, &xi_itr);
return bencode_end(buff); return bencode_end(buff);
} }
@ -65,15 +47,10 @@ llarp_xi_list_bencode(struct llarp_xi_list *l, llarp_buffer_t *buff)
void void
llarp_xi_list_iterate(struct llarp_xi_list *l, struct llarp_xi_list_iter *iter) llarp_xi_list_iterate(struct llarp_xi_list *l, struct llarp_xi_list_iter *iter)
{ {
struct llarp_xi_list_node *current = l->root; iter->list = l;
iter->list = l; for(auto &item : l->list)
while(current) if(!iter->visit(iter, &item))
{
if(!iter->visit(iter, &current->data))
return; return;
current = current->next;
}
} }
bool bool
@ -121,7 +98,7 @@ llarp_xi_decode_dict(struct dict_reader *r, llarp_buffer_t *key)
if(!key) if(!key)
return true; return true;
struct llarp_xi *xi = r->user; llarp_xi *xi = static_cast< llarp_xi * >(r->user);
llarp_buffer_t strbuf; llarp_buffer_t strbuf;
uint64_t v; uint64_t v;
char tmp[128] = {0}; char tmp[128] = {0};
@ -170,31 +147,15 @@ llarp_xi_decode_dict(struct dict_reader *r, llarp_buffer_t *key)
bool bool
llarp_xi_bdecode(struct llarp_xi *xi, llarp_buffer_t *buf) llarp_xi_bdecode(struct llarp_xi *xi, llarp_buffer_t *buf)
{ {
struct dict_reader r = {.user = xi, .on_key = &llarp_xi_decode_dict}; struct dict_reader r = {buf, xi, &llarp_xi_decode_dict};
return bdecode_read_dict(buf, &r); return bdecode_read_dict(buf, &r);
} }
void void
llarp_xi_list_pushback(struct llarp_xi_list *l, struct llarp_xi *xi) llarp_xi_list_pushback(struct llarp_xi_list *l, struct llarp_xi *xi)
{ {
struct llarp_xi_list_node *cur = l->root; l->list.emplace_back();
if(cur) llarp_xi_copy(&l->list.back(), xi);
{
// go to the end of the list
while(cur->next)
cur = cur->next;
cur->next = l->mem->alloc(l->mem, sizeof(struct llarp_xi_list_node), 16);
cur = cur->next;
}
else
{
l->root = l->mem->alloc(l->mem, sizeof(struct llarp_xi_list_node), 16);
cur = l->root;
}
llarp_xi_copy(&cur->data, xi);
cur->next = 0;
} }
void void
@ -209,21 +170,15 @@ llarp_xi_list_decode_item(struct list_reader *r, bool more)
if(!more) if(!more)
return true; return true;
struct llarp_xi_list *l = r->user; llarp_xi_list *l = static_cast< llarp_xi_list * >(r->user);
struct llarp_xi xi; l->list.emplace_back();
if(!llarp_xi_bdecode(&xi, r->buffer)) return llarp_xi_bdecode(&l->list.back(), r->buffer);
return false;
llarp_xi_list_pushback(l, &xi);
return true;
} }
bool bool
llarp_xi_list_bdecode(struct llarp_xi_list *l, llarp_buffer_t *buff) llarp_xi_list_bdecode(struct llarp_xi_list *l, llarp_buffer_t *buff)
{ {
struct list_reader r = { list_reader r = {buff, l, &llarp_xi_list_decode_item};
.user = l,
.on_item = &llarp_xi_list_decode_item,
};
return bdecode_read_list(buff, &r); return bdecode_read_list(buff, &r);
} }
}

@ -1198,8 +1198,8 @@ namespace iwp
auto itr = m_sessions.find(addr); auto itr = m_sessions.find(addr);
if(itr != m_sessions.end()) if(itr != m_sessions.end())
{ {
llarp::Info(__FILE__, "session with ", addr.to_string(), llarp::Debug(__FILE__, "session with ", addr.to_string(),
" is stale, removing"); " is stale, removing");
session *s = static_cast< session * >(itr->second.impl); session *s = static_cast< session * >(itr->second.impl);
m_sessions.erase(addr); m_sessions.erase(addr);
if(s->keepalive_timer_id) if(s->keepalive_timer_id)
@ -1221,7 +1221,7 @@ namespace iwp
bool bool
ensure_privkey() ensure_privkey()
{ {
llarp::Info(__FILE__, "ensure transport private key at ", keyfile); llarp::Debug(__FILE__, "ensure transport private key at ", keyfile);
std::error_code ec; std::error_code ec;
if(!fs::exists(keyfile, ec)) if(!fs::exists(keyfile, ec))
{ {
@ -1456,7 +1456,7 @@ namespace iwp
link->netloop = netloop; link->netloop = netloop;
link->udp.recvfrom = &server::handle_recvfrom; link->udp.recvfrom = &server::handle_recvfrom;
link->udp.user = link; link->udp.user = link;
llarp::Info(__FILE__, "bind IWP link to ", link->addr.to_string()); llarp::Debug(__FILE__, "bind IWP link to ", link->addr.to_string());
return llarp_ev_add_udp(link->netloop, &link->udp, link->addr) != -1; return llarp_ev_add_udp(link->netloop, &link->udp, link->addr) != -1;
} }

@ -2,5 +2,11 @@
namespace llarp namespace llarp
{ {
LogLevel loglevel = eLogDebug; Logger _glog;
void
SetLogLevel(LogLevel lvl)
{
_glog.minlevel = lvl;
}
} }

@ -3,18 +3,18 @@
struct llarp_logic struct llarp_logic
{ {
struct llarp_alloc* mem;
struct llarp_threadpool* thread; struct llarp_threadpool* thread;
struct llarp_timer_context* timer; struct llarp_timer_context* timer;
}; };
extern "C" {
struct llarp_logic* struct llarp_logic*
llarp_init_logic(struct llarp_alloc* mem) llarp_init_logic()
{ {
struct llarp_logic* logic = mem->alloc(mem, sizeof(struct llarp_logic), 8); llarp_logic* logic = new llarp_logic;
if(logic) if(logic)
{ {
logic->mem = mem;
logic->thread = llarp_init_threadpool(1, "llarp-logic"); logic->thread = llarp_init_threadpool(1, "llarp-logic");
logic->timer = llarp_init_timer(); logic->timer = llarp_init_timer();
} }
@ -26,11 +26,10 @@ llarp_free_logic(struct llarp_logic** logic)
{ {
if(*logic) if(*logic)
{ {
struct llarp_alloc* mem = (*logic)->mem;
llarp_free_threadpool(&(*logic)->thread); llarp_free_threadpool(&(*logic)->thread);
llarp_free_timer(&(*logic)->timer); llarp_free_timer(&(*logic)->timer);
mem->free(mem, *logic); delete *logic;
*logic = NULL; *logic = nullptr;
} }
} }
@ -71,3 +70,4 @@ llarp_logic_remove_call(struct llarp_logic* logic, uint32_t id)
{ {
llarp_timer_remove_job(logic->timer, id); llarp_timer_remove_job(logic->timer, id);
} }
}

@ -6,27 +6,6 @@
namespace llarp namespace llarp
{ {
template < typename T >
static constexpr size_t
alignment()
{
size_t idx = 0;
size_t sz = sizeof(T);
while(sz)
{
++idx;
sz >>= 1;
}
return 1 << idx;
}
template < typename T >
static T *
Alloc(llarp_alloc *mem)
{
return static_cast< T * >(mem->alloc(mem, sizeof(T), alignment< T >()));
}
void void
Zero(void *ptr, size_t sz); Zero(void *ptr, size_t sz);

@ -106,7 +106,7 @@ struct llarp_nodedb
extern "C" { extern "C" {
struct llarp_nodedb * struct llarp_nodedb *
llarp_nodedb_new(struct llarp_alloc *mem, struct llarp_crypto *crypto) llarp_nodedb_new(struct llarp_crypto *crypto)
{ {
return new llarp_nodedb(crypto); return new llarp_nodedb(crypto);
} }

@ -20,8 +20,7 @@ namespace llarp
const char *key, const char *val); const char *key, const char *val);
} // namespace llarp } // namespace llarp
llarp_router::llarp_router(struct llarp_alloc *m) llarp_router::llarp_router() : ready(false), inbound_msg_handler(this)
: ready(false), mem(m), inbound_msg_handler(this)
{ {
llarp_rc_clear(&rc); llarp_rc_clear(&rc);
} }
@ -81,7 +80,7 @@ llarp_router::try_connect(fs::path rcfile)
{ {
if(llarp_rc_verify_sig(&crypto, &remote)) if(llarp_rc_verify_sig(&crypto, &remote))
{ {
llarp::Info(__FILE__, "verified signature"); llarp::Debug(__FILE__, "verified signature");
if(!llarp_router_try_connect(this, &remote)) if(!llarp_router_try_connect(this, &remote))
{ {
llarp::Warn(__FILE__, "session already made"); llarp::Warn(__FILE__, "session already made");
@ -118,7 +117,7 @@ llarp_router::Ready()
bool bool
llarp_router::SaveRC() llarp_router::SaveRC()
{ {
llarp::Info(__FILE__, "verify RC signature"); llarp::Debug(__FILE__, "verify RC signature");
if(!llarp_rc_verify_sig(&crypto, &rc)) if(!llarp_rc_verify_sig(&crypto, &rc))
{ {
llarp::Error(__FILE__, "RC has bad signature not saving"); llarp::Error(__FILE__, "RC has bad signature not saving");
@ -134,11 +133,11 @@ llarp_router::SaveRC()
if(f.is_open()) if(f.is_open())
{ {
f.write((char *)buf.base, buf.cur - buf.base); f.write((char *)buf.base, buf.cur - buf.base);
llarp::Info(__FILE__, "RC saved to ", our_rc_file); llarp::Info(__FILE__, "our RC saved to ", our_rc_file.c_str());
return true; return true;
} }
} }
llarp::Error(__FILE__, "did not save RC to ", our_rc_file); llarp::Error(__FILE__, "did not save RC to ", our_rc_file.c_str());
return false; return false;
} }
@ -219,7 +218,7 @@ llarp_router::Run()
const char *us = const char *us =
llarp::HexEncode< llarp::pubkey, decltype(tmp) >(ourPubkey, tmp); llarp::HexEncode< llarp::pubkey, decltype(tmp) >(ourPubkey, tmp);
llarp::Info(__FILE__, "we are ", us); llarp::Debug(__FILE__, "our router has public key ", us);
// start links // start links
for(auto link : links) for(auto link : links)
@ -228,7 +227,7 @@ llarp_router::Run()
if(result == -1) if(result == -1)
llarp::Warn(__FILE__, "Link ", link->name(), " failed to start"); llarp::Warn(__FILE__, "Link ", link->name(), " failed to start");
else else
llarp::Info(__FILE__, "Link ", link->name(), " started"); llarp::Debug(__FILE__, "Link ", link->name(), " started");
} }
for(const auto &itr : connect) for(const auto &itr : connect)
@ -262,10 +261,10 @@ llarp_router::iter_try_connect(llarp_router_link_iter *iter,
extern "C" { extern "C" {
struct llarp_router * struct llarp_router *
llarp_init_router(struct llarp_alloc *mem, struct llarp_threadpool *tp, llarp_init_router(struct llarp_threadpool *tp, struct llarp_ev_loop *netloop,
struct llarp_ev_loop *netloop, struct llarp_logic *logic) struct llarp_logic *logic)
{ {
llarp_router *router = new llarp_router(mem); llarp_router *router = new llarp_router();
if(router) if(router)
{ {
router->netloop = netloop; router->netloop = netloop;

@ -47,7 +47,6 @@ struct llarp_router
llarp_logic *logic; llarp_logic *logic;
llarp_crypto crypto; llarp_crypto crypto;
llarp_path_context *paths; llarp_path_context *paths;
llarp_alloc *mem;
llarp_seckey_t identity; llarp_seckey_t identity;
llarp::InboundMessageHandler inbound_msg_handler; llarp::InboundMessageHandler inbound_msg_handler;
@ -56,7 +55,7 @@ struct llarp_router
std::map< llarp::pubkey, std::vector< llarp::Message > > pendingMessages; std::map< llarp::pubkey, std::vector< llarp::Message > > pendingMessages;
llarp_router(llarp_alloc *mem); llarp_router();
~llarp_router(); ~llarp_router();
bool bool

@ -0,0 +1 @@
demo or die
Loading…
Cancel
Save