38 lines
		
	
	
		
			878 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			878 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <iostream>
 | 
						|
#include <cstring>
 | 
						|
#include "server/src/server.h"
 | 
						|
#include "server/src/handler.h"
 | 
						|
 | 
						|
using namespace ts::dns;
 | 
						|
 | 
						|
std::vector<sockaddr_storage> bindings() {
 | 
						|
	std::vector<sockaddr_storage> result{};
 | 
						|
 | 
						|
	{
 | 
						|
		sockaddr_in& any_v4{reinterpret_cast<sockaddr_in&>(result.emplace_back())};
 | 
						|
		memset(&any_v4, 0, sizeof(sockaddr_in));
 | 
						|
 | 
						|
		any_v4.sin_family = AF_INET;
 | 
						|
		any_v4.sin_port = htons(1222); //htons(53);
 | 
						|
		any_v4.sin_addr.s_addr = (1UL << 24U) | 127U;
 | 
						|
	}
 | 
						|
 | 
						|
	return result;
 | 
						|
}
 | 
						|
 | 
						|
int main() {
 | 
						|
	std::string error{};
 | 
						|
 | 
						|
	auto handler = std::make_shared<DNSHandler>();
 | 
						|
	WebDNSServer server{handler};
 | 
						|
 | 
						|
	if(!server.start(bindings(), error)) {
 | 
						|
		for(auto& binding : server.bindings())
 | 
						|
			std::cout << " - " << binding->error << "\n";
 | 
						|
		std::cerr << "Failed to start server: " << error << "\n";
 | 
						|
		return 1;
 | 
						|
	}
 | 
						|
 | 
						|
	std::this_thread::sleep_for(std::chrono::seconds{100});
 | 
						|
	return 0;
 | 
						|
} |