/* Copyright (c) 2017-2018 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "array.h"
#include "llist.h"
#include "hash.h"
#include "str.h"
#include "lib-event-private.h"
#include "event-filter.h"
#include "ostream.h"
#include "connection.h"
#include "master-service.h"
#include "stats-event-category.h"
#include "stats-metrics.h"
#include "stats-settings.h"
#include "client-writer.h"
struct stats_event {
};
struct writer_client {
};
{
}
{
}
const struct stats_event *event2)
{
}
{
}
{
}
}
static struct stats_event *
{
}
static bool
{
if (parent_event_id == 0)
parent_event = NULL;
else {
if (stats_parent_event == NULL) {
*error_r = "Unknown parent event ID";
return FALSE;
}
}
event_unref(&event);
return FALSE;
}
return TRUE;
}
static bool
{
*error_r = "Invalid parent ID";
return FALSE;
}
return FALSE;
event_unref(&event);
return TRUE;
}
static bool
{
*error_r = "Invalid event IDs";
return FALSE;
}
*error_r = "Duplicate event ID";
return FALSE;
}
return FALSE;
return TRUE;
}
static bool
{
*error_r = "Invalid event ID";
return FALSE;
}
if (stats_event == NULL) {
*error_r = "Unknown event ID";
return FALSE;
}
return TRUE;
}
static bool
{
*error_r = "Missing category name";
return FALSE;
}
*error_r = "Unknown parent category";
return FALSE;
}
/* new category - create */
"Category parent '%s' changed to '%s'",
return FALSE;
} else {
/* duplicate - ignore */
return TRUE;
}
return TRUE;
}
static int
{
bool ret;
i_error("Client sent empty line");
return 1;
}
else {
error = "Unknown command";
}
if (!ret) {
i_error("Client sent invalid input for %s: %s (input: %s)",
return -1;
}
return 1;
}
.service_name_in = "stats-client",
.service_name_out = "stats-server",
.major_version = 2,
.minor_version = 0,
};
};
void client_writers_init(void)
{
}
void client_writers_deinit(void)
{
}