[Pdns-dev] Re: [patch] dnspacket endian issue
Norbert Sendetzky
norbert at linuxnetworks.de
Mon Sep 8 16:41:52 CEST 2003
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Monday 08 September 2003 13:56, bert hubert wrote:
> > Here's a small patch to fix an endian problem in the getAnswers()
> > function.
>
> Can you explain to me how you think that this will not break pdns
> on little endian platforms?
ntohl() is a standard macro provided on all systems which is defined
differently on big endian and little endian architectures. On big
endian architectures it does nothing while it resorts the bytes on
little endian architectures.
If I remember the Intel byte order correctly, ntohl() changes
a.b.c.d (network byte order = big endian) to b.a.d.c (host byte order
on little endian architectures - correct me if I am wrong)
itoa() is implemented as outputing an int as string, but on i386 it
expects an int in host byte order. Contrary to this, the parameter is
still in network byte order (big endian output of getLong()), so the
output will be different on big endian and little endian
architectures.
In short: ntohl() changes nothing in SPARC, but corrects the output on
i386.
I hope I've clarified what I've done.
Norbert
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iEYEARECAAYFAj9chyMACgkQxMLs5v5/7eCmtACgqz91pJd0bfyFR9EPo5Nm0s7I
BpwAn0ELqS1VGV3dlo6HucWDAHg7jyYY
=cxVI
-----END PGP SIGNATURE-----
More information about the Pdns-dev
mailing list