// Search string
char* string;
char country_code[3];
+ uint32_t asn;
// Index of the AS we are looking at
unsigned int as_index;
return 0;
}
+LOC_EXPORT int loc_database_enumerator_set_asn(
+ struct loc_database_enumerator* enumerator, unsigned int asn) {
+ enumerator->asn = asn;
+
+ return 0;
+}
+
LOC_EXPORT struct loc_as* loc_database_enumerator_next_as(struct loc_database_enumerator* enumerator) {
struct loc_database* db = enumerator->db;
struct loc_as* as;
continue;
}
+ // Skip if the ASN does not match
+ if (e->asn && !loc_network_match_asn(*network, e->asn)) {
+ loc_network_unref(*network);
+ continue;
+ }
+
return 0;
}
}
loc_database_enumerator_next_as;
loc_database_enumerator_next_network;
loc_database_enumerator_ref;
+ loc_database_enumerator_set_asn;
loc_database_enumerator_set_country_code;
loc_database_enumerator_set_string;
loc_database_enumerator_unref;
# Network
loc_network_get_asn;
loc_network_get_country_code;
+ loc_network_match_asn;
loc_network_match_country_code;
loc_network_new;
loc_network_new_from_string;
int loc_database_enumerator_set_string(struct loc_database_enumerator* enumerator, const char* string);
int loc_database_enumerator_set_country_code(struct loc_database_enumerator* enumerator, const char* country_code);
+int loc_database_enumerator_set_asn(struct loc_database_enumerator* enumerator, unsigned int asn);
struct loc_as* loc_database_enumerator_next_as(struct loc_database_enumerator* enumerator);
struct loc_network* loc_database_enumerator_next_network(struct loc_database_enumerator* enumerator);
uint32_t loc_network_get_asn(struct loc_network* network);
int loc_network_set_asn(struct loc_network* network, uint32_t asn);
+int loc_network_match_asn(struct loc_network* network, uint32_t asn);
#ifdef LIBLOC_PRIVATE
return 0;
}
+LOC_EXPORT int loc_network_match_asn(struct loc_network* network, uint32_t asn) {
+ return network->asn == asn;
+}
+
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++) {