boost::asio resolver -> Host not found (authoritative)



  • Hallo Leute

    Ich wollte gerne wissen ob jemand von euch mal diesen Fehler bekommen hat und wie er ihn gelöst hat.
    Soweit ich das verstanden habe, ist Linux daran Schuld, aber wie behebt man diesen Fehler?

    Durch Google habe ich erfahren, dass einige Leute die Fehlermeldung bekommen haben, aber eine Antwort darauf gab es keine.

    Den Resolver stelle ich so ein:

    boost::asio::ip::tcp::resolver::query query(address, "80");
    m_resolver.async_resolve(query, boost::bind(&Connection::resolve_handler, this, boost::asio::placeholders::error, boost::asio::placeholders::iterator));
    

    Der Handler dazu schaut so aus:

    void Connection::resolve_handler(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator endpoint_iterator) {
    	if(!error) {
    		boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
    		m_forwardSocket.async_connect(endpoint, boost::bind(&Connection::connect_handler, this, boost::asio::placeholders::error, ++endpoint_iterator));
    	} else {
    		std::cerr << "Error: " << error.message() << std::endl; // Hier erscheint dann: "Hot not found (authoritative) -> 'root' schafft es auch nicht"
    	}
    }
    

    Das Programm läuft auf Linux.

    Wäre für jede Hilfe dankbar!



  • Ohne die boost Implementierung zu kennen, würde ich mal behaupten, dass der host einfach nicht aufgelöst werden kann. Was steht in 'address' denn drin?



  • Ein einfache Domain: 'www.google.com'



  • Asymmetrischer schrieb:

    Ein einfache Domain: 'www.google.com'

    DNS-Server? Kann der Name aufgelöst werden? Ich vermute nämlich nicht ...



  • FrEEzE2046 schrieb:

    Asymmetrischer schrieb:

    Ein einfache Domain: 'www.google.com'

    DNS-Server? Kann der Name aufgelöst werden? Ich vermute nämlich nicht ...

    Ja er kann sie nicht auflösen, aber wieso nicht?
    Ein "host www.google.com" schafft es, der DNS Server sollte deswegen kein Problem darstellen. 😞
    Gebe ich die IP ein, funktioniert alles.
    Ich dachte ja zuerst daran, dass ich die Funktionen von boost::asio falsch aufrufe, aber in den Beispielen wird es auch so gemacht.

    Vielen Dank für deine Antworten bisher!

    Sehr frustrierend...



  • Hab das Problem gelöst...

    Falls IRGENDWER mal den selben Fehler wie ich gemacht hat:
    In meiner Adresse war ein '\r' versteckt. Lösung: boost::trim oder einfach nur einen delimiter beim Einlesen angeben.

    +1 für mich 🤡


Anmelden zum Antworten