BLACKLISTED = 1,
} request_error_t;
-typedef struct past_request_t {
- const char *request;
- time_t firstseen;
-} past_request_t;
+/* Protocol support flags */
+
+static const uint32_t PROTOCOL_TINY = 1; // Peer is using meshlink-tiny
/* Maximum size of strings in a request.
* scanf terminates %2048s with a NUL character,
#define MAX_STRING_SIZE 2049
#define MAX_STRING "%2048s"
-#include "edge.h"
#include "net.h"
#include "node.h"
/* Basic functions */
-bool send_request(struct meshlink_handle *mesh, struct connection_t *, const struct submesh_t *s, const char *, ...) __attribute__((__format__(printf, 4, 5)));
-void forward_request(struct meshlink_handle *mesh, struct connection_t *, const struct submesh_t *, const char *);
+bool send_request(struct meshlink_handle *mesh, struct connection_t *, const char *, ...) __attribute__((__format__(printf, 3, 4)));
bool receive_request(struct meshlink_handle *mesh, struct connection_t *, const char *);
bool check_id(const char *);
-void init_requests(struct meshlink_handle *mesh);
-void exit_requests(struct meshlink_handle *mesh);
-bool seen_request(struct meshlink_handle *mesh, const char *);
-
/* Requests */
bool send_id(struct meshlink_handle *mesh, struct connection_t *);
bool send_error(struct meshlink_handle *mesh, struct connection_t *, request_error_t, const char *);
bool send_ping(struct meshlink_handle *mesh, struct connection_t *);
bool send_pong(struct meshlink_handle *mesh, struct connection_t *);
-bool send_add_edge(struct meshlink_handle *mesh, struct connection_t *, const struct edge_t *, int contradictions);
-bool send_del_edge(struct meshlink_handle *mesh, struct connection_t *, const struct edge_t *, int contradictions);
-bool send_req_key(struct meshlink_handle *mesh, struct node_t *);
+bool send_add_edge(struct meshlink_handle *mesh, struct connection_t *, int);
bool send_canonical_address(struct meshlink_handle *mesh, struct node_t *);
+bool send_raw_packet(struct meshlink_handle *mesh, struct connection_t *, const vpn_packet_t *);
/* Request handlers */
bool key_changed_h(struct meshlink_handle *mesh, struct connection_t *, const char *);
bool req_key_h(struct meshlink_handle *mesh, struct connection_t *, const char *);
bool ans_key_h(struct meshlink_handle *mesh, struct connection_t *, const char *);
-bool tcppacket_h(struct meshlink_handle *mesh, struct connection_t *, const char *);
+bool raw_packet_h(struct meshlink_handle *mesh, struct connection_t *, const char *);
#endif