*/
static inline void htoun16(void *network, u_int16_t host)
{
+ char *unaligned = (char*)network;
+
host = htons(host);
- memcpy(network, &host, sizeof(host));
+ memcpy(unaligned, &host, sizeof(host));
}
/**
*/
static inline void htoun32(void *network, u_int32_t host)
{
+ char *unaligned = (char*)network;
+
host = htonl(host);
- memcpy(network, &host, sizeof(host));
+ memcpy((char*)unaligned, &host, sizeof(host));
}
/**
*/
static inline u_int16_t untoh16(void *network)
{
+ char *unaligned = (char*)network;
u_int16_t tmp;
- memcpy(&tmp, network, sizeof(tmp));
+ memcpy(&tmp, unaligned, sizeof(tmp));
return ntohs(tmp);
}
*/
static inline u_int32_t untoh32(void *network)
{
+ char *unaligned = (char*)network;
u_int32_t tmp;
- memcpy(&tmp, network, sizeof(tmp));
+ memcpy(&tmp, unaligned, sizeof(tmp));
return ntohl(tmp);
}