Explorar el Código

added new dependencies

master
root hace 5 años
padre
commit
8ede1a3421
Se han modificado 2 ficheros con 117 adiciones y 25 borrados
  1. 78
    25
      inc/lc6_common.h
  2. 39
    0
      src/lc6_common.c

+ 78
- 25
inc/lc6_common.h Ver fichero

@@ -8,55 +8,108 @@
#include "../inc/lc6_helpers.h"

#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

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

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;

typedef struct LC6_FRIEND {
struct LC6_FRIEND *prev;
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;
} 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_USER "user.bin"
#define LC6_CONFIG_FRIEND "friends.bin"
#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;
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;

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;

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

+ 39
- 0
src/lc6_common.c Ver fichero

@@ -0,0 +1,39 @@

#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,
};

Cargando…
Cancelar
Guardar