diff options
author | Håkon Nessjøen <haakon.nessjoen@gmail.com> | 2011-10-31 01:43:34 -0700 |
---|---|---|
committer | Håkon Nessjøen <haakon.nessjoen@gmail.com> | 2011-10-31 01:43:34 -0700 |
commit | 0df0f028bb355547ac50ea5756edb14e3d12f562 (patch) | |
tree | adbff4ace282fb39574d6a19de6cef643da94568 | |
parent | 18139b6417e6d09a9c8ddf3291179d77c19bde5e (diff) | |
parent | a60f40dd38f7f2d3b621bff914589c5be7803165 (diff) | |
download | MAC-Telnet-0df0f028bb355547ac50ea5756edb14e3d12f562.tar.gz MAC-Telnet-0df0f028bb355547ac50ea5756edb14e3d12f562.zip |
Merge pull request #2 from bbonev/master
fix uptime byte order, by bbonev
-rw-r--r-- | mactelnetd.c | 13 | ||||
-rw-r--r-- | protocol.c | 9 |
2 files changed, 4 insertions, 18 deletions
diff --git a/mactelnetd.c b/mactelnetd.c index 0474d9b..e9c2042 100644 --- a/mactelnetd.c +++ b/mactelnetd.c @@ -17,12 +17,14 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #define _XOPEN_SOURCE 600 +#define _BSD_SOURCE #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <fcntl.h> #include <signal.h> +#include <endian.h> #include <time.h> #include <arpa/inet.h> #include <net/ethernet.h> @@ -773,17 +775,8 @@ void mndp_broadcast() { return; } - uptime = s_sysinfo.uptime; - /* Seems like ping uptime is transmitted as little endian? */ -#if BYTE_ORDER == BIG_ENDIAN - uptime = ( - ((uptime & 0x000000FF) << 24) + - ((uptime & 0x0000FF00) << 8) + - ((uptime & 0x00FF0000) >> 8) + - ((uptime & 0xFF000000) >> 24) - ); -#endif + uptime = htole32(s_sysinfo.uptime); for (i = 0; i < sockets_count; ++i) { struct mt_mndp_hdr *header = (struct mt_mndp_hdr *)&(pdata.data); @@ -353,14 +353,7 @@ struct mt_mndp_info *parse_mndp(const unsigned char *data, const int packet_len) case MT_MNDPTYPE_TIMESTAMP: memcpy(&(packet.uptime), p, 4); /* Seems like ping uptime is transmitted as little endian? */ -#if BYTE_ORDER == BIG_ENDIAN - packet.uptime = ( - ((packet.uptime & 0x000000FF) << 24) + - ((packet.uptime & 0x0000FF00) << 8) + - ((packet.uptime & 0x00FF0000) >> 8) + - ((packet.uptime & 0xFF000000) >> 24) - ); -#endif + packet.uptime = le32toh(packet.uptime); break; case MT_MNDPTYPE_HARDWARE: |