/* Copyright (c) 2005-2018 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "array.h"
#include "str.h"
#include "hash.h"
#include "ostream.h"
#include "settings-parser.h"
#include "master-service-settings.h"
#include "all-settings.h"
#include "config-parser.h"
#include "config-request.h"
#include "old-set-parser.h"
struct config_export_context {
void *context;
const char *const *modules;
bool failed;
};
{
unsigned int i;
if (size == 0) {
return;
}
size /= 1024;
}
}
{
if (stamp == 0) {
return;
}
if (stamp % 60 == 0) {
stamp /= 60;
suffix = "mins";
if (stamp % 60 == 0) {
stamp /= 60;
suffix = "hours";
if (stamp % 24 == 0) {
stamp /= 24;
suffix = "days";
if (stamp % 7 == 0) {
stamp /= 7;
suffix = "weeks";
}
}
}
}
}
{
if ((stamp_msecs % 1000) == 0)
else
}
const void *default_value,
bool *dump_r)
{
switch (type) {
case SET_BOOL: {
break;
}
case SET_SIZE: {
break;
}
case SET_UINT:
case SET_UINT_OCT:
case SET_TIME:
case SET_TIME_MSECS: {
switch (type) {
case SET_UINT_OCT:
break;
case SET_TIME:
break;
case SET_TIME_MSECS:
break;
default:
break;
}
}
break;
}
case SET_IN_PORT: {
break;
}
case SET_STR_VARS: {
**val == SETTING_STRVAR_UNEXPANDED[0]);
}
break;
}
case SET_STR: {
}
break;
}
case SET_ENUM: {
if (dump_default)
else {
}
break;
}
default:
return FALSE;
}
return TRUE;
}
static void
{
const char *const *name;
/* not unique, use the index */
return;
}
/* no name, this one isn't unique. use the index. */
} else {
}
}
static void
const struct setting_parser_info *info,
bool parent_unique_deflist,
const void *set, const void *change_set)
{
const char *str;
char *key;
case CONFIG_DUMP_SCOPE_ALL:
dump_default = TRUE;
break;
case CONFIG_DUMP_SCOPE_SET:
dump_default = *((const char *)change_value) != 0;
break;
break;
}
if (!parent_unique_deflist ||
/* .. */
} else if (*((const char *)change_value) == 0 &&
/* this is mainly for service {} blocks. if value
hasn't changed, it's the default. even if
info->defaults has a different value. */
} else {
/* value is set explicitly, but we don't know the
default here. assume it's not the default. */
dump_default = TRUE;
}
case SET_BOOL:
case SET_SIZE:
case SET_UINT:
case SET_UINT_OCT:
case SET_TIME:
case SET_TIME_MSECS:
case SET_IN_PORT:
case SET_STR_VARS:
case SET_STR:
case SET_ENUM:
dump_default, &dump))
i_unreached();
break;
case SET_DEFLIST:
case SET_DEFLIST_UNIQUE: {
if (!array_is_created(val))
break;
for (i = 0; i < count; i++) {
if (i > 0)
}
break;
}
case SET_STRLIST: {
const char *const *strings;
if (!array_is_created(val))
break;
/* already added all of these */
break;
}
/* for doveconf -n to see this KEY_LIST */
for (i = 0; i < count; i += 2) {
strings[i]);
}
count = 0;
break;
}
case SET_ALIAS:
break;
}
else
}
}
for (i = 0; i < count; i++) {
children[i], change_children[i]);
}
}
}
struct config_export_context *
enum config_dump_flags flags,
{
return ctx;
}
const struct config_filter *filter)
{
const char *error;
&error) < 0) {
}
}
const struct config_module_parser *parsers)
{
}
struct master_service_settings_output *output_r)
{
}
const char *
{
unsigned int i;
const char *const *value =
"import_environment", &stype);
return *value;
}
}
i_unreached();
}
{
}
{
const char *error;
unsigned int i;
int ret = 0;
return -1;
}
continue;
T_BEGIN {
"ssl_dh", &stype);
const char *newval;
} else {
ret = -1;
}
}
}
} T_END;
&error)) {
} else {
ret = -1;
break;
}
}
}
}
return ret;
}