---
title: llarp::dht::GotIntroMessage
summary: acknowledgement to PublishIntroMessage or reply to FindIntroMessage

---

# llarp::dht::GotIntroMessage



acknowledgement to [PublishIntroMessage]() or reply to [FindIntroMessage](Classes/structllarp_1_1dht_1_1FindIntroMessage.md)


`#include <gotintro.hpp>`

Inherits from [llarp::dht::IMessage](Classes/structllarp_1_1dht_1_1IMessage.md)

Inherited by [llarp::dht::RelayedGotIntroMessage](Classes/structllarp_1_1dht_1_1RelayedGotIntroMessage.md)

## Public Functions

|                | Name           |
| -------------- | -------------- |
| | **[GotIntroMessage](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#function-gotintromessage)**(const [Key_t](Classes/structllarp_1_1dht_1_1Key__t.md) & from) |
| | **[GotIntroMessage](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#function-gotintromessage)**(const [GotIntroMessage](Classes/structllarp_1_1dht_1_1GotIntroMessage.md) & other) |
| | **[GotIntroMessage](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#function-gotintromessage)**(const [Key_t](Classes/structllarp_1_1dht_1_1Key__t.md) & from, const [Key_t](Classes/structllarp_1_1dht_1_1Key__t.md) & _closer, uint64_t _txid)<br>for iterative reply  |
| | **[GotIntroMessage](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#function-gotintromessage)**(std::vector< [service::EncryptedIntroSet](Classes/structllarp_1_1service_1_1EncryptedIntroSet.md) > results, uint64_t txid)<br>for recursive reply  |
| | **[~GotIntroMessage](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#function-~gotintromessage)**() override =default |
| virtual bool | **[BEncode](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#function-bencode)**([llarp_buffer_t](Classes/structllarp__buffer__t.md) * buf) const override |
| virtual bool | **[DecodeKey](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#function-decodekey)**(const [llarp_buffer_t](Classes/structllarp__buffer__t.md) & key, [llarp_buffer_t](Classes/structllarp__buffer__t.md) * val) override |
| virtual bool | **[HandleMessage](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#function-handlemessage)**([llarp_dht_context](Classes/structllarp__dht__context.md) * ctx, std::vector< IMessage::Ptr_t > & replies) const override |

## Public Attributes

|                | Name           |
| -------------- | -------------- |
| std::vector< [service::EncryptedIntroSet](Classes/structllarp_1_1service_1_1EncryptedIntroSet.md) > | **[found](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#variable-found)** <br>the found introsets  |
| uint64_t | **[txid](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#variable-txid)** <br>txid  |
| std::optional< [Key_t](Classes/structllarp_1_1dht_1_1Key__t.md) > | **[closer](Classes/structllarp_1_1dht_1_1GotIntroMessage.md#variable-closer)** <br>the key of a router closer in keyspace if iterative lookup  |

## Additional inherited members

**Public Types inherited from [llarp::dht::IMessage](Classes/structllarp_1_1dht_1_1IMessage.md)**

|                | Name           |
| -------------- | -------------- |
| using std::unique_ptr< [IMessage](Classes/structllarp_1_1dht_1_1IMessage.md) > | **[Ptr_t](Classes/structllarp_1_1dht_1_1IMessage.md#using-ptr-t)**  |

**Public Functions inherited from [llarp::dht::IMessage](Classes/structllarp_1_1dht_1_1IMessage.md)**

|                | Name           |
| -------------- | -------------- |
| virtual | **[~IMessage](Classes/structllarp_1_1dht_1_1IMessage.md#function-~imessage)**() =default |
| | **[IMessage](Classes/structllarp_1_1dht_1_1IMessage.md#function-imessage)**(const [Key_t](Classes/structllarp_1_1dht_1_1Key__t.md) & from)<br>construct  |

**Public Attributes inherited from [llarp::dht::IMessage](Classes/structllarp_1_1dht_1_1IMessage.md)**

|                | Name           |
| -------------- | -------------- |
| [Key_t](Classes/structllarp_1_1dht_1_1Key__t.md) | **[From](Classes/structllarp_1_1dht_1_1IMessage.md#variable-from)**  |
| [PathID_t](Classes/structllarp_1_1PathID__t.md) | **[pathID](Classes/structllarp_1_1dht_1_1IMessage.md#variable-pathid)**  |
| uint64_t | **[version](Classes/structllarp_1_1dht_1_1IMessage.md#variable-version)**  |


## Public Functions Documentation

### function GotIntroMessage

```cpp
inline GotIntroMessage(
    const Key_t & from
)
```


### function GotIntroMessage

```cpp
inline GotIntroMessage(
    const GotIntroMessage & other
)
```


### function GotIntroMessage

```cpp
inline GotIntroMessage(
    const Key_t & from,
    const Key_t & _closer,
    uint64_t _txid
)
```

for iterative reply 

### function GotIntroMessage

```cpp
GotIntroMessage(
    std::vector< service::EncryptedIntroSet > results,
    uint64_t txid
)
```

for recursive reply 

### function ~GotIntroMessage

```cpp
~GotIntroMessage() override =default
```


### function BEncode

```cpp
virtual bool BEncode(
    llarp_buffer_t * buf
) const override
```


**Reimplements**: [llarp::dht::IMessage::BEncode](Classes/structllarp_1_1dht_1_1IMessage.md#function-bencode)


### function DecodeKey

```cpp
virtual bool DecodeKey(
    const llarp_buffer_t & key,
    llarp_buffer_t * val
) override
```


**Reimplements**: [llarp::dht::IMessage::DecodeKey](Classes/structllarp_1_1dht_1_1IMessage.md#function-decodekey)


### function HandleMessage

```cpp
virtual bool HandleMessage(
    llarp_dht_context * ctx,
    std::vector< IMessage::Ptr_t > & replies
) const override
```


**Reimplements**: [llarp::dht::IMessage::HandleMessage](Classes/structllarp_1_1dht_1_1IMessage.md#function-handlemessage)


**Reimplemented by**: [llarp::dht::RelayedGotIntroMessage::HandleMessage](Classes/structllarp_1_1dht_1_1RelayedGotIntroMessage.md#function-handlemessage)


## Public Attributes Documentation

### variable found

```cpp
std::vector< service::EncryptedIntroSet > found;
```

the found introsets 

### variable txid

```cpp
uint64_t txid = 0;
```

txid 

### variable closer

```cpp
std::optional< Key_t > closer;
```

the key of a router closer in keyspace if iterative lookup 

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

Updated on 2023-01-27 at 23:09:26 +0000