MCPcopy Create free account
hub / github.com/BernardoGiordano/Checkpoint / init

Method init

3ds/source/server.cpp:372–406  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

370}
371
372void Server::init()
373{
374 serverSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
375 if (serverSocket < 0) {
376 Logging::error("Failed to create socket with error {}: {}", errno, strerror(errno));
377 return;
378 }
379
380 struct sockaddr_in serverAddr;
381 memset(&serverAddr, 0, sizeof(serverAddr));
382 serverAddr.sin_family = AF_INET;
383 serverAddr.sin_port = htons(SERVER_PORT);
384 serverAddr.sin_addr.s_addr = gethostid();
385
386 if (bind(serverSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) != 0) {
387 Logging::error("Failed to bind to port {} with error {}", SERVER_PORT, errno);
388 close(serverSocket);
389 serverSocket = -1;
390 return;
391 }
392
393 if (listen(serverSocket, 5) != 0) {
394 Logging::error("Failed to listen on socket with error {}: {}", errno, strerror(errno));
395 close(serverSocket);
396 serverSocket = -1;
397 return;
398 }
399
400 char ipStr[INET_ADDRSTRLEN];
401 inet_ntop(AF_INET, &(serverAddr.sin_addr), ipStr, INET_ADDRSTRLEN);
402
403 serverRunning.test_and_set();
404 Threads::create(networkLoop);
405 serverAddress = "http://" + std::string(ipStr) + ":" + std::to_string(SERVER_PORT);
406}
407
408void Server::requestStop()
409{

Callers

nothing calls this directly

Calls 5

errorFunction · 0.85
strerrorFunction · 0.85
stringFunction · 0.85
to_stringFunction · 0.85
createFunction · 0.50

Tested by

no test coverage detected