From ff823fb250c6fb8308ed1463e004b64f04dfd513 Mon Sep 17 00:00:00 2001 From: Balazs Toldi Date: Thu, 28 Nov 2019 19:29:03 +0100 Subject: [PATCH] Fixed some minor issues --- lib/map.c | 4 ++-- modules/config.c | 47 ++++++++++++++++++++++++----------------------- modules/peer.c | 32 ++++++++++++++++---------------- 3 files changed, 42 insertions(+), 41 deletions(-) diff --git a/lib/map.c b/lib/map.c index 961c1c6..e923cdd 100644 --- a/lib/map.c +++ b/lib/map.c @@ -53,8 +53,8 @@ void map_addPair(Map *m, Pair p) { Pair map_make_pair(char *key, char *value) { Pair result; - strcpy(result.key, key); - strcpy(result.value, value); + strncpy(result.key, key,65); + strncpy(result.value, value,1024); return result; } diff --git a/modules/config.c b/modules/config.c index 02d6d3f..6623394 100644 --- a/modules/config.c +++ b/modules/config.c @@ -4,36 +4,37 @@ // #include "config.h" -Config config_load(){ +Config config_load() { Config cfg; map_init(&cfg); - FILE * f; - f = fopen("config.ini","r"); - if(f != NULL) { + FILE *f; + f = fopen("config.ini", "r"); + if (f != NULL) { char buf[256], key[65], value[65]; - while (fgets(buf, sizeof(buf), f) != NULL) - { + while (fgets(buf, sizeof(buf), f) != NULL) { if (buf[0] == '#') continue; - sscanf(buf, "%[^=]=%s\n", key, value); - map_addPair(&cfg, map_make_pair(key, value)); - memset(key,0, 65); - memset(value,0, 65); - memset(buf,0, 256); + if (sscanf(buf, "%[^=]=%s\n", key, value) == 2) { + map_addPair(&cfg, map_make_pair(key, value)); + memset(key, 0, 65); + memset(value, 0, 65); + memset(buf, 0, 256); + } } - }else{ + } else { - f = fopen("config.ini","w"); - fprintf(f,"#Becenév\n" - "#nickname=Pelda\n" - "#A program által használt port (Alapértelmezett: %s)\n" - "port=%s\n" - "#Ezne a porton lesz elérhető a felhasználói felület (Alapértelmezett: %s)\n" - "interface-port=%s\n" - "#Ebben a mappában vannak tárolva a html fájlok a felhasználói felülethez (Alapértelmezett: %s)\n" - "interface-folder=%s\n" - "#A felhasználói felület csak ezen a gépen érhető elő (Alapértelmezett: true;Ajánlott)\n" - "interface-local=true",DEFAULT_PORT,DEFAULT_PORT,DEFAULT_INTERFACE_PORT,DEFAULT_INTERFACE_PORT,DEFAULT_WWW_FOLDER,DEFAULT_WWW_FOLDER); + f = fopen("config.ini", "w"); + fprintf(f, "#Becenév\n" + "#nickname=Pelda\n" + "#A program által használt port (Alapértelmezett: %s)\n" + "port=%s\n" + "#Ezne a porton lesz elérhető a felhasználói felület (Alapértelmezett: %s)\n" + "interface-port=%s\n" + "#Ebben a mappában vannak tárolva a html fájlok a felhasználói felülethez (Alapértelmezett: %s)\n" + "interface-folder=%s\n" + "#A felhasználói felület csak ezen a gépen érhető elő (Alapértelmezett: true;Ajánlott)\n" + "interface-local=true", DEFAULT_PORT, DEFAULT_PORT, DEFAULT_INTERFACE_PORT, DEFAULT_INTERFACE_PORT, + DEFAULT_WWW_FOLDER, DEFAULT_WWW_FOLDER); fclose(f); } diff --git a/modules/peer.c b/modules/peer.c index 6301921..6e35172 100644 --- a/modules/peer.c +++ b/modules/peer.c @@ -7,9 +7,10 @@ //Kouhai peer //Amikor mi csatlakozunk egy peerhez int peer_ConnetctTo(char *ip, int port, PeerList *peerList, Node_data my, fd_set *fdSet) { - if(strcmp(ip,"0.0.0.0") == 0) + if (strcmp(ip, "0.0.0.0") == 0) return 0; - + if (peer_IP_isFound(*peerList, ip, port)) + return 1; struct sockaddr_in hint; hint.sin_family = AF_INET; hint.sin_port = htons(port); @@ -25,7 +26,7 @@ int peer_ConnetctTo(char *ip, int port, PeerList *peerList, Node_data my, fd_set } logger_log("Connected to peer!Sending handshake..."); char handshake[DEFAULT_BUFLEN]; - sprintf(handshake, "@id=%s&port=%d&version=%s", my.id, my.port,P2P_CURRENT_VERSION); + sprintf(handshake, "@id=%s&port=%d&version=%s", my.id, my.port, P2P_CURRENT_VERSION); if (strlen(my.nick) != 0) { char buf[DEFAULT_BUFLEN]; memset(buf, 0, DEFAULT_BUFLEN); @@ -52,13 +53,13 @@ int peer_ConnetctTo(char *ip, int port, PeerList *peerList, Node_data my, fd_set if (buf[0] != '@') { logger_log("Error: Invalid response!"); - sendErrorMSG("INVALID_RESPONSE",sock); + sendErrorMSG("INVALID_RESPONSE", sock); closesocket(sock); return -1; } Map m = getPacketData(buf); - if(m.pairs == NULL){ + if (m.pairs == NULL) { free(m.pairs); return -1; } @@ -79,7 +80,7 @@ int peer_ConnetctTo(char *ip, int port, PeerList *peerList, Node_data my, fd_set strcpy(node.id, id); } else { logger_log("Error: Invalid response!ID not found in handshake."); - sendErrorMSG("ID_NOT_FOUND",sock); + sendErrorMSG("ID_NOT_FOUND", sock); free(m.pairs); closesocket(sock); return -1; @@ -89,7 +90,7 @@ int peer_ConnetctTo(char *ip, int port, PeerList *peerList, Node_data my, fd_set node.port = atoi(port_str); } else { logger_log("Error: Invalid response!Port not found in handshake."); - sendErrorMSG("PORT_NOT_FOUND",sock); + sendErrorMSG("PORT_NOT_FOUND", sock); free(m.pairs); closesocket(sock); return -1; @@ -110,18 +111,17 @@ int peer_ConnetctTo(char *ip, int port, PeerList *peerList, Node_data my, fd_set char *peers = map_getValue(m, "peers"); char *rest = peers; if (peers != NULL) { - char *tmp = strtok(peers, ","); + char *tmp = strtok_s(peers, ",", &rest); while (tmp != NULL) { char ip1[NI_MAXHOST]; int port1; if (sscanf(tmp, "%[^:]:%d", ip1, &port1) != 2) { - tmp = strtok_s(NULL, ",",&rest); + tmp = strtok_s(NULL, ",", &rest); continue; } - if (!peer_IP_isFound(*peerList, ip, port)) - peer_ConnetctTo(ip1, port1, peerList, my, fdSet); - tmp = strtok_s(NULL, ",",&rest); + peer_ConnetctTo(ip1, port1, peerList, my, fdSet); + tmp = strtok_s(NULL, ",", &rest); } } free(m.pairs); @@ -141,9 +141,9 @@ int peer_HandleConnection(SOCKET listening, PeerList *peerList, Node_data my, fd memset(ip, 0, NI_MAXHOST); inet_ntop(AF_INET, &client.sin_addr, ip, NI_MAXHOST); - if(strcmp(ip,"0.0.0.0") == 0) + if (strcmp(ip, "0.0.0.0") == 0) return 0; - logger_log("Incoming connection from %s...",ip); + logger_log("Incoming connection from %s...", ip); char buf[DEFAULT_BUFLEN]; memset(buf, 0, DEFAULT_BUFLEN); int inBytes = recv(sock, buf, DEFAULT_BUFLEN, 0); @@ -155,7 +155,7 @@ int peer_HandleConnection(SOCKET listening, PeerList *peerList, Node_data my, fd } if (buf[0] != '@') { logger_log("Error: Invalid response!"); - sendErrorMSG("INVALID_RESPONSE",sock); + sendErrorMSG("INVALID_RESPONSE", sock); closesocket(sock); return -1; } @@ -200,7 +200,7 @@ int peer_HandleConnection(SOCKET listening, PeerList *peerList, Node_data my, fd free(m.pairs); logger_log("Handshake recived! Sending response!"); char handshake[DEFAULT_BUFLEN]; - sprintf(handshake, "@id=%s&port=%d&version=%s", my.id, my.port,P2P_CURRENT_VERSION); + sprintf(handshake, "@id=%s&port=%d&version=%s", my.id, my.port, P2P_CURRENT_VERSION); if (strlen(my.nick) != 0) { memset(buf, 0, DEFAULT_BUFLEN);