Lesser General Public License for more details.
*/
-#include <arpa/inet.h>
+#include <endian.h>
#include <errno.h>
#include <stddef.h>
#include <stdint.h>
DEBUG(db->ctx, "Magic value matches\n");
// Parse version
- db->version = ntohs(magic.version);
+ db->version = be16toh(magic.version);
DEBUG(db->ctx, "Database version is %u\n", db->version);
return 0;
// Copy over data
db->created_at = be64toh(header.created_at);
- db->vendor = ntohl(header.vendor);
- db->description = ntohl(header.description);
+ db->vendor = be32toh(header.vendor);
+ db->description = be32toh(header.description);
// Open pool
- off_t pool_offset = ntohl(header.pool_offset);
- size_t pool_length = ntohl(header.pool_length);
+ off_t pool_offset = be32toh(header.pool_offset);
+ size_t pool_length = be32toh(header.pool_length);
int r = loc_stringpool_open(db->ctx, &db->pool,
db->file, pool_length, pool_offset);
return r;
// AS section
- off_t as_offset = ntohl(header.as_offset);
- size_t as_length = ntohl(header.as_length);
+ off_t as_offset = be32toh(header.as_offset);
+ size_t as_length = be32toh(header.as_length);
r = loc_database_read_as_section_v0(db, as_offset, as_length);
if (r)
Lesser General Public License for more details.
*/
-#include <arpa/inet.h>
#include <endian.h>
#include <errno.h>
#include <stdio.h>
magic->magic[i] = LOC_DATABASE_MAGIC[i];
// Set version
- magic->version = htons(LOC_DATABASE_VERSION);
+ magic->version = htobe16(LOC_DATABASE_VERSION);
}
static void align_page_boundary(off_t* offset, FILE* f) {
struct loc_database_header_v0* header, off_t* offset, FILE* f) {
// Save the offset of the pool section
DEBUG(writer->ctx, "Pool starts at %jd bytes\n", *offset);
- header->pool_offset = htonl(*offset);
+ header->pool_offset = htobe32(*offset);
// Write the pool
size_t pool_length = loc_stringpool_write(writer->pool, f);
*offset += pool_length;
DEBUG(writer->ctx, "Pool has a length of %zu bytes\n", pool_length);
- header->pool_length = htonl(pool_length);
+ header->pool_length = htobe32(pool_length);
return 0;
}
static int loc_database_write_as_section(struct loc_writer* writer,
struct loc_database_header_v0* header, off_t* offset, FILE* f) {
DEBUG(writer->ctx, "AS section starts at %jd bytes\n", *offset);
- header->as_offset = htonl(*offset);
+ header->as_offset = htobe32(*offset);
size_t as_length = 0;
}
DEBUG(writer->ctx, "AS section has a length of %zu bytes\n", as_length);
- header->as_length = htonl(as_length);
+ header->as_length = htobe32(as_length);
return 0;
}
// Make the header
struct loc_database_header_v0 header;
- header.vendor = htonl(writer->vendor);
- header.description = htonl(writer->description);
+ header.vendor = htobe32(writer->vendor);
+ header.description = htobe32(writer->description);
time_t now = time(NULL);
header.created_at = htobe64(now);