From a178c761164b64ceffac48060cbba1e12b17222a Mon Sep 17 00:00:00 2001 From: n07070 Date: Tue, 28 Apr 2020 00:01:43 +0200 Subject: [PATCH 1/8] Fixed bad memcmp, activated receiving messages. --- src/node.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/node.c b/src/node.c index 3775236..0aee474 100644 --- a/src/node.c +++ b/src/node.c @@ -832,7 +832,7 @@ int work_with_tlvs(char * data, int16_t total_packet_len, struct sockaddr_in6 *s printf("\n"); } - if(memcmp(hash, cur_tlv.network_hash->network_hash, 16) == 0) { + if(memcmp(hash, cur_tlv.network_hash->network_hash, 16) != 0) { print_debug(">> Sending out our network hash."); build_network_state_req(&new_tlv); send_single_tlv(&new_tlv, sender, socket_num); @@ -921,6 +921,10 @@ int work_with_tlvs(char * data, int16_t total_packet_len, struct sockaddr_in6 *s print_debug(">> Received node state, updating..."); cur_tlv.node_state = (node_state*) (data + pos); + print_debug(">> Received message ! "); + if (DEBUG_LEVEL > 0) { + printf("\n\t %s \n", (char *) cur_tlv.node_state->data); + } add_data(cur_tlv.node_state->length - 26, cur_tlv.node_state->node_id, cur_tlv.node_state->seqno, cur_tlv.node_state->data); // The position is updated From 023dd46a26e1a606bc541d06d7fbf300156fd932 Mon Sep 17 00:00:00 2001 From: n07070 Date: Tue, 28 Apr 2020 17:37:51 +0200 Subject: [PATCH 2/8] Modification of the malloc's --- src/node.c | 9 +++++---- src/node.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/node.c b/src/node.c index 0aee474..ef470d7 100644 --- a/src/node.c +++ b/src/node.c @@ -802,6 +802,7 @@ int work_with_tlvs(char * data, int16_t total_packet_len, struct sockaddr_in6 *s new_neighbour.sin6_scope_id = ifindex; // Build network hash + // memset(&new_tlv,0,sizeof(struct network_hash)); build_network_hash(&new_tlv, data_list); send_single_tlv(&new_tlv, &new_neighbour, socket_num); @@ -819,13 +820,13 @@ int work_with_tlvs(char * data, int16_t total_packet_len, struct sockaddr_in6 *s if (DEBUG_LEVEL > 1) { printf("\x1b[31m[DEBUG]\x1b[0m >> Our hash : "); - for(int x = 0; x < SHA256_DIGEST_LENGTH; x++){ + for(int x = 0; x < 16; x++){ printf("%02x", hash[x]); fflush(0); } printf("\n"); printf("\x1b[31m[DEBUG]\x1b[0m >> Received : "); - for(int x = 0; x < SHA256_DIGEST_LENGTH; x++){ + for(int x = 0; x < 16; x++){ printf("%02x", cur_tlv.network_hash->network_hash[x]); fflush(0); } @@ -923,7 +924,7 @@ int work_with_tlvs(char * data, int16_t total_packet_len, struct sockaddr_in6 *s print_debug(">> Received message ! "); if (DEBUG_LEVEL > 0) { - printf("\n\t %s \n", (char *) cur_tlv.node_state->data); + printf("\nID : %li \nSeqno : %i\n ā€œ%sā€ \n", cur_tlv.node_state->node_id, cur_tlv.node_state->seqno, (char *) cur_tlv.node_state->data); } add_data(cur_tlv.node_state->length - 26, cur_tlv.node_state->node_id, cur_tlv.node_state->seqno, cur_tlv.node_state->data); @@ -1048,7 +1049,7 @@ int run_node(int sock_fd){ t_ask_for_more_peers(sock_fd); t_update_neighbours(); t_get_network_state(sock_fd); - delay = time(NULL) + 20 + (rand() % 10); + delay = time(NULL) + 20 + (rand() % 5); } // This might be cool to add, but we need to find a way to write to stdin diff --git a/src/node.h b/src/node.h index 20012f1..0f2abc4 100644 --- a/src/node.h +++ b/src/node.h @@ -62,7 +62,7 @@ typedef struct list { // The adress of the main peer #define ROOT_PEER_ADDR "2001:660:3301:9200::51c2:1b9b" - + // fonctions signatures int listen_for_packets(char * received_data_buffer, int received_data_len, struct sockaddr_in6 * sender, int sock_fd); From 3e678b64bec3a8e98a7eebf1a11694229b920d12 Mon Sep 17 00:00:00 2001 From: gonzalef Date: Tue, 28 Apr 2020 17:47:31 +0200 Subject: [PATCH 3/8] malloc(0) fixed --- src/hash.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/hash.c b/src/hash.c index 44e3827..61f06f9 100644 --- a/src/hash.c +++ b/src/hash.c @@ -17,7 +17,10 @@ void hash_data(pub_data *data, unsigned char *buf) { // Hash every data contained in data_list then return a network hash void hash_network(list *data_list, unsigned char *buf) { - unsigned char *concat = (unsigned char*) malloc(0); + // Get list length to initialize concat buffer + int concat_len = len_list(data_list) * SHA256_DIGEST_LENGTH; + unsigned char *concat = (unsigned char*) malloc(concat_len); + unsigned char hash[SHA256_DIGEST_LENGTH]; int totlen = 0; list *tmp = data_list; From aa5ac80337dca8f9034bc889d85f9e333b998127 Mon Sep 17 00:00:00 2001 From: gonzalef Date: Tue, 28 Apr 2020 18:02:34 +0200 Subject: [PATCH 4/8] concat hash no realloc --- src/hash.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/hash.c b/src/hash.c index 61f06f9..c2324b2 100644 --- a/src/hash.c +++ b/src/hash.c @@ -58,6 +58,5 @@ void concat_data(pub_data *data, unsigned char *buf) { // Concat hash2 to hash1 (hash1 is modified) void concat_hash(unsigned char *hash1, unsigned char *hash2, size_t size) { - hash1 = (unsigned char*) realloc(hash1, size + 16); memcpy(hash1+size, hash2, 16); } From 27d38c3fe5ad3209ecd98f12b358eae0c1ac3e46 Mon Sep 17 00:00:00 2001 From: gonzalef Date: Tue, 28 Apr 2020 18:07:06 +0200 Subject: [PATCH 5/8] concat_len --- src/hash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hash.c b/src/hash.c index c2324b2..a205bad 100644 --- a/src/hash.c +++ b/src/hash.c @@ -18,7 +18,7 @@ void hash_data(pub_data *data, unsigned char *buf) { // Hash every data contained in data_list then return a network hash void hash_network(list *data_list, unsigned char *buf) { // Get list length to initialize concat buffer - int concat_len = len_list(data_list) * SHA256_DIGEST_LENGTH; + int concat_len = len_list(data_list) * 16; unsigned char *concat = (unsigned char*) malloc(concat_len); unsigned char hash[SHA256_DIGEST_LENGTH]; From 897550a0acafed8b5b9d73f1722b1cbc095e3b71 Mon Sep 17 00:00:00 2001 From: gonzalef Date: Tue, 28 Apr 2020 19:02:02 +0200 Subject: [PATCH 6/8] warning sprintf --- src/debug.o | Bin 0 -> 1584 bytes src/hash.o | Bin 0 -> 2584 bytes src/node.c | 18 +++++++++--------- src/tlv.c | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 src/debug.o create mode 100644 src/hash.o diff --git a/src/debug.o b/src/debug.o new file mode 100644 index 0000000000000000000000000000000000000000..f402994105591610dd5628c2fc860deaac488e3e GIT binary patch literal 1584 zcmbtUL2DCH5T0$+wi=}tkzzdTMNzSjU2CxjmTh8^3X2781PS`sq+28HCS~^ps)u^j zgWyU0H+uB1c+;y0b>`&_Szk6Dbi(e;d~d#a^Jd=WO+9SPI1aElunuF7QGo9=V>{4h z0B4~Lo9|c2+kE%a|MHoL-^i`BSNx=Xzg}%MpHId2=k+6S4i}tCd3Npt<|q8JUIDmh^xqVfbOL@H7sZqc zPYO`NUy+nBQ<0S5WD$&6W~bnD6ZpJFrsX*`5q}Pm#a#W|i%WE z3nHv}aFD+2E2$xn&2X!_5z4Jb<8ggkZf{h>x&$e8%&zSA_GlaK6kQKG)vx1`EYczh zb*zjJ<1X4H6ra0N03v&psHlTlr6b*AD~x_cN$?6@a)(L+m3y1_~);Z}t?Tlac`Oo805&x|zsyC);%jW+E%o}ct literal 0 HcmV?d00001 diff --git a/src/hash.o b/src/hash.o new file mode 100644 index 0000000000000000000000000000000000000000..9de82471d9309121a76665a50f123532c62eb3f9 GIT binary patch literal 2584 zcmbtU&2Jk;6d$i$$2jS((<0%jNb#XTF=|&fZJ{a>c$3(kpj9Ign}XV~IF600_(QVS zkfN#}xv5w!L0sTJ;KqSd!T}_w2~v9Dh$?!CkV+Fks8vK{MAY)$?o2W=4npv(o%iN9 zzxOe3X8e9qPe~pR;o>1Lk^LD*2?_V@+X=@^kO9(9wv}3+GU#7bhHf}0wbKE8F%_hi zUs+CvidHJ1EGg8!7;gO$XdK&F@ip~@+h)JAB<-w7AEtuM>^3+PYD?5g1+8^zUz0i$ z)-}?hi`S3P*8R>zw4+CFjeAz8_5I40cbk5`T2y&HTXMYYjI^s+8L|tpKEOh(b!9mt zJt`vjNZ@Cwb#IDV+qCuTxmjxahDU%*t>k9Btt|EFi!?}E?PJ3aynsg6sP)q(Mx%?_ zwr+h#t^3ZjsML~eY9}{m>1j8DGU#pksXg7fy~-G@AKGhLcEZ}xGFiy_CuEHYS;tR| z#M=&kWy44F9XHp)-3e>WeCL}GB%ZMD6_ufJsK9YcU{Qn$|9B)7qO`xWD~=#&;m)FUw9MWhjB? z>sJPSPpy*l*x32VNOq=KHJgza)U#^r)aj-(i(ikQQ)6eME{gF8dD2zH^WLk(GavFC zALt8w0v8K6^)y=xFpXG@*`F~T0S()BfWqG|mJfJ?Xr@-+^l za_D1eR1PnClXB!EpC*soJfz97mOm}OCEWfyaU%5dyC3h(z2 z*vS9VK?!ks4t5ki&SguEdiel6bpU=5aEu>ee=g2>0XBO8zj6R>9)Mp39OG}W_z#DDW(p7fK^P;s7GShqdiK zcI6?0Ab1l7;N$pFwhzP)3;39TD*}E&!126zoEpP1Z&1KL75HM_I|44|y(Qp-LYxTL zC>S3x8&i?+! zj>7_;eS#C1F0rS6ht2UWVJQB-!wi3h;obi{QSp!%7gbj|7iCQ_&VW&M-PznlI#1KMIxuzCMD{0bPo`k!D2I?ssMfBaYG{=EOVkM7*) v5@rouXB)*giN4+b7`MCk0FezW3S_}mdn4}~2k?#d^8bp}{{|;A-R=Ju5(aYf literal 0 HcmV?d00001 diff --git a/src/node.c b/src/node.c index ef470d7..6dbea63 100644 --- a/src/node.c +++ b/src/node.c @@ -461,10 +461,11 @@ int add_tlv(packet *pack, tlv *tlv, struct sockaddr_in6 *dest, int socket_num) { // Send length bytes from packet int send_packet(char *packet_buff, int16_t length, struct sockaddr_in6 *dest, int socket_num) { - ((packet*) packet_buff)->length = htons(((packet*) packet_buff)->length); + ((packet*) packet_buff)->length = htons(((packet*) packet_buff)->length); // Vectorized buffer - struct iovec vec_buff = {.iov_len = length + 4, .iov_base = packet_buff}; + struct iovec vec_buff[1]; + vec_buff[0] = {.iov_len = length + 4, .iov_base = packet_buff}; int error_while_sending = 0; @@ -472,7 +473,7 @@ int send_packet(char *packet_buff, int16_t length, struct sockaddr_in6 *dest, in struct msghdr packet_tlv_send_out = { .msg_name = dest, .msg_namelen = sizeof(struct sockaddr_in6), - .msg_iov = &vec_buff, + .msg_iov = vec_buff, .msg_iovlen = 1 // We have only one iovec buffer. But if we had 2, we would write 2. }; @@ -802,7 +803,6 @@ int work_with_tlvs(char * data, int16_t total_packet_len, struct sockaddr_in6 *s new_neighbour.sin6_scope_id = ifindex; // Build network hash - // memset(&new_tlv,0,sizeof(struct network_hash)); build_network_hash(&new_tlv, data_list); send_single_tlv(&new_tlv, &new_neighbour, socket_num); @@ -820,13 +820,13 @@ int work_with_tlvs(char * data, int16_t total_packet_len, struct sockaddr_in6 *s if (DEBUG_LEVEL > 1) { printf("\x1b[31m[DEBUG]\x1b[0m >> Our hash : "); - for(int x = 0; x < 16; x++){ + for(int x = 0; x < SHA256_DIGEST_LENGTH; x++){ printf("%02x", hash[x]); fflush(0); } printf("\n"); printf("\x1b[31m[DEBUG]\x1b[0m >> Received : "); - for(int x = 0; x < 16; x++){ + for(int x = 0; x < SHA256_DIGEST_LENGTH; x++){ printf("%02x", cur_tlv.network_hash->network_hash[x]); fflush(0); } @@ -924,7 +924,7 @@ int work_with_tlvs(char * data, int16_t total_packet_len, struct sockaddr_in6 *s print_debug(">> Received message ! "); if (DEBUG_LEVEL > 0) { - printf("\nID : %li \nSeqno : %i\n ā€œ%sā€ \n", cur_tlv.node_state->node_id, cur_tlv.node_state->seqno, (char *) cur_tlv.node_state->data); + printf("\n\t %s \n", (char *) cur_tlv.node_state->data); } add_data(cur_tlv.node_state->length - 26, cur_tlv.node_state->node_id, cur_tlv.node_state->seqno, cur_tlv.node_state->data); @@ -939,7 +939,7 @@ int work_with_tlvs(char * data, int16_t total_packet_len, struct sockaddr_in6 *s cur_tlv.warning = (warning*) (data + pos); // Print exactly new_tlv.length characters from new_tlv.message - sprintf(warn, "\x1b[31m>> WARNING:\n%%.%ds \x1b[0m", cur_tlv.warning->length + 1); + sprintf(warn, ">> WARNING:\n%%.%ds", cur_tlv.warning->length + 1); printf(warn, cur_tlv.warning->message); // The position is updated @@ -1049,7 +1049,7 @@ int run_node(int sock_fd){ t_ask_for_more_peers(sock_fd); t_update_neighbours(); t_get_network_state(sock_fd); - delay = time(NULL) + 20 + (rand() % 5); + delay = time(NULL) + 20 + (rand() % 10); } // This might be cool to add, but we need to find a way to write to stdin diff --git a/src/tlv.c b/src/tlv.c index 82de813..140a9fb 100644 --- a/src/tlv.c +++ b/src/tlv.c @@ -92,7 +92,7 @@ int build_neighbour(tlv *tlv, struct in6_addr ip, int16_t port) { new->type = 3; new->length = 18; new->ip = ip; - new->port = port; + new->port = htons(port); tlv->neighbour = new; From 61041efd02828bb5fbf1ae94973f13639e40e2bc Mon Sep 17 00:00:00 2001 From: gonzalef Date: Tue, 28 Apr 2020 19:05:10 +0200 Subject: [PATCH 7/8] send_packet --- src/node.c | 3 ++- src/node.o | Bin 0 -> 27552 bytes src/parser.o | Bin 0 -> 2752 bytes src/tlv.o | Bin 0 -> 5024 bytes 4 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 src/node.o create mode 100644 src/parser.o create mode 100644 src/tlv.o diff --git a/src/node.c b/src/node.c index 6dbea63..40b127a 100644 --- a/src/node.c +++ b/src/node.c @@ -465,7 +465,8 @@ int send_packet(char *packet_buff, int16_t length, struct sockaddr_in6 *dest, in // Vectorized buffer struct iovec vec_buff[1]; - vec_buff[0] = {.iov_len = length + 4, .iov_base = packet_buff}; + vec_buff[0].iov_len = length + 4; + vec_buff[0].iov_base = packet_buff; int error_while_sending = 0; diff --git a/src/node.o b/src/node.o new file mode 100644 index 0000000000000000000000000000000000000000..7dc7f55f97aeacd9de06e9925c9963160d85aef8 GIT binary patch literal 27552 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 literal 0 HcmV?d00001 diff --git a/src/parser.o b/src/parser.o new file mode 100644 index 0000000000000000000000000000000000000000..0cdd296b3e6d45a1381d4f89dc493d8414779b6b GIT binary patch literal 2752 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 Date: Tue, 28 Apr 2020 19:19:45 +0200 Subject: [PATCH 8/8] remove .o files --- src/debug.o | Bin 1584 -> 0 bytes src/hash.o | Bin 2584 -> 0 bytes src/node.c | 4 ++-- src/node.o | Bin 27552 -> 0 bytes src/parser.o | Bin 2752 -> 0 bytes src/tlv.o | Bin 5024 -> 0 bytes 6 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 src/debug.o delete mode 100644 src/hash.o delete mode 100644 src/node.o delete mode 100644 src/parser.o delete mode 100644 src/tlv.o diff --git a/src/debug.o b/src/debug.o deleted file mode 100644 index f402994105591610dd5628c2fc860deaac488e3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1584 zcmbtUL2DCH5T0$+wi=}tkzzdTMNzSjU2CxjmTh8^3X2781PS`sq+28HCS~^ps)u^j zgWyU0H+uB1c+;y0b>`&_Szk6Dbi(e;d~d#a^Jd=WO+9SPI1aElunuF7QGo9=V>{4h z0B4~Lo9|c2+kE%a|MHoL-^i`BSNx=Xzg}%MpHId2=k+6S4i}tCd3Npt<|q8JUIDmh^xqVfbOL@H7sZqc zPYO`NUy+nBQ<0S5WD$&6W~bnD6ZpJFrsX*`5q}Pm#a#W|i%WE z3nHv}aFD+2E2$xn&2X!_5z4Jb<8ggkZf{h>x&$e8%&zSA_GlaK6kQKG)vx1`EYczh zb*zjJ<1X4H6ra0N03v&psHlTlr6b*AD~x_cN$?6@a)(L+m3y1_~);Z}t?Tlac`Oo805&x|zsyC);%jW+E%o}ct diff --git a/src/hash.o b/src/hash.o deleted file mode 100644 index 9de82471d9309121a76665a50f123532c62eb3f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2584 zcmbtU&2Jk;6d$i$$2jS((<0%jNb#XTF=|&fZJ{a>c$3(kpj9Ign}XV~IF600_(QVS zkfN#}xv5w!L0sTJ;KqSd!T}_w2~v9Dh$?!CkV+Fks8vK{MAY)$?o2W=4npv(o%iN9 zzxOe3X8e9qPe~pR;o>1Lk^LD*2?_V@+X=@^kO9(9wv}3+GU#7bhHf}0wbKE8F%_hi zUs+CvidHJ1EGg8!7;gO$XdK&F@ip~@+h)JAB<-w7AEtuM>^3+PYD?5g1+8^zUz0i$ z)-}?hi`S3P*8R>zw4+CFjeAz8_5I40cbk5`T2y&HTXMYYjI^s+8L|tpKEOh(b!9mt zJt`vjNZ@Cwb#IDV+qCuTxmjxahDU%*t>k9Btt|EFi!?}E?PJ3aynsg6sP)q(Mx%?_ zwr+h#t^3ZjsML~eY9}{m>1j8DGU#pksXg7fy~-G@AKGhLcEZ}xGFiy_CuEHYS;tR| z#M=&kWy44F9XHp)-3e>WeCL}GB%ZMD6_ufJsK9YcU{Qn$|9B)7qO`xWD~=#&;m)FUw9MWhjB? z>sJPSPpy*l*x32VNOq=KHJgza)U#^r)aj-(i(ikQQ)6eME{gF8dD2zH^WLk(GavFC zALt8w0v8K6^)y=xFpXG@*`F~T0S()BfWqG|mJfJ?Xr@-+^l za_D1eR1PnClXB!EpC*soJfz97mOm}OCEWfyaU%5dyC3h(z2 z*vS9VK?!ks4t5ki&SguEdiel6bpU=5aEu>ee=g2>0XBO8zj6R>9)Mp39OG}W_z#DDW(p7fK^P;s7GShqdiK zcI6?0Ab1l7;N$pFwhzP)3;39TD*}E&!126zoEpP1Z&1KL75HM_I|44|y(Qp-LYxTL zC>S3x8&i?+! zj>7_;eS#C1F0rS6ht2UWVJQB-!wi3h;obi{QSp!%7gbj|7iCQ_&VW&M-PznlI#1KMIxuzCMD{0bPo`k!D2I?ssMfBaYG{=EOVkM7*) v5@rouXB)*giN4+b7`MCk0FezW3S_}mdn4}~2k?#d^8bp}{{|;A-R=Ju5(aYf diff --git a/src/node.c b/src/node.c index 40b127a..d420d2a 100644 --- a/src/node.c +++ b/src/node.c @@ -192,7 +192,7 @@ pub_data *get_data(int64_t id) { while(tmp != NULL) { data = (pub_data*) tmp->data; - + tmp = tmp->next; if(data->id == id) return data; } @@ -464,7 +464,7 @@ int send_packet(char *packet_buff, int16_t length, struct sockaddr_in6 *dest, in ((packet*) packet_buff)->length = htons(((packet*) packet_buff)->length); // Vectorized buffer - struct iovec vec_buff[1]; + struct iovec vec_buff[1]; vec_buff[0].iov_len = length + 4; vec_buff[0].iov_base = packet_buff; diff --git a/src/node.o b/src/node.o deleted file mode 100644 index 7dc7f55f97aeacd9de06e9925c9963160d85aef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27552 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 diff --git a/src/parser.o b/src/parser.o deleted file mode 100644 index 0cdd296b3e6d45a1381d4f89dc493d8414779b6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2752 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