Open redDott opened 5 years ago
Hi,
First of all: I edited your comment to enable C++ highlighting and make it more readable, I hope that's okay.
I haven't worked with the IPv6 stack by now, so I don't know about the common pitfalls there. In general, the HTTPServer::setupSocket(), HTTPConnection::initialize(), HTTPConnection::closeConnection() and maybe HTTPServer::teardownSocket() methods most likely will need adjustment, as they deal with socket creation and teardown; methods in HTTPServer for the server socket, and methods in HTTPConnection for the client-specific socket.
And then there are writeBuffer() and readBytesToBuffer() in HTTPConnection, which handle the actual data, maybe they need other parameter types as well.
This should be all functions that make direct calls to the socket API, so that's the first thing I would look at, if I wanted to implement IPv6 support.
Then, these methods are all overridden in the HTTPS version of the classes, to wrap the plain socket with a TLS layer. Once the plain HTTP variant is running, these methods have to be investigated to support HTTPS as well. I assume that will be the easier part.
Sadly, I don't have the capacity at the moment to analyze why exactly your code doesn't work.
Hi I've tried you HTTPS-and-HTTP.ino excample and it works fine for IPv4. Currently I'm trying to use IPv6 instead. I have configured the WIFI to get an IPv6 addres which works fine I can ping the address.
then I have changed your code of HTTPServer to use IPV6 sockets.
But connecting with curl to the IPv6 address i'm getting a connection refused.
When the ESP32 is not running I'm getting timeouts for ping and curl. If I try curl with IPv4 I get the expected output. Any hints where I have to look in the code for IPv6 support? Regards Matthias