You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lokinet/llarp/muxer.cpp

47 lines
1.2 KiB
C++

#include <llarp/msg_handler.h>
#include "link_handlers.hpp"
#include "router.hpp"
namespace llarp {
struct llarp_frame_handler introduce_handler = {
.paths = nullptr,
.parent = nullptr,
.process = &llarp::frame::process_intro};
struct llarp_frame_handler lrdm_handler = {
.paths = nullptr,
.parent = nullptr,
.process = &llarp::frame::process_relay_down};
struct llarp_frame_handler lrum_handler = {
.paths = nullptr,
.parent = nullptr,
.process = &llarp::frame::process_relay_up};
static struct llarp_frame_handler* find_frame_handler(struct llarp_router* r,
const char ch) {
struct llarp_frame_handler* handler = nullptr;
switch (ch) {
case 'i':
handler = &introduce_handler;
}
if (handler) {
handler->paths = r->paths;
handler->parent = &r->muxer;
}
return handler;
}
static struct llarp_msg_handler* find_msg_handler(struct llarp_router* r,
const char ch) {
return nullptr;
}
} // namespace llarp
extern "C" {
void llarp_msg_muxer_init(struct llarp_msg_muxer* muxer) {
muxer->link_handler_for = &llarp::find_frame_handler;
muxer->routing_handler_for = &llarp::find_msg_handler;
}
}