home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.protocols.tcp-ip      TCP and IP network protocols.      14,669 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 14,375 of 14,669   
   TDH1978 to Jorgen Grahn   
   Re: IPv4 header and memory alignment...   
   14 Mar 19 21:37:46   
   
   From: thedeerhunter1978@movie.uni   
      
   On 2019-03-12 09:20:52 +0000, Jorgen Grahn said:   
      
   > In the Linux kernel, they make sure it's safe by aligning that memory,   
   > and knowing things about how the compiler treats structs, more than   
   > what the C language guarantees.   
   >   
   > In my own code, I prefer not to rely on such things.  It gets messy,   
   > and you still need to take care of endianness. I write my own accessor   
   > functions instead:   
   >   
   >    /* assuming buf points to a full IPv4 header   
   >     */   
   >    struct in_addr get_saddr(const unsigned char* buf);   
   >   
   > As a bonus, you get a better type than uint32_t.   
      
   Thank you for your reply.  I agree your method is safer but I assume   
   that, by calling your accessor functions, you will incur a slight   
   run-time overhead.  If you do this for, say, a billion incoming   
   packets, this overhead may become significant.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca