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;
 | |
| } |