Browse Source

added new dependencies

master
root 5 years ago
parent
commit
8ede1a3421
2 changed files with 117 additions and 25 deletions
  1. 78
    25
      inc/lc6_common.h
  2. 39
    0
      src/lc6_common.c

+ 78
- 25
inc/lc6_common.h View File

#include "../inc/lc6_helpers.h" #include "../inc/lc6_helpers.h"


#ifdef LC6_DEBUG #ifdef LC6_DEBUG
#define malloc(x) lc6helpers_malloc(x, __FILE__, __func__, __LINE__)
#define realloc(x,y) lc6helpers_realloc(x, y, __FILE__, __func__, __LINE__)
#define free(x) lc6helpers_free(x, __FILE__, __func__, __LINE__)
#include "../inc/lc6_debug.h"
#endif #endif


typedef struct LC6_NODE { typedef struct LC6_NODE {
unsigned char *pub_key;
unsigned char *priv_key;
unsigned char *pub_key;
unsigned char *priv_key;
} LC6_NODE; } LC6_NODE;


typedef struct LC6_USER { typedef struct LC6_USER {
struct LC6_USER *prev;
struct LC6_USER *next;
unsigned char nickname[256];
unsigned char pub_key[32];
unsigned char priv_key[32];
uint8_t status;
struct LC6_USER *prev;
struct LC6_USER *next;
unsigned char nickname[256];
unsigned char pub_key[32];
unsigned char priv_key[32];
uint8_t status;
} LC6_USER; } LC6_USER;


typedef struct LC6_FRIEND { typedef struct LC6_FRIEND {
struct LC6_FRIEND *prev; struct LC6_FRIEND *prev;
struct LC6_FRIEND *next; struct LC6_FRIEND *next;
unsigned char nickname[256];
unsigned char pub_key[32];
unsigned char nickname[256];
unsigned char pub_key[32];
uint8_t status; uint8_t status;
} LC6_FRIEND; } LC6_FRIEND;


typedef struct LC6_MSG_TLV {
int type;
int length;
unsigned char *value;
} LC6_MSG_TLV;

typedef struct LC6_MSG {
uint64_t timestamp;
int type;
LC6_MSG_TLV **tlv;
} LC6_MSG;

enum LC6_MSG_TYPE_ENUM {
LC6_MSG_TYPE_CLIENT_ONLINE,
LC6_MSG_TYPE_CLIENT_UPDATE,
LC6_MSG_TYPE_CLIENT_OFFLINE,
LC6_MSG_TYPE_KEEPALIVE_QUERY,
LC6_MSG_TYPE_KEEPALIVE_RESPONSE,
LC6_MSG_TYPE_FRIEND_REQUEST,
LC6_MSG_TYPE_FRIEND_CONFIRM,
LC6_MSG_TYPE_MESSAGE_SEND,
LC6_MSG_TYPE_MESSAGE_RECV,
LC6_MSG_TYPE_MESSAGE_READ,
LC6_MSG_TYPE_NEIGHBOURS_REQUEST,
LC6_MSG_TYPE_NEIGHBOURS_RESPONSE
};

enum LC6_MSG_TLV_ENUM {
LC6_MSG_TLV_NICKNAME,
LC6_MSG_TLV_KEY,
LC6_MSG_TLV_NONCE,
LC6_MSG_TLV_ICON,
LC6_MSG_TLV_METRIC,
LC6_MSG_TLV_MSGID,
LC6_MSG_TLV_CHATID,
LC6_MSG_TLV_NEIGHBOUR
};

enum LC6_MSG_TLV_TYPE_ENUM {
LC6_MSG_TLV_TYPE_UTF8,
LC6_MSG_TLV_TYPE_BINARY,
LC6_MSG_TLV_TYPE_INTEGER,
LC6_MSG_TLV_TYPE_UUID,
LC6_MSG_TLV_TYPE_IPPORT
};

#define LC6_CONFIG_BOOTSTRAP "bootstrap.bin" #define LC6_CONFIG_BOOTSTRAP "bootstrap.bin"
#define LC6_CONFIG_USER "user.bin" #define LC6_CONFIG_USER "user.bin"
#define LC6_CONFIG_FRIEND "friends.bin" #define LC6_CONFIG_FRIEND "friends.bin"
#define LC6_CONFIG_MAXLEN 50 #define LC6_CONFIG_MAXLEN 50


typedef struct LC6_BOOTSTRAP {
struct LC6_BOOTSTRAP *prev;
struct LC6_BOOTSTRAP *next;
uint64_t last_contact;
uint8_t af;
union addr {
typedef struct LC6_IPADDR {
uint8_t af;
union addr {
uint32_t inet; uint32_t inet;
unsigned char inet6[16]; unsigned char inet6[16];
} addr;
} addr;
} LC6_IPADDR;

typedef struct LC6_BOOTSTRAP {
struct LC6_BOOTSTRAP *prev;
struct LC6_BOOTSTRAP *next;
uint64_t last_contact;
LC6_IPADDR ip;
} LC6_BOOTSTRAP; } LC6_BOOTSTRAP;


typedef struct LC6_CTX { typedef struct LC6_CTX {
char path[MAXPATHLEN-LC6_CONFIG_MAXLEN];
LC6_USER *user;
LC6_USER *node;
LC6_FRIEND *friend;
LC6_BOOTSTRAP *bootstrap;
char path[MAXPATHLEN-LC6_CONFIG_MAXLEN];
LC6_USER *user;
LC6_USER *node;
LC6_FRIEND *friend;
LC6_BOOTSTRAP *bootstrap;
} LC6_CTX; } LC6_CTX;


extern int LC6_MSG_TLV_TYPE_INT[8];
extern unsigned char LC6_MSG_TYPE_STR[13][30];
extern unsigned char LC6_MSG_TLV_STR[8][20];

#endif #endif

+ 39
- 0
src/lc6_common.c View File


#include "../inc/lc6_common.h"

unsigned char LC6_MSG_TYPE_STR[13][30] = {
"CLIENT_ONLINE",
"CLIENT_UPDATE",
"CLIENT_OFFLINE",
"KEEPALIVE_REQUEST",
"KEEPALIVE_RESPONSE",
"FRIEND_REQUEST",
"FRIEND_CONFIRM",
"MESSAGE_SEND",
"MESSAGE_RECV",
"MESSAGE_READ",
"NEIGHBOURS_REQUEST",
"NEIGHBOURS_RESPONSE",
""
};

unsigned char LC6_MSG_TLV_STR[8][20] = {
"nickname",
"key",
"nonce",
"metric",
"msgid",
"chatid",
"neighbor",
"",
};

int LC6_MSG_TLV_TYPE_INT[8] = {
LC6_MSG_TLV_TYPE_UTF8,
LC6_MSG_TLV_TYPE_BINARY,
LC6_MSG_TLV_TYPE_BINARY,
LC6_MSG_TLV_TYPE_INTEGER,
LC6_MSG_TLV_TYPE_UUID,
LC6_MSG_TLV_TYPE_UUID,
LC6_MSG_TLV_TYPE_IPPORT,
};

Loading…
Cancel
Save