Fixed some minor issues

This commit is contained in:
Balazs Toldi 2019-11-28 19:29:03 +01:00
parent 937ecf249b
commit ff823fb250
3 changed files with 42 additions and 41 deletions

View file

@ -53,8 +53,8 @@ void map_addPair(Map *m, Pair p) {
Pair map_make_pair(char *key, char *value) { Pair map_make_pair(char *key, char *value) {
Pair result; Pair result;
strcpy(result.key, key); strncpy(result.key, key,65);
strcpy(result.value, value); strncpy(result.value, value,1024);
return result; return result;
} }

View file

@ -4,36 +4,37 @@
// //
#include "config.h" #include "config.h"
Config config_load(){ Config config_load() {
Config cfg; Config cfg;
map_init(&cfg); map_init(&cfg);
FILE * f; FILE *f;
f = fopen("config.ini","r"); f = fopen("config.ini", "r");
if(f != NULL) { if (f != NULL) {
char buf[256], key[65], value[65]; 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; if (buf[0] == '#') continue;
sscanf(buf, "%[^=]=%s\n", key, value); if (sscanf(buf, "%[^=]=%s\n", key, value) == 2) {
map_addPair(&cfg, map_make_pair(key, value)); map_addPair(&cfg, map_make_pair(key, value));
memset(key,0, 65); memset(key, 0, 65);
memset(value,0, 65); memset(value, 0, 65);
memset(buf,0, 256); memset(buf, 0, 256);
}
} }
}else{ } else {
f = fopen("config.ini","w"); f = fopen("config.ini", "w");
fprintf(f,"#Becenév\n" fprintf(f, "#Becenév\n"
"#nickname=Pelda\n" "#nickname=Pelda\n"
"#A program által használt port (Alapértelmezett: %s)\n" "#A program által használt port (Alapértelmezett: %s)\n"
"port=%s\n" "port=%s\n"
"#Ezne a porton lesz elérhető a felhasználói felület (Alapértelmezett: %s)\n" "#Ezne a porton lesz elérhető a felhasználói felület (Alapértelmezett: %s)\n"
"interface-port=%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" "#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" "interface-folder=%s\n"
"#A felhasználói felület csak ezen a gépen érhető elő (Alapértelmezett: true;Ajánlott)\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); "interface-local=true", DEFAULT_PORT, DEFAULT_PORT, DEFAULT_INTERFACE_PORT, DEFAULT_INTERFACE_PORT,
DEFAULT_WWW_FOLDER, DEFAULT_WWW_FOLDER);
fclose(f); fclose(f);
} }

View file

@ -7,9 +7,10 @@
//Kouhai peer //Kouhai peer
//Amikor mi csatlakozunk egy peerhez //Amikor mi csatlakozunk egy peerhez
int peer_ConnetctTo(char *ip, int port, PeerList *peerList, Node_data my, fd_set *fdSet) { 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; return 0;
if (peer_IP_isFound(*peerList, ip, port))
return 1;
struct sockaddr_in hint; struct sockaddr_in hint;
hint.sin_family = AF_INET; hint.sin_family = AF_INET;
hint.sin_port = htons(port); 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..."); logger_log("Connected to peer!Sending handshake...");
char handshake[DEFAULT_BUFLEN]; 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) { if (strlen(my.nick) != 0) {
char buf[DEFAULT_BUFLEN]; char buf[DEFAULT_BUFLEN];
memset(buf, 0, 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] != '@') { if (buf[0] != '@') {
logger_log("Error: Invalid response!"); logger_log("Error: Invalid response!");
sendErrorMSG("INVALID_RESPONSE",sock); sendErrorMSG("INVALID_RESPONSE", sock);
closesocket(sock); closesocket(sock);
return -1; return -1;
} }
Map m = getPacketData(buf); Map m = getPacketData(buf);
if(m.pairs == NULL){ if (m.pairs == NULL) {
free(m.pairs); free(m.pairs);
return -1; return -1;
} }
@ -79,7 +80,7 @@ int peer_ConnetctTo(char *ip, int port, PeerList *peerList, Node_data my, fd_set
strcpy(node.id, id); strcpy(node.id, id);
} else { } else {
logger_log("Error: Invalid response!ID not found in handshake."); logger_log("Error: Invalid response!ID not found in handshake.");
sendErrorMSG("ID_NOT_FOUND",sock); sendErrorMSG("ID_NOT_FOUND", sock);
free(m.pairs); free(m.pairs);
closesocket(sock); closesocket(sock);
return -1; 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); node.port = atoi(port_str);
} else { } else {
logger_log("Error: Invalid response!Port not found in handshake."); logger_log("Error: Invalid response!Port not found in handshake.");
sendErrorMSG("PORT_NOT_FOUND",sock); sendErrorMSG("PORT_NOT_FOUND", sock);
free(m.pairs); free(m.pairs);
closesocket(sock); closesocket(sock);
return -1; 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 *peers = map_getValue(m, "peers");
char *rest = peers; char *rest = peers;
if (peers != NULL) { if (peers != NULL) {
char *tmp = strtok(peers, ","); char *tmp = strtok_s(peers, ",", &rest);
while (tmp != NULL) { while (tmp != NULL) {
char ip1[NI_MAXHOST]; char ip1[NI_MAXHOST];
int port1; int port1;
if (sscanf(tmp, "%[^:]:%d", ip1, &port1) != 2) { if (sscanf(tmp, "%[^:]:%d", ip1, &port1) != 2) {
tmp = strtok_s(NULL, ",",&rest); tmp = strtok_s(NULL, ",", &rest);
continue; 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); free(m.pairs);
@ -141,9 +141,9 @@ int peer_HandleConnection(SOCKET listening, PeerList *peerList, Node_data my, fd
memset(ip, 0, NI_MAXHOST); memset(ip, 0, NI_MAXHOST);
inet_ntop(AF_INET, &client.sin_addr, ip, 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; return 0;
logger_log("Incoming connection from %s...",ip); logger_log("Incoming connection from %s...", ip);
char buf[DEFAULT_BUFLEN]; char buf[DEFAULT_BUFLEN];
memset(buf, 0, DEFAULT_BUFLEN); memset(buf, 0, DEFAULT_BUFLEN);
int inBytes = recv(sock, buf, DEFAULT_BUFLEN, 0); 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] != '@') { if (buf[0] != '@') {
logger_log("Error: Invalid response!"); logger_log("Error: Invalid response!");
sendErrorMSG("INVALID_RESPONSE",sock); sendErrorMSG("INVALID_RESPONSE", sock);
closesocket(sock); closesocket(sock);
return -1; return -1;
} }
@ -200,7 +200,7 @@ int peer_HandleConnection(SOCKET listening, PeerList *peerList, Node_data my, fd
free(m.pairs); free(m.pairs);
logger_log("Handshake recived! Sending response!"); logger_log("Handshake recived! Sending response!");
char handshake[DEFAULT_BUFLEN]; 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) { if (strlen(my.nick) != 0) {
memset(buf, 0, DEFAULT_BUFLEN); memset(buf, 0, DEFAULT_BUFLEN);