25#if !defined(__LWS_DHT_H__)
126 const void *v1,
int len1,
127 const void *v2,
int len2,
128 const void *v3,
int len3);
144#define DHT_MAX_PEERS 2048
147#define DHT_MAX_HASHES 16384
150#define DHT_MAX_SEARCHES 1024
153#define DHT_SEARCH_EXPIRE_TIME (62 * 60)
285lws_dht_nodes(
struct lws_dht_ctx *ctx,
int af,
int *good_return,
int *dubious_return,
286 int *cached_return,
int *incoming_return);
lws_dht_hash_cb_t * hash_cb
const lws_dht_hash_t * id
lws_dht_blacklist_cb_t * blacklist_cb
lws_dht_capture_announce_cb_t * capture_announce_cb
LWS_VISIBLE LWS_EXTERN void lws_dht_hash_destroy(lws_dht_hash_t **p)
int lws_dht_blacklist_cb_t(const struct sockaddr *sa, size_t salen)
LWS_VISIBLE LWS_EXTERN int lws_dht_nodes(struct lws_dht_ctx *ctx, int af, int *good_return, int *dubious_return, int *cached_return, int *incoming_return)
const struct lws_protocols lws_dht_protocol
struct lws_dht_info lws_dht_info_t
LWS_VISIBLE LWS_EXTERN void lws_dht_destroy(struct lws_dht_ctx **pctx)
LWS_VISIBLE LWS_EXTERN lws_dht_hash_t * lws_dht_hash_create(int type, int len, const uint8_t *data)
LWS_VISIBLE LWS_EXTERN int lws_dht_ping_node(struct lws_dht_ctx *ctx, struct sockaddr *sa, size_t salen)
LWS_VISIBLE LWS_EXTERN int lws_dht_insert_node(struct lws_dht_ctx *ctx, const lws_dht_hash_t *id, struct sockaddr *sa, size_t salen)
void lws_dht_capture_announce_cb_t(struct lws_dht_ctx *ctx, lws_dht_hash_t *hash, const struct sockaddr *fromaddr, unsigned short prt)
LWS_VISIBLE LWS_EXTERN struct lws_dht_ctx * lws_dht_create(const lws_dht_info_t *info)
void lws_dht_hash_cb_t(void *hash_return, int hash_size, const void *v1, int len1, const void *v2, int len2, const void *v3, int len3)
LWS_VISIBLE LWS_EXTERN int lws_dht_search(struct lws_dht_ctx *ctx, const lws_dht_hash_t *id, int port, int af, lws_dht_callback_t *callback, void *closure)
struct lws_dht_hash lws_dht_hash_t
LWS_VISIBLE LWS_EXTERN int lws_dht_get_nodes(struct lws_dht_ctx *ctx, struct sockaddr_in *sin, int *num, struct sockaddr_in6 *sin6, int *num6)
LWS_VISIBLE LWS_EXTERN void lws_dht_dump_tables(struct lws_dht_ctx *ctx)
LWS_VISIBLE LWS_EXTERN int lws_dht_get_external_addr(struct lws_dht_ctx *ctx, struct sockaddr_storage *ss, size_t *sslen)
void lws_dht_callback_t(void *closure, int event, const lws_dht_hash_t *info_hash, const void *data, size_t data_len)
@ LWS_DHT_EVENT_SEARCH_DONE
@ LWS_DHT_EVENT_EXTERNAL_ADDR6
@ LWS_DHT_EVENT_EXTERNAL_ADDR
@ LWS_DHT_EVENT_SEARCH_DONE6
@ LWS_DHT_HASH_TYPE_SHA512
@ LWS_DHT_HASH_TYPE_SHA256
@ LWS_DHT_HASH_TYPE_BLAKE3
@ LWS_DHT_HASH_TYPE_UNKNOWN