@@ -74,6 +74,7 @@ struct type_descriptor {
7474};
7575
7676#if _WIN32
77+ #include <basetsd.h>
7778typedef SSIZE_T ssize_t ;
7879#define strncasecmp (s1 , s2 , n ) _strnicmp(s1, s2, n)
7980#else
@@ -121,7 +122,7 @@ static zone_really_inline ssize_t check_ttl(
121122 SYNTAX_ERROR (parser , "Missing %s in %s" , NAME (field ), TNAME (type ));
122123
123124 memcpy (& number , data , sizeof (number ));
124- number = ntohl (number );
125+ number = be32toh (number );
125126
126127 if (number > INT32_MAX )
127128 SEMANTIC_ERROR (parser , "Invalid %s in %s" , NAME (field ), TNAME (type ));
@@ -996,9 +997,9 @@ static int32_t parse_loc_rdata(
996997 return result ;
997998north_south :
998999 if (token -> data [0 ] == 'N' )
999- latitude = htonl ((1u <<31 ) + degrees );
1000+ latitude = htobe32 ((1u <<31 ) + degrees );
10001001 else if (token -> data [1 ] == 'S' )
1001- latitude = htonl ((1u <<31 ) - degrees );
1002+ latitude = htobe32 ((1u <<31 ) - degrees );
10021003 else
10031004 SYNTAX_ERROR (parser , "Invalid %s in %s" , NAME (& fields [4 ]), TNAME (type ));
10041005
@@ -1024,9 +1025,9 @@ static int32_t parse_loc_rdata(
10241025 return result ;
10251026east_west :
10261027 if (token -> data [0 ] == 'E' )
1027- longitude = htonl ((1u <<31 ) + degrees );
1028+ longitude = htobe32 ((1u <<31 ) + degrees );
10281029 else if (token -> data [0 ] == 'W' )
1029- longitude = htonl ((1u <<31 ) - degrees );
1030+ longitude = htobe32 ((1u <<31 ) - degrees );
10301031 else
10311032 SYNTAX_ERROR (parser , "Invalid %s in %s" , NAME (& fields [5 ]), TNAME (type ));
10321033
@@ -1039,7 +1040,7 @@ static int32_t parse_loc_rdata(
10391040 if (scan_altitude (token -> data , token -> length , & altitude ) == -1 )
10401041 SYNTAX_ERROR (parser , "Invalid %s in %s" , NAME (& fields [6 ]), TNAME (type ));
10411042
1042- altitude = htonl (altitude );
1043+ altitude = htobe32 (altitude );
10431044 memcpy (& parser -> rdata -> octets [12 ], & altitude , sizeof (altitude ));
10441045
10451046 // size
@@ -1827,7 +1828,7 @@ static int32_t parse_hip_rdata(
18271828
18281829 if (parser -> rdata -> length > 65535u + 4u + hit_length )
18291830 SYNTAX_ERROR (parser , "Invalid %s in %s" , NAME (& type -> rdata .fields [4 ]), TNAME (type ));
1830- uint16_t pk_length = htons ((uint16_t )((parser -> rdata -> length - hit_length ) - 4 ));
1831+ uint16_t pk_length = htobe16 ((uint16_t )((parser -> rdata -> length - hit_length ) - 4 ));
18311832 memcpy (& parser -> rdata -> octets [2 ], & pk_length , sizeof (pk_length ));
18321833
18331834 lex (parser , token );
0 commit comments