FreeRTOS_DNS.c returning ip address in reverse - I Think

Using freertos Plus, got it ported to my hardware and super pleased with how this is going. Got great help here on the forums as well. Now I’m connected to the internet i’m having a go at mqtt. Trying plain text with no credentials for now and hoping to secure it with tls and credentials next. Just having trouble connecting to the server and i’ve found that the result of the output of prvGetHostByName is an uint32. Here’s the problem, if i put the int generated into this site.
I comes up as the reverse of what i wanted. So my server address is w.x.y.z. but the result of the lookup returns z.y.x.w at least according to the the site i listed. Is this normal? does this get changed later by the driver or something? Or might this be the reason my connection to the server fails. the file version of FreeRTOS_DNS.c is V2.2.1.

but maybe that website is wrong because this gives the correct answer.

    uint32_t tmp = FreeRTOS_gethostbyname( pcHostName );

FreeRTOS_inet_ntoa( tmp, ( char * ) cBuffer );

Better don’t use the non-standard uint32_t representation directly and use the provided converter routines. They are fine and take also care about big/little endian machines.
The website isn’t wrong, but assumes a certain binary representation in network byte order which is big endian. And your ARM is probably little endian…

got it ported to my hardware and super pleased with how this is going

Great, good to hear.

Like Hartmut: says, I think it is easier to accept and work with the network-endian numbers.

The representation of IPv4 addresses in BSD- or POSIX style libraries is in network order.

That looks strange on a little-endian platform, as though the address is reversed: in stead of

In FreeRTOS_Socket.h you will see two implementations of FreeRTOS_inet_ntoa():

    #define FreeRTOS_inet_ntoa( ulIPAddress, pcBuffer ) ...
    #define FreeRTOS_inet_ntoa( ulIPAddress, pcBuffer ) ...

And I’m sure you have also seen the translators: FreeRTOS_ntohl(), FreeRTOS_ntohs() etc. They translate either from net to host, or from host to net, either 16- or 32-bits.