summaryrefslogtreecommitdiff
path: root/src/external.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/external.h')
-rw-r--r--src/external.h71
1 files changed, 3 insertions, 68 deletions
diff --git a/src/external.h b/src/external.h
index 13f65dd..aa6efc3 100644
--- a/src/external.h
+++ b/src/external.h
@@ -1,8 +1,8 @@
#pragma once
//
+#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
-#include <stdbool.h>
//
typedef uint8_t byte;
@@ -18,72 +18,7 @@ typedef byte recipient[ 64 ];
const uint16_t default_port = 8040;
-enum client_input {
- // ask server for its information (responds with audit_response)
- audit_server = 0x10,
-
- // ask server for a random set of neighbors
- // (input uint8_t neighbor_count, responds with neighbors_info)
- get_neighbors = 0x11,
-
- // monitor incoming packets
- // (input struct firehose_request, responds with firehose_reply)
- firehose = 0x12,
-
- // give a packet to the relay
- // (input struct data_packet, responds with push_packet_result)
- push_packet = 0x13,
-
- // get a packet from the server
- // (input hash, responds with get_packet_result)
- get_packet = 0x14,
-
- // register a new neighbor relay to this server
- // (input struct relay_neighbor, responds with register_neighbor_result)
- register_neighbor = 0x15,
-
- // query packets for a specific author
- // note: to prevent DoS, you must provide a signature by the requested author to be approved.
- // the signature needs to be from a struct shaped `public_key + pub_sign_key + u16 count + u64
- // offset`.
- // server must verify the signing key is of the author's pubkey and signing key by looking at
- // the packet's metadata.
- // (input public_key, input pub_sign_key, signature, u16 count, u64 offset)
- // (responds with queried_author_packets)
- query_packets = 0x16,
-
- // query packets for a specific recipient
- // note: to prevent DoS, you must provide a signature by the requested author to be approved.
- // the signature needs to be from a struct shaped `public_key + pub_sign_key + u16 count + u64
- // offset`.
- // server must verify the signing key is of the recipient's pubkey and signing key by looking at
- // the packet's metadata.
- // (input public_key, input pub_sign_key, signature, u16 count, u64 offset)
- // (responds with queried_author_packets)
- query_by_recipient = 0x17,
-};
-
-enum server_reply {
- // pretty self-explanatory.
- error = 0x1,
-
- // type `struct relay_info`
- audit_response = 0x18,
- // type `struct relay_neighbor[ neighbor_count ]`
- neighbors_info = 0x19,
- // type `uint64_t new_offset, struct data_packet[ count ]`
- firehose_reply = 0x1a,
- // type `bool result_code`
- push_packet_result = 0x1b,
- // type `struct data_packet`
- get_packet_result = 0x1c,
- // type `bool result_code`
- register_neighbor_result = 0x1d,
- // type `u16 count, u64 new_offset, struct data_packet[ count ]`
- queried_author_packets = 0x1e,
- // type `u16 count, u64 new_offset, struct data_packet[ count ]`
- queried_recipient_packets = 0x1f,
-};
+#include "req_res_codes.h"
typedef uint8_t get_neighbors_request;
@@ -139,7 +74,7 @@ struct data_packet {
public_key author; // message author
public_key author_signing_pub; // message signing pubkey
uint8_t recipient_count; // number of recipients. leave as 0 for public.
- recipient recipients[ 32 ]; // up to 32 recipients for packet
+ recipient recipients[ 32 ]; // up to 32 recipients for packet
byte data[ 65536 ]; // packet data
signature signature; // data signature
} contents;