---
title: llarp::routing::IMessageHandler

---

# llarp::routing::IMessageHandler





Inherited by [llarp::path::Path](Classes/structllarp_1_1path_1_1Path.md), [llarp::path::TransitHop](Classes/structllarp_1_1path_1_1TransitHop.md)

## Public Functions

|                | Name           |
| -------------- | -------------- |
| virtual bool | **[HandleObtainExitMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handleobtainexitmessage)**(const [ObtainExitMessage](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandleGrantExitMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handlegrantexitmessage)**(const [GrantExitMessage](Classes/structllarp_1_1routing_1_1GrantExitMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandleRejectExitMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handlerejectexitmessage)**(const [RejectExitMessage](Classes/structllarp_1_1routing_1_1RejectExitMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandleTransferTrafficMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handletransfertrafficmessage)**(const [TransferTrafficMessage](Classes/structllarp_1_1routing_1_1TransferTrafficMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandleUpdateExitMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handleupdateexitmessage)**(const [UpdateExitMessage](Classes/structllarp_1_1routing_1_1UpdateExitMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandleUpdateExitVerifyMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handleupdateexitverifymessage)**(const [UpdateExitVerifyMessage](Classes/structllarp_1_1routing_1_1UpdateExitVerifyMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandleCloseExitMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handlecloseexitmessage)**(const [CloseExitMessage](Classes/structllarp_1_1routing_1_1CloseExitMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandleDataDiscardMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handledatadiscardmessage)**(const [DataDiscardMessage](Classes/structllarp_1_1routing_1_1DataDiscardMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandlePathTransferMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handlepathtransfermessage)**(const [PathTransferMessage](Classes/structllarp_1_1routing_1_1PathTransferMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandleHiddenServiceFrame](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handlehiddenserviceframe)**(const [service::ProtocolFrame](Classes/structllarp_1_1service_1_1ProtocolFrame.md) & msg) =0 |
| virtual bool | **[HandlePathConfirmMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handlepathconfirmmessage)**(const [PathConfirmMessage](Classes/structllarp_1_1routing_1_1PathConfirmMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandlePathLatencyMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handlepathlatencymessage)**(const [PathLatencyMessage](Classes/structllarp_1_1routing_1_1PathLatencyMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |
| virtual bool | **[HandleDHTMessage](Classes/structllarp_1_1routing_1_1IMessageHandler.md#function-handledhtmessage)**(const [dht::IMessage](Classes/structllarp_1_1dht_1_1IMessage.md) & msg, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) =0 |

## Public Functions Documentation

### function HandleObtainExitMessage

```cpp
virtual bool HandleObtainExitMessage(
    const ObtainExitMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandleObtainExitMessage](Classes/structllarp_1_1path_1_1Path.md#function-handleobtainexitmessage), [llarp::path::TransitHop::HandleObtainExitMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handleobtainexitmessage)


### function HandleGrantExitMessage

```cpp
virtual bool HandleGrantExitMessage(
    const GrantExitMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandleGrantExitMessage](Classes/structllarp_1_1path_1_1Path.md#function-handlegrantexitmessage), [llarp::path::TransitHop::HandleGrantExitMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handlegrantexitmessage)


### function HandleRejectExitMessage

```cpp
virtual bool HandleRejectExitMessage(
    const RejectExitMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandleRejectExitMessage](Classes/structllarp_1_1path_1_1Path.md#function-handlerejectexitmessage), [llarp::path::TransitHop::HandleRejectExitMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handlerejectexitmessage)


### function HandleTransferTrafficMessage

```cpp
virtual bool HandleTransferTrafficMessage(
    const TransferTrafficMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandleTransferTrafficMessage](Classes/structllarp_1_1path_1_1Path.md#function-handletransfertrafficmessage), [llarp::path::TransitHop::HandleTransferTrafficMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handletransfertrafficmessage)


### function HandleUpdateExitMessage

```cpp
virtual bool HandleUpdateExitMessage(
    const UpdateExitMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandleUpdateExitMessage](Classes/structllarp_1_1path_1_1Path.md#function-handleupdateexitmessage), [llarp::path::TransitHop::HandleUpdateExitMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handleupdateexitmessage)


### function HandleUpdateExitVerifyMessage

```cpp
virtual bool HandleUpdateExitVerifyMessage(
    const UpdateExitVerifyMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandleUpdateExitVerifyMessage](Classes/structllarp_1_1path_1_1Path.md#function-handleupdateexitverifymessage), [llarp::path::TransitHop::HandleUpdateExitVerifyMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handleupdateexitverifymessage)


### function HandleCloseExitMessage

```cpp
virtual bool HandleCloseExitMessage(
    const CloseExitMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandleCloseExitMessage](Classes/structllarp_1_1path_1_1Path.md#function-handlecloseexitmessage), [llarp::path::TransitHop::HandleCloseExitMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handlecloseexitmessage)


### function HandleDataDiscardMessage

```cpp
virtual bool HandleDataDiscardMessage(
    const DataDiscardMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandleDataDiscardMessage](Classes/structllarp_1_1path_1_1Path.md#function-handledatadiscardmessage), [llarp::path::TransitHop::HandleDataDiscardMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handledatadiscardmessage)


### function HandlePathTransferMessage

```cpp
virtual bool HandlePathTransferMessage(
    const PathTransferMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandlePathTransferMessage](Classes/structllarp_1_1path_1_1Path.md#function-handlepathtransfermessage), [llarp::path::TransitHop::HandlePathTransferMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handlepathtransfermessage)


### function HandleHiddenServiceFrame

```cpp
virtual bool HandleHiddenServiceFrame(
    const service::ProtocolFrame & msg
) =0
```


**Reimplemented by**: [llarp::path::TransitHop::HandleHiddenServiceFrame](Classes/structllarp_1_1path_1_1TransitHop.md#function-handlehiddenserviceframe), [llarp::path::Path::HandleHiddenServiceFrame](Classes/structllarp_1_1path_1_1Path.md#function-handlehiddenserviceframe)


### function HandlePathConfirmMessage

```cpp
virtual bool HandlePathConfirmMessage(
    const PathConfirmMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandlePathConfirmMessage](Classes/structllarp_1_1path_1_1Path.md#function-handlepathconfirmmessage), [llarp::path::TransitHop::HandlePathConfirmMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handlepathconfirmmessage)


### function HandlePathLatencyMessage

```cpp
virtual bool HandlePathLatencyMessage(
    const PathLatencyMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandlePathLatencyMessage](Classes/structllarp_1_1path_1_1Path.md#function-handlepathlatencymessage), [llarp::path::TransitHop::HandlePathLatencyMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handlepathlatencymessage)


### function HandleDHTMessage

```cpp
virtual bool HandleDHTMessage(
    const dht::IMessage & msg,
    AbstractRouter * r
) =0
```


**Reimplemented by**: [llarp::path::Path::HandleDHTMessage](Classes/structllarp_1_1path_1_1Path.md#function-handledhtmessage), [llarp::path::TransitHop::HandleDHTMessage](Classes/structllarp_1_1path_1_1TransitHop.md#function-handledhtmessage)


-------------------------------

Updated on 2023-06-06 at 21:47:58 +0000