2018-06-22 13:59:28 +00:00
|
|
|
#ifndef LLARP_ROUTING_HANDLER_HPP
|
|
|
|
#define LLARP_ROUTING_HANDLER_HPP
|
|
|
|
|
2018-12-12 02:52:51 +00:00
|
|
|
#include <buffer.h>
|
2018-12-12 00:48:54 +00:00
|
|
|
#include <dht.hpp>
|
2018-12-12 02:52:51 +00:00
|
|
|
#include <messages/exit.hpp>
|
|
|
|
#include <messages/path_confirm.hpp>
|
|
|
|
#include <messages/path_latency.hpp>
|
|
|
|
#include <messages/path_transfer.hpp>
|
|
|
|
#include <messages/transfer_traffic.hpp>
|
2018-06-23 00:00:44 +00:00
|
|
|
|
2018-06-22 13:59:28 +00:00
|
|
|
namespace llarp
|
|
|
|
{
|
|
|
|
namespace routing
|
|
|
|
{
|
2018-09-11 15:28:36 +00:00
|
|
|
struct DataDiscardMessage;
|
|
|
|
|
2018-06-26 16:23:43 +00:00
|
|
|
// handles messages on the routing level
|
2018-06-22 13:59:28 +00:00
|
|
|
struct IMessageHandler
|
|
|
|
{
|
2018-12-27 14:32:37 +00:00
|
|
|
|
|
|
|
|
2018-11-12 16:43:40 +00:00
|
|
|
virtual bool
|
|
|
|
HandleObtainExitMessage(const ObtainExitMessage *msg,
|
2018-12-10 16:26:46 +00:00
|
|
|
llarp::Router *r) = 0;
|
2018-11-12 16:43:40 +00:00
|
|
|
|
|
|
|
virtual bool
|
2018-12-10 16:26:46 +00:00
|
|
|
HandleGrantExitMessage(const GrantExitMessage *msg, llarp::Router *r) = 0;
|
2018-11-12 16:43:40 +00:00
|
|
|
|
|
|
|
virtual bool
|
|
|
|
HandleRejectExitMessage(const RejectExitMessage *msg,
|
2018-12-10 16:26:46 +00:00
|
|
|
llarp::Router *r) = 0;
|
2018-11-12 16:43:40 +00:00
|
|
|
|
|
|
|
virtual bool
|
|
|
|
HandleTransferTrafficMessage(const TransferTrafficMessage *msg,
|
2018-12-10 16:26:46 +00:00
|
|
|
llarp::Router *r) = 0;
|
2018-11-12 16:43:40 +00:00
|
|
|
|
|
|
|
virtual bool
|
|
|
|
HandleUpdateExitMessage(const UpdateExitMessage *msg,
|
2018-12-10 16:26:46 +00:00
|
|
|
llarp::Router *r) = 0;
|
2018-11-12 16:43:40 +00:00
|
|
|
|
2018-11-14 12:23:08 +00:00
|
|
|
virtual bool
|
|
|
|
HandleUpdateExitVerifyMessage(const UpdateExitVerifyMessage *msg,
|
2018-12-10 16:26:46 +00:00
|
|
|
llarp::Router *r) = 0;
|
2018-11-14 12:23:08 +00:00
|
|
|
|
2018-11-12 16:43:40 +00:00
|
|
|
virtual bool
|
2018-12-10 16:26:46 +00:00
|
|
|
HandleCloseExitMessage(const CloseExitMessage *msg, llarp::Router *r) = 0;
|
2018-11-12 16:43:40 +00:00
|
|
|
|
2018-09-11 15:28:36 +00:00
|
|
|
virtual bool
|
|
|
|
HandleDataDiscardMessage(const DataDiscardMessage *msg,
|
2018-12-10 16:26:46 +00:00
|
|
|
llarp::Router *r) = 0;
|
2018-09-11 15:28:36 +00:00
|
|
|
|
2018-06-23 00:00:44 +00:00
|
|
|
virtual bool
|
2018-07-09 03:34:29 +00:00
|
|
|
HandlePathTransferMessage(const PathTransferMessage *msg,
|
2018-12-10 16:26:46 +00:00
|
|
|
llarp::Router *r) = 0;
|
2018-06-25 15:12:08 +00:00
|
|
|
|
|
|
|
virtual bool
|
2018-08-02 00:48:43 +00:00
|
|
|
HandleHiddenServiceFrame(const service::ProtocolFrame *msg) = 0;
|
2018-06-25 15:12:08 +00:00
|
|
|
|
|
|
|
virtual bool
|
2018-07-09 03:34:29 +00:00
|
|
|
HandlePathConfirmMessage(const PathConfirmMessage *msg,
|
2018-12-10 16:26:46 +00:00
|
|
|
llarp::Router *r) = 0;
|
2018-06-25 15:12:08 +00:00
|
|
|
|
|
|
|
virtual bool
|
2018-07-09 03:34:29 +00:00
|
|
|
HandlePathLatencyMessage(const PathLatencyMessage *msg,
|
2018-12-10 16:26:46 +00:00
|
|
|
llarp::Router *r) = 0;
|
2018-06-26 16:23:43 +00:00
|
|
|
virtual bool
|
2018-12-10 16:26:46 +00:00
|
|
|
HandleDHTMessage(const llarp::dht::IMessage *msg, llarp::Router *r) = 0;
|
2018-06-22 13:59:28 +00:00
|
|
|
};
|
|
|
|
} // namespace routing
|
|
|
|
} // namespace llarp
|
|
|
|
|
2018-09-11 15:28:36 +00:00
|
|
|
#endif
|