mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 21:53:48 +01:00
51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
|
|
||
|
#ifndef TOR_PROTOVER_H
|
||
|
#define TOR_PROTOVER_H
|
||
|
|
||
|
#include "container.h"
|
||
|
|
||
|
typedef enum protocol_type_t {
|
||
|
PRT_LINK,
|
||
|
PRT_LINKAUTH,
|
||
|
PRT_RELAY,
|
||
|
PRT_HSMID,
|
||
|
PRT_DIRCACHE,
|
||
|
PRT_HSDIR,
|
||
|
PRT_DESC,
|
||
|
PRT_MICRODESC,
|
||
|
PRT_CONS,
|
||
|
} protocol_type_t;
|
||
|
|
||
|
/*
|
||
|
const protover_set_t *protover_get_supported(void);
|
||
|
protover_set_t *protover_set_parse(const char *s);
|
||
|
int protover_is_supported_here_str(const char *name, uint32_t ver);
|
||
|
int protover_is_supported_by(protocol_type_t pr, uint32_t ver);
|
||
|
*/
|
||
|
|
||
|
int protover_all_supported(const char *s, char **missing);
|
||
|
int protover_is_supported_here(protocol_type_t pr, uint32_t ver);
|
||
|
const char *get_supported_protocols(void);
|
||
|
|
||
|
void protover_free_all(void);
|
||
|
|
||
|
#ifdef PROTOVER_PRIVATE
|
||
|
typedef struct proto_range_t {
|
||
|
uint32_t low;
|
||
|
uint32_t high;
|
||
|
} proto_range_t;
|
||
|
|
||
|
typedef struct proto_entry_t {
|
||
|
char *name;
|
||
|
smartlist_t *ranges;
|
||
|
} proto_entry_t;
|
||
|
|
||
|
STATIC smartlist_t *parse_protocol_list(const char *s);
|
||
|
STATIC void proto_entry_free(proto_entry_t *entry);
|
||
|
STATIC char *encode_protocol_list(const smartlist_t *sl);
|
||
|
STATIC const char *protocol_type_to_str(protocol_type_t pr);
|
||
|
STATIC int str_to_protocol_type(const char *s, protocol_type_t *pr_out);
|
||
|
#endif
|
||
|
|
||
|
#endif
|