72 lines
No EOL
1.7 KiB
C
72 lines
No EOL
1.7 KiB
C
#define CRT_SECURE_NO_WARNINGS
|
|
#pragma once
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "modules/peer.h"
|
|
#include "modules/webio.h"
|
|
#include "modules/config.h"
|
|
#include "modules/server.h"
|
|
#include "lib/tcp-listener.h"
|
|
|
|
#pragma comment(lib, "ws2_32.lib")
|
|
|
|
SOCKET listening;
|
|
SOCKET web_sock;
|
|
|
|
void closeSocks(){
|
|
logger_log("Closing socket...");
|
|
close(listening);
|
|
close(web_sock);
|
|
|
|
}
|
|
|
|
int main(void) {
|
|
atexit(closeSocks);
|
|
Map config = config_load();
|
|
|
|
Node_data mynode = construct_Mynodedata(config);
|
|
logger_log("Initialising core...");
|
|
|
|
|
|
struct addrinfo *result = NULL;
|
|
result = tcp_createIPv4Socket(&listening, mynode.port, true);
|
|
if (result == NULL) {
|
|
return EXIT_FAILURE;
|
|
}
|
|
int res = tcp_bindnlisten(listening, result, SOMAXCONN);
|
|
if (res != 0) {
|
|
return EXIT_FAILURE;
|
|
}
|
|
//Ez alapvetően akkor hasznos amikor a port 0-ra van állítva, azaz akkor amikor a rendszer random választ egyet.
|
|
|
|
mynode.port = tcp_getSockPort(listening);
|
|
logger_log("Started listening on port %d", mynode.port);
|
|
|
|
fd_set master;
|
|
FD_ZERO(&master);
|
|
FD_SET(listening, &master);
|
|
|
|
//Connecting to peers
|
|
logger_log("Checking peers.txt for peers...");
|
|
PeerList peerList1;
|
|
peer_initList(&peerList1);
|
|
|
|
|
|
WebIO webIo;
|
|
|
|
res = webio_create(config,mynode, &webIo);
|
|
if (res != 0) {
|
|
return EXIT_FAILURE;
|
|
}
|
|
FD_SET(webIo.socket, &master);
|
|
web_sock = webIo.socket;
|
|
logger_log("Started web interface at http://127.0.0.1:%d", tcp_getSockPort(webIo.socket));
|
|
peer_loadPeerList(&peerList1,mynode,&master);
|
|
logger_log("Starting main loop...");
|
|
|
|
serverThread(listening,&master,webIo,peerList1,mynode);
|
|
free(peerList1.array);
|
|
free(config.pairs);
|
|
return 0;
|
|
} |