mirror of
https://github.com/netdata/netdata.git
synced 2025-04-28 06:32:30 +00:00

* split rrdfunctions streaming and progress * simplified internal inline functions API * split rrdfunctions inflight management * split rrd functions exporters * renames * base dyncfg structure * config pluginsd * intercept dyncfg function calls * loading and saving of dyncfg metadata and data * save metadata and payload to a single file; added code to update the plugins with jobs and saved configs * basic working unit test * added payload to functions execution * removed old dyncfg code that is not needed any more * more cleanup * cleanup sender for functions with payload * dyncfg functions are not exposed as functions * remaining work to avoid indexing the \0 terminating character in dictionary keys * added back old dyncfg plugins.d commands as noop, to allow plugins continue working * working api; working streaming; * updated plugins.d documentation * aclk and http api requests share the same header parsing logic * added source type internal * fixed crashes * added god mode for tests * fixes * fixed messages * save host machine guids to configs * cleaner manipulation of supported commands * the functions event loop for external plugins can now process dyncfg requests * unified internal and external plugins dyncfg API * Netdata serves schema requests from /etc/netdata/schema.d and /var/lib/netdata/conf.d/schema.d * cleanup and various fixes; fixed bug in previous dyncfg implementation on streaming that was sending the paylod in a way that allowed other streaming commands to be multiplexed * internals go to a separate header file * fix duplicate ACLK requests sent by aclk queue mechanism * use fstat instead of stat * working api * plugin actions renamed to create and delete; dyncfg files are removed only from user actions * prevent deadlock by using the react callback * fix for string_strndupz() * better dyncfg unittests * more tests at the unittests * properly detect dyncfg functions * hide config functions from the UI * tree response improvements * send the initial update with payload * determine tty using stdout, not stderr * changes to statuses, cleanup and the code to bring all business logic into interception * do not crash when the status is empty * functions now propagate the source of the requests to plugins * avoid warning about unused functions * in the count at items for attention, do not count the orphan entries * save source into dyncfg * make the list null terminated * fixed invalid comparison * prevent memory leak on duplicated headers; log x-forwarded-for * more unit tests * added dyncfg unittests into the default unittests * more unit tests and fixes * more unit tests and fixes * fix dictionary unittests * config functions require admin access
37 lines
1.2 KiB
C
37 lines
1.2 KiB
C
|
|
#ifndef NETDATA_STRING_H
|
|
#define NETDATA_STRING_H 1
|
|
|
|
#include "../libnetdata.h"
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// STRING implementation
|
|
|
|
typedef struct netdata_string STRING;
|
|
|
|
STRING *string_strdupz(const char *str);
|
|
STRING *string_strndupz(const char *str, size_t len);
|
|
|
|
STRING *string_dup(STRING *string);
|
|
void string_freez(STRING *string);
|
|
size_t string_strlen(STRING *string);
|
|
const char *string2str(STRING *string) NEVERNULL;
|
|
|
|
// keep common prefix/suffix and replace everything else with [x]
|
|
STRING *string_2way_merge(STRING *a, STRING *b);
|
|
|
|
static inline int string_cmp(STRING *s1, STRING *s2) {
|
|
// STRINGs are deduplicated, so the same strings have the same pointer
|
|
// when they differ, we do the typical strcmp() comparison
|
|
return (s1 == s2)?0:strcmp(string2str(s1), string2str(s2));
|
|
}
|
|
|
|
static inline int string_strcmp(STRING *string, const char *s) {
|
|
return strcmp(string2str(string), s);
|
|
}
|
|
|
|
void string_statistics(size_t *inserts, size_t *deletes, size_t *searches, size_t *entries, size_t *references, size_t *memory, size_t *duplications, size_t *releases);
|
|
|
|
int string_unittest(size_t entries);
|
|
|
|
#endif
|