[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