1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- // SPDX-License-Identifier: GPL-3.0-or-later
- #ifndef NETDATA_REGISTRY_INTERNALS_H_H
- #define NETDATA_REGISTRY_INTERNALS_H_H 1
- #include "registry.h"
- #define REGISTRY_URL_FLAGS_DEFAULT 0x00
- #define REGISTRY_URL_FLAGS_EXPIRED 0x01
- #define REGISTRY_DICTIONARY_OPTIONS (DICT_OPTION_VALUE_LINK_DONT_CLONE | DICT_OPTION_NAME_LINK_DONT_CLONE | DICT_OPTION_SINGLE_THREADED)
- #define REGISTRY_VERIFY_COOKIES_GUID "11111111-2222-3333-4444-555555555555"
- #define is_dummy_person(person_guid) (strcmp(person_guid, REGISTRY_VERIFY_COOKIES_GUID) == 0)
- // ----------------------------------------------------------------------------
- // COMMON structures
- struct registry {
- int enabled;
- netdata_mutex_t lock;
- // entries counters / statistics
- unsigned long long persons_count;
- unsigned long long machines_count;
- unsigned long long usages_count;
- unsigned long long persons_urls_count;
- unsigned long long machines_urls_count;
- unsigned long long log_count;
- // configuration
- unsigned long long save_registry_every_entries;
- char *registry_domain;
- char *hostname;
- char *registry_to_announce;
- char *cloud_base_url;
- time_t persons_expiration; // seconds to expire idle persons
- int verify_cookies_redirects;
- int enable_cookies_samesite_secure;
- size_t max_url_length;
- size_t max_name_length;
- // file/path names
- char *pathname;
- char *db_filename;
- char *log_filename;
- char *machine_guid_filename;
- // open files
- FILE *log_fp;
- // the database
- DICTIONARY *persons; // dictionary of REGISTRY_PERSON *, with key the REGISTRY_PERSON.guid
- DICTIONARY *machines; // dictionary of REGISTRY_MACHINE *, with key the REGISTRY_MACHINE.guid
- ARAL *persons_aral;
- ARAL *machines_aral;
- ARAL *person_urls_aral;
- ARAL *machine_urls_aral;
- struct aral_statistics aral_stats;
- };
- #include "registry_machine.h"
- #include "registry_person.h"
- #include "registry.h"
- extern struct registry registry;
- // REGISTRY LOW-LEVEL REQUESTS (in registry-internals.c)
- REGISTRY_PERSON *registry_request_access(const char *person_guid, char *machine_guid, char *url, char *name, time_t when);
- REGISTRY_PERSON *registry_request_delete(const char *person_guid, char *machine_guid, char *url, char *delete_url, time_t when);
- REGISTRY_MACHINE *registry_request_machine(const char *person_guid, char *request_machine, STRING **hostname);
- // REGISTRY LOG (in registry_log.c)
- void registry_log(char action, REGISTRY_PERSON *p, REGISTRY_MACHINE *m, STRING *u, const char *name);
- int registry_log_open(void);
- void registry_log_close(void);
- void registry_log_recreate(void);
- ssize_t registry_log_load(void);
- // REGISTRY DB (in registry_db.c)
- int registry_db_save(void);
- size_t registry_db_load(void);
- int registry_db_should_be_saved(void);
- #endif //NETDATA_REGISTRY_INTERNALS_H_H
|