Skip to content

Commit

Permalink
Merge pull request #52 from hamishcoleman/main
Browse files Browse the repository at this point in the history
Bug fixes
  • Loading branch information
hamishcoleman authored Oct 19, 2024
2 parents bbcab67 + afd5acc commit 9f0b423
Show file tree
Hide file tree
Showing 12 changed files with 602 additions and 541 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,11 @@ jobs:
# name: coverage
# path: coverage

- name: Upload data to codecov
uses: codecov/codecov-action@v3
# Now the codecov on a mac fails with
# Error: spawn Unknown system error -86
# I guess mac people just dont like coverage
# - name: Upload data to codecov
# uses: codecov/codecov-action@v3

test_windows:
name: Test Windows
Expand Down
15 changes: 0 additions & 15 deletions include/n2n_define.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,6 @@
#ifndef _N2N_DEFINE_H_
#define _N2N_DEFINE_H_

/* N2N packet header indicators. */
#define MSG_TYPE_REGISTER 1
#define MSG_TYPE_DEREGISTER 2 // unused
#define MSG_TYPE_PACKET 3
#define MSG_TYPE_REGISTER_ACK 4
#define MSG_TYPE_REGISTER_SUPER 5
#define MSG_TYPE_UNREGISTER_SUPER 6
#define MSG_TYPE_REGISTER_SUPER_ACK 7
#define MSG_TYPE_REGISTER_SUPER_NAK 8
#define MSG_TYPE_FEDERATION 9 // unused
#define MSG_TYPE_PEER_INFO 10
#define MSG_TYPE_QUERY_PEER 11
#define MSG_TYPE_RE_REGISTER_SUPER 12
#define MSG_TYPE_MAX_TYPE 12

/* Max available space to add supernodes' informations (sockets and MACs) in REGISTER_SUPER_ACK
* Field sizes of REGISTER_SUPER_ACK as used in encode/decode fucntions in src/wire.c
*/
Expand Down
44 changes: 23 additions & 21 deletions include/n2n_typedefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,24 @@ struct ether_hdr {
typedef struct ether_hdr ether_hdr_t;


/* N2N packet header indicators. */
enum PACK_STRUCT n3n_msg_type {
MSG_TYPE_PING = 0, /* Not used */
MSG_TYPE_REGISTER = 1, /* Register edge to edge */
MSG_TYPE_DEREGISTER = 2, /* UNUSED */
MSG_TYPE_PACKET = 3, /* PACKET data content */
MSG_TYPE_REGISTER_ACK = 4, /* ACK of a registration peer to peer */
MSG_TYPE_REGISTER_SUPER = 5, /* Register edge to supernode */
MSG_TYPE_UNREGISTER_SUPER = 6, /* Deregister edge from supernode */
MSG_TYPE_REGISTER_SUPER_ACK = 7, /* ACK from sn to edge */
MSG_TYPE_REGISTER_SUPER_NAK = 8, /* NAK from sn to edge - reg refused */
MSG_TYPE_FEDERATION = 9, /* UNUSED */
MSG_TYPE_PEER_INFO = 10, /* Send info on a peer (sn to edge) */
MSG_TYPE_QUERY_PEER = 11, /* ask supernode for info on a peer */
MSG_TYPE_RE_REGISTER_SUPER = 12 /* ask edge to re-register with sn */
};
#define MSG_TYPE_MAX_TYPE 12

#if defined(_MSC_VER) || defined(__MINGW32__)
#pragma pack(pop)
#endif
Expand Down Expand Up @@ -139,22 +157,6 @@ typedef u_short sa_family_t;

typedef char n2n_sn_name_t[N2N_EDGE_SN_HOST_SIZE];

typedef enum n2n_pc {
n2n_ping = 0, /* Not used */
n2n_register = 1, /* Register edge to edge */
n2n_deregister = 2, /* Deregister this edge */
n2n_packet = 3, /* PACKET data content */
n2n_register_ack = 4, /* ACK of a registration from edge to edge */
n2n_register_super = 5, /* Register edge to supernode */
n2n_unregister_super = 6, /* Deregister edge from supernode */
n2n_register_super_ack = 7, /* ACK from supernode to edge */
n2n_register_super_nak = 8, /* NAK from supernode to edge - registration refused */
n2n_federation = 9, /* Not used by edge */
n2n_peer_info = 10, /* Send info on a peer from sn to edge */
n2n_query_peer = 11, /* ask supernode for info on a peer */
n2n_re_register_super = 12 /* ask edge to re-register with supernode */
} n2n_pc_t;

// This one bit higher than the largest used flag value. It is used in the
// header encryption detection heuristic and is not a flag itself
#define N2N_FLAGS_OPTIONS_MAX 0x0080
Expand Down Expand Up @@ -230,7 +232,7 @@ typedef struct n2n_common {
/* int version; */

uint8_t ttl;
uint8_t pc;
enum n3n_msg_type pc;
uint16_t flags;
n2n_community_t community;
} n2n_common_t;
Expand Down Expand Up @@ -259,7 +261,7 @@ typedef struct n2n_PACKET {
uint8_t compression;
} n2n_PACKET_t;

/* Linked with n2n_register_super in n2n_pc_t. Only from edge to supernode. */
/* Linked with n2n_register_super via enum n3n_msg_type. Only from edge to supernode. */
typedef struct n2n_REGISTER_SUPER {
n2n_cookie_t cookie; /**< Link REGISTER_SUPER and REGISTER_SUPER_ACK */
n2n_mac_t edgeMac; /**< MAC to register with edge sending socket */
Expand All @@ -271,7 +273,7 @@ typedef struct n2n_REGISTER_SUPER {
} n2n_REGISTER_SUPER_t;


/* Linked with n2n_register_super_ack in n2n_pc_t. Only from supernode to edge. */
/* Linked with n2n_register_super_ack via enum n3n_msg_type. Only from supernode to edge. */
typedef struct n2n_REGISTER_SUPER_ACK {
n2n_cookie_t cookie; /**< Return cookie from REGISTER_SUPER */
n2n_mac_t srcMac; /**< MAC of answering supernode */
Expand All @@ -291,7 +293,7 @@ typedef struct n2n_REGISTER_SUPER_ACK {
} n2n_REGISTER_SUPER_ACK_t;


/* Linked with n2n_register_super_ack in n2n_pc_t. Only from supernode to edge. */
/* Linked with n2n_register_super_ack via enum n3n_msg_type. Only from supernode to edge. */
typedef struct n2n_REGISTER_SUPER_NAK {
n2n_cookie_t cookie; /* Return cookie from REGISTER_SUPER */
n2n_mac_t srcMac;
Expand All @@ -309,7 +311,7 @@ typedef struct n2n_REGISTER_SUPER_ACK_payload {
} n2n_REGISTER_SUPER_ACK_payload_t;


/* Linked with n2n_unregister_super in n2n_pc_t. */
/* Linked with n2n_unregister_super via enum n3n_msg_type. */
typedef struct n2n_UNREGISTER_SUPER {
n2n_auth_t auth;
n2n_mac_t srcMac;
Expand Down
4 changes: 4 additions & 0 deletions libs/connslot/jsonrpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
char *json_find_field(char *haystack, char *field) {
// field must include the start and end doublequotes

if (!haystack) {
return NULL;
}

char *p = strstr(haystack, field);
if (!p) {
return NULL;
Expand Down
Loading

0 comments on commit 9f0b423

Please sign in to comment.