From a7a3d958dfe5769fbe14f7917eaa3f45201ebbb2 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 15 Oct 2019 13:54:42 +0000 Subject: [PATCH] country: Use one function to copy country codes Signed-off-by: Michael Tremer --- src/country.c | 4 ++-- src/loc/country.h | 2 +- src/network.c | 16 +++++----------- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/country.c b/src/country.c index 6e9bfaa..ee40d88 100644 --- a/src/country.c +++ b/src/country.c @@ -122,7 +122,7 @@ int loc_country_new_from_database_v0(struct loc_ctx* ctx, struct loc_stringpool* char buffer[3]; // Read country code - loc_country_copy_code(buffer, dbobj->code); + loc_country_code_copy(buffer, dbobj->code); // Create a new country object int r = loc_country_new(ctx, country, buffer); @@ -130,7 +130,7 @@ int loc_country_new_from_database_v0(struct loc_ctx* ctx, struct loc_stringpool* return r; // Continent Code - loc_country_copy_code(buffer, dbobj->continent_code); + loc_country_code_copy(buffer, dbobj->continent_code); r = loc_country_set_continent_code(*country, buffer); if (r) diff --git a/src/loc/country.h b/src/loc/country.h index f650ade..e247d52 100644 --- a/src/loc/country.h +++ b/src/loc/country.h @@ -64,7 +64,7 @@ static inline int loc_country_code_is_valid(const char* cc) { return 1; } -static inline void loc_country_copy_code(char* dst, const char* src) { +static inline void loc_country_code_copy(char* dst, const char* src) { for (unsigned int i = 0; i < 2; i++) { dst[i] = src[i]; } diff --git a/src/network.c b/src/network.c index 387e18d..87ae1c5 100644 --- a/src/network.c +++ b/src/network.c @@ -300,9 +300,7 @@ LOC_EXPORT int loc_network_set_country_code(struct loc_network* network, const c if (!loc_country_code_is_valid(country_code)) return -EINVAL; - for (unsigned int i = 0; i < 3; i++) { - network->country_code[i] = country_code[i]; - } + loc_country_code_copy(network->country_code, country_code); return 0; } @@ -346,9 +344,7 @@ LOC_EXPORT int loc_network_match_flag(struct loc_network* network, uint32_t flag LOC_EXPORT int loc_network_to_database_v0(struct loc_network* network, struct loc_database_network_v0* dbobj) { // Add country code - for (unsigned int i = 0; i < 2; i++) { - dbobj->country_code[i] = network->country_code[i] ? network->country_code[i] : '\0'; - } + loc_country_code_copy(dbobj->country_code, network->country_code); // Add ASN dbobj->asn = htobe32(network->asn); @@ -361,16 +357,14 @@ LOC_EXPORT int loc_network_to_database_v0(struct loc_network* network, struct lo LOC_EXPORT int loc_network_new_from_database_v0(struct loc_ctx* ctx, struct loc_network** network, struct in6_addr* address, unsigned int prefix, const struct loc_database_network_v0* dbobj) { + char country_code[3]; + int r = loc_network_new(ctx, network, address, prefix); if (r) return r; // Import country code - char country_code[3]; - for (unsigned int i = 0; i < 2; i++) { - country_code[i] = dbobj->country_code[i]; - } - country_code[2] = '\0'; + loc_country_code_copy(country_code, dbobj->country_code); r = loc_network_set_country_code(*network, country_code); if (r) -- 2.39.2