libwebsockets
Lightweight C library for HTML5 websockets
Loading...
Searching...
No Matches
lws-dht.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
+ Include dependency graph for lws-dht.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  lws_dht_hash
 
struct  lws_dht_info
 

Macros

#define DHT_MAX_PEERS   2048
 
#define DHT_MAX_HASHES   16384
 
#define DHT_MAX_SEARCHES   1024
 
#define DHT_SEARCH_EXPIRE_TIME   (62 * 60)
 

Typedefs

typedef struct lws_dht_hash lws_dht_hash_t
 
typedef void lws_dht_callback_t(void *closure, int event, const lws_dht_hash_t *info_hash, const void *data, size_t data_len)
 
typedef int lws_dht_blacklist_cb_t(const struct sockaddr *sa, size_t salen)
 
typedef 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)
 
typedef void lws_dht_capture_announce_cb_t(struct lws_dht_ctx *ctx, lws_dht_hash_t *hash, const struct sockaddr *fromaddr, unsigned short prt)
 
typedef struct lws_dht_info lws_dht_info_t
 

Enumerations

enum  {
  LWS_DHT_HASH_TYPE_UNKNOWN = 0 , LWS_DHT_HASH_TYPE_SHA1 = 0x11 , LWS_DHT_HASH_TYPE_SHA256 = 0x12 , LWS_DHT_HASH_TYPE_SHA512 = 0x13 ,
  LWS_DHT_HASH_TYPE_BLAKE3 = 0x1e
}
 
enum  lws_dht_event_t {
  LWS_DHT_EVENT_NONE , LWS_DHT_EVENT_VALUES , LWS_DHT_EVENT_VALUES6 , LWS_DHT_EVENT_SEARCH_DONE ,
  LWS_DHT_EVENT_SEARCH_DONE6 , LWS_DHT_EVENT_EXTERNAL_ADDR , LWS_DHT_EVENT_EXTERNAL_ADDR6
}
 

Functions

LWS_VISIBLE LWS_EXTERN lws_dht_hash_tlws_dht_hash_create (int type, int len, const uint8_t *data)
 
LWS_VISIBLE LWS_EXTERN void lws_dht_hash_destroy (lws_dht_hash_t **p)
 
LWS_VISIBLE LWS_EXTERN struct lws_dht_ctx * lws_dht_create (const lws_dht_info_t *info)
 
LWS_VISIBLE LWS_EXTERN void lws_dht_destroy (struct lws_dht_ctx **pctx)
 
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)
 
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_search (struct lws_dht_ctx *ctx, const lws_dht_hash_t *id, int port, int af, lws_dht_callback_t *callback, void *closure)
 
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)
 
LWS_VISIBLE LWS_EXTERN void lws_dht_dump_tables (struct lws_dht_ctx *ctx)
 
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 int lws_dht_get_external_addr (struct lws_dht_ctx *ctx, struct sockaddr_storage *ss, size_t *sslen)
 

Variables

const struct lws_protocols lws_dht_protocol