[Pdns-dev] endianness probleem?
Remco Post
remco at pipsworld.nl
Fri Feb 6 00:21:10 CET 2004
Hi all,
even kijken of ik het snap:
inline void DNSPacket::spoofID(u_int16_t id)
{
stringbuffer[1]=(id>>8)&0xff;
stringbuffer[0]=id&0xff;
d.id=id;
}
id is hier native endian, op sparc dus big-endian, daar worden shifts
en ands op gedaan. De richting van die shift zou op een big-endian
systeem (sparc) de andere kant op moeten zijn dan op een little-endian
systeem (intel) om op network-endian uit te komen, maar is dat niet. En
daarom worden de resultaten van het recursor-backend weggegooid als
gespoofed (untracked) want id wordt niet eerst network-endian gemaakt?
En nun niet heel verbaasd zijn als ik na 5 jaar alleen maar sed, awk,
perl, en sh niet heel goed meer c++ parse, een taal die ik toch al
niet echt ooit geleerd heb :)
--
Met vriendelijke groeten,
Remco Post
SARA - Reken- en Netwerkdiensten http://www.sara.nl
High Performance Computing Tel. +31 20 592 8008 Fax. +31 20 668 3167
"I really didn't foresee the Internet. But then, neither did the
computer industry. Not that that tells us very much of course - the
computer industry didn't even foresee that the century was going
to end." -- Douglas Adams
More information about the Pdns-dev
mailing list