Fix a serialisation problem on RISC platforms
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
diff --git a/src/utils/wire.c b/src/utils/wire.c
index b47dac7..bf60ec9 100644
--- a/src/utils/wire.c
+++ b/src/utils/wire.c
@@ -30,12 +30,18 @@
uint32_t nn_getl (const uint8_t *buf)
{
- return ntohl (*(uint32_t*) buf);
+ return (((uint32_t) buf [0]) << 24) |
+ (((uint32_t) buf [1]) << 16) |
+ (((uint32_t) buf [2]) << 8) |
+ ((uint32_t) buf [3]);
}
void nn_putl (uint8_t *buf, uint32_t val)
{
- *(uint32_t*) buf = htonl (val);
+ buf [0] = (uint8_t) (((val) >> 24) & 0xff);
+ buf [1] = (uint8_t) (((val) >> 16) & 0xff);
+ buf [2] = (uint8_t) (((val) >> 8) & 0xff);
+ buf [3] = (uint8_t) (val & 0xff);
}
uint64_t nn_getll (const uint8_t *buf)