[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