]>
git.ipfire.org Git - people/ms/libloc.git/blob - src/loc/database.h
2 libloc - A library to determine the location of someone on the Internet
4 Copyright (C) 2017 IPFire Development Team <info@ipfire.org>
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
17 #ifndef LIBLOC_DATABASE_H
18 #define LIBLOC_DATABASE_H
20 #include <netinet/in.h>
24 #include <loc/libloc.h>
25 #include <loc/network.h>
29 int loc_database_new(struct loc_ctx
* ctx
, struct loc_database
** database
, FILE* f
);
30 struct loc_database
* loc_database_ref(struct loc_database
* db
);
31 struct loc_database
* loc_database_unref(struct loc_database
* db
);
33 time_t loc_database_created_at(struct loc_database
* db
);
34 const char* loc_database_get_vendor(struct loc_database
* db
);
35 const char* loc_database_get_description(struct loc_database
* db
);
36 const char* loc_database_get_license(struct loc_database
* db
);
38 int loc_database_get_as(struct loc_database
* db
, struct loc_as
** as
, uint32_t number
);
39 size_t loc_database_count_as(struct loc_database
* db
);
41 int loc_database_lookup(struct loc_database
* db
,
42 struct in6_addr
* address
, struct loc_network
** network
);
43 int loc_database_lookup_from_string(struct loc_database
* db
,
44 const char* string
, struct loc_network
** network
);
46 struct loc_database_enumerator
;
47 int loc_database_enumerator_new(struct loc_database_enumerator
** enumerator
, struct loc_database
* db
);
48 struct loc_database_enumerator
* loc_database_enumerator_ref(struct loc_database_enumerator
* enumerator
);
49 struct loc_database_enumerator
* loc_database_enumerator_unref(struct loc_database_enumerator
* enumerator
);