.defines = auth_passdb_setting_defines,
.defaults = &auth_passdb_default_settings,
- .type_offset = offsetof(struct auth_passdb_settings, name),
+ .type_offset1 = 1 + offsetof(struct auth_passdb_settings, name),
.struct_size = sizeof(struct auth_passdb_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &auth_setting_parser_info,
.check_func = auth_passdb_settings_check
.defines = auth_userdb_setting_defines,
.defaults = &auth_userdb_default_settings,
- .type_offset = offsetof(struct auth_userdb_settings, name),
+ .type_offset1 = 1 + offsetof(struct auth_userdb_settings, name),
.struct_size = sizeof(struct auth_userdb_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &auth_setting_parser_info,
-
.check_func = auth_userdb_settings_check
};
.defines = auth_setting_defines,
.defaults = &auth_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct auth_settings),
-
- .parent_offset = SIZE_MAX,
-
.check_func = auth_settings_check
};
unsigned int i;
for (i = 0; info->defines[i].key != NULL; i++) {
- if (info->defines[i].offset == info->type_offset)
+ if (info->defines[i].offset + 1 == info->type_offset1)
return info->defines[i].key;
}
- i_panic("setting parser: Invalid type_offset value");
+ i_panic("setting parser: Invalid type_offset1 value");
return NULL;
}
/* section inside strlist */
return -1;
}
- if (info->type_offset == SIZE_MAX)
+ if (info->type_offset1 == 0)
return 0;
str = t_str_new(256);
const void *set, unsigned int idx)
{
const char *const *name;
- size_t name_offset;
+ size_t name_offset1;
if (def->type != SET_DEFLIST_UNIQUE) {
/* not unique, use the index */
str_printfa(str, "%u", idx);
return;
}
- name_offset = def->list_info->type_offset;
- i_assert(name_offset != SIZE_MAX);
+ name_offset1 = def->list_info->type_offset1;
+ i_assert(name_offset1 != 0);
- name = CONST_PTR_OFFSET(set, name_offset);
+ name = CONST_PTR_OFFSET(set, name_offset1 - 1);
if (*name == NULL || **name == '\0') {
/* no name, this one isn't unique. use the index. */
str_printfa(str, "%u", idx);
(ctx->flags & CONFIG_DUMP_FLAG_HIDE_LIST_DEFAULTS) == 0) {
/* .. */
} else if (*((const char *)change_value) == 0 &&
- def->offset != info->type_offset) {
+ def->offset + 1 != info->type_offset1) {
/* this is mainly for service {} blocks. if value
hasn't changed, it's the default. even if
info->defaults has a different value. */
if (hash_table_lookup(ctx->keys, key) == NULL) {
enum config_key_type type;
- if (def->offset == info->type_offset &&
+ if (def->offset + 1 == info->type_offset1 &&
parent_unique_deflist)
type = CONFIG_KEY_UNIQUE_KEY;
else if (SETTING_TYPE_IS_DEFLIST(def->type))
.defines = test_settings_defs,
.defaults = &test_settings_defaults,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct test_settings),
-
- .parent_offset = SIZE_MAX,
.parent = NULL,
};
.defines = dict_setting_defines,
.defaults = &dict_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct dict_server_settings),
-
- .parent_offset = SIZE_MAX
};
const struct dict_server_settings *dict_settings;
.defines = doveadm_setting_defines,
.defaults = &doveadm_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct doveadm_settings),
-
- .parent_offset = SIZE_MAX,
.check_func = doveadm_settings_check,
.dependencies = doveadm_setting_dependencies
};
.defines = imap_login_setting_defines,
.defaults = &imap_login_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct imap_login_settings),
-
- .parent_offset = SIZE_MAX,
.dependencies = imap_login_setting_dependencies
};
.module_name = "imap-urlauth-login",
.defines = imap_urlauth_login_setting_defines,
- .type_offset = SIZE_MAX,
- .parent_offset = SIZE_MAX,
-
.dependencies = imap_urlauth_login_setting_dependencies
};
.defines = imap_urlauth_setting_defines,
.defaults = &imap_urlauth_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct imap_urlauth_settings),
-
- .parent_offset = SIZE_MAX,
-
.dependencies = imap_urlauth_setting_dependencies
};
.defines = imap_urlauth_worker_setting_defines,
.defaults = &imap_urlauth_worker_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct imap_urlauth_worker_settings),
-
- .parent_offset = SIZE_MAX,
-
.dependencies = imap_urlauth_worker_setting_dependencies
};
.defines = imap_setting_defines,
.defaults = &imap_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct imap_settings),
-
- .parent_offset = SIZE_MAX,
-
.check_func = imap_settings_verify,
.dependencies = imap_setting_dependencies
};
.defines = lda_setting_defines,
.defaults = &lda_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct lda_settings),
-
- .parent_offset = SIZE_MAX,
-
#ifndef CONFIG_BINARY
.check_func = lda_settings_check,
#endif
.defines = master_service_setting_defines,
.defaults = &master_service_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct master_service_settings),
-
- .parent_offset = SIZE_MAX,
.check_func = master_service_settings_check
};
.defines = master_service_ssl_setting_defines,
.defaults = &master_service_ssl_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct master_service_ssl_settings),
-
- .parent_offset = SIZE_MAX,
.check_func = master_service_ssl_settings_check
};
.defines = master_service_ssl_server_setting_defines,
.defaults = &master_service_ssl_server_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct master_service_ssl_server_settings),
-
- .parent_offset = SIZE_MAX,
.dependencies = master_service_ssl_server_setting_dependencies,
};
.defines = NULL,
.defaults = NULL,
- .type_offset = SIZE_MAX,
.struct_size = 0,
-
- .parent_offset = SIZE_MAX
};
HASH_TABLE_DEFINE_TYPE(setting_link, struct setting_link *,
array_push_back(carr, &new_changes);
}
- keyp = CONST_PTR_OFFSET(children[i], info.type_offset);
+ keyp = CONST_PTR_OFFSET(children[i], info.type_offset1-1);
key = settings_section_escape(*keyp);
new_link = p_new(ctx->set_pool, struct setting_link, 1);
setting_parser_copy_defaults(ctx, link->info, link);
array_push_back(link->array, &link->set_struct);
- if (link->info->parent_offset != SIZE_MAX && link->parent != NULL) {
+ if (link->info->parent_offset1 != 0 && link->parent != NULL) {
ptr = STRUCT_MEMBER_P(link->set_struct,
- link->info->parent_offset);
+ link->info->parent_offset1-1);
*((void **)ptr) = link->parent->set_struct;
}
}
{
void **ptr;
- if (info->parent_offset == SIZE_MAX)
+ if (info->parent_offset1 == 0)
return;
- ptr = PTR_OFFSET(child, info->parent_offset);
+ ptr = PTR_OFFSET(child, info->parent_offset1-1);
*ptr = parent;
}
unsigned int i, j, src_count, dest_count, ccount;
unsigned int type_offset;
- i_assert(def->list_info->type_offset != SIZE_MAX);
+ i_assert(def->list_info->type_offset1 != 0);
src_arr = CONST_PTR_OFFSET(src_link->set_struct, def->offset);
src_carr = CONST_PTR_OFFSET(src_link->change_struct, def->offset);
if (!array_is_created(src_arr))
return 0;
- type_offset = def->list_info->type_offset;
+ type_offset = def->list_info->type_offset1-1;
i_zero(&child_dest_link);
i_zero(&child_src_link);
const struct setting_define *defines;
const void *defaults;
- size_t type_offset;
+ size_t type_offset1; /* type_offset+1. 0=nonexistent. */
size_t struct_size;
- size_t parent_offset;
+ size_t parent_offset1; /* parent_offset+1. 0=nonexistent. */
const struct setting_parser_info *parent;
bool (*check_func)(void *set, pool_t pool, const char **error_r);
.defines = defs,
.defaults = &test_defaults,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct test_settings),
-
- .parent_offset = SIZE_MAX,
};
test_begin("settings_parser");
.defines = smtp_submit_setting_defines,
.defaults = &smtp_submit_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct smtp_submit_settings),
- .parent_offset = SIZE_MAX,
-
#ifndef CONFIG_BINARY
.check_func = smtp_submit_settings_check,
#endif
.defines = mdbox_setting_defines,
.defaults = &mdbox_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct mdbox_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &mail_user_setting_parser_info
};
.defines = imapc_setting_defines,
.defaults = &imapc_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct imapc_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &mail_user_setting_parser_info,
.check_func = imapc_settings_check
.defines = maildir_setting_defines,
.defaults = &maildir_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct maildir_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &mail_user_setting_parser_info
};
.defines = mbox_setting_defines,
.defaults = &mbox_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct mbox_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &mail_user_setting_parser_info
};
.defines = pop3c_setting_defines,
.defaults = &pop3c_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct pop3c_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &mail_user_setting_parser_info,
.check_func = pop3c_settings_check
.defines = mail_storage_setting_defines,
.defaults = &mail_storage_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct mail_storage_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &mail_user_setting_parser_info,
-
.check_func = mail_storage_settings_check,
};
.defines = mailbox_setting_defines,
.defaults = &mailbox_default_settings,
- .type_offset = offsetof(struct mailbox_settings, name),
+ .type_offset1 = 1 + offsetof(struct mailbox_settings, name),
.struct_size = sizeof(struct mailbox_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &mail_user_setting_parser_info,
.check_func = mailbox_settings_check
.defines = mail_namespace_setting_defines,
.defaults = &mail_namespace_default_settings,
- .type_offset = offsetof(struct mail_namespace_settings, name),
+ .type_offset1 = 1 + offsetof(struct mail_namespace_settings, name),
.struct_size = sizeof(struct mail_namespace_settings),
- .parent_offset = offsetof(struct mail_namespace_settings, user_set),
+ .parent_offset1 = 1 + offsetof(struct mail_namespace_settings, user_set),
.parent = &mail_user_setting_parser_info,
.check_func = namespace_settings_check
.defines = mail_user_setting_defines,
.defaults = &mail_user_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct mail_user_settings),
-
- .parent_offset = SIZE_MAX,
-
.check_func = mail_user_settings_check,
#ifndef CONFIG_BINARY
.expand_check_func = mail_user_settings_expand_check,
.defines = lmtp_setting_defines,
.defaults = &lmtp_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct lmtp_settings),
-
- .parent_offset = SIZE_MAX,
-
.check_func = lmtp_settings_check,
.dependencies = lmtp_setting_dependencies
};
.defines = login_setting_defines,
.defaults = &login_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct login_settings),
-
- .parent_offset = SIZE_MAX,
-
.check_func = login_settings_check
};
.defines = file_listener_setting_defines,
.defaults = &file_listener_default_settings,
- .type_offset = offsetof(struct file_listener_settings, path),
+ .type_offset1 = 1 + offsetof(struct file_listener_settings, path),
.struct_size = sizeof(struct file_listener_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &service_setting_parser_info
};
.defines = inet_listener_setting_defines,
.defaults = &inet_listener_default_settings,
- .type_offset = offsetof(struct inet_listener_settings, name),
+ .type_offset1 = 1 + offsetof(struct inet_listener_settings, name),
.struct_size = sizeof(struct inet_listener_settings),
-
- .parent_offset = SIZE_MAX,
.parent = &service_setting_parser_info
};
.defines = service_setting_defines,
.defaults = &service_default_settings,
- .type_offset = offsetof(struct service_settings, name),
+ .type_offset1 = 1 + offsetof(struct service_settings, name),
.struct_size = sizeof(struct service_settings),
- .parent_offset = offsetof(struct service_settings, master_set),
+ .parent_offset1 = 1 + offsetof(struct service_settings, master_set),
.parent = &master_setting_parser_info
};
.defines = master_setting_defines,
.defaults = &master_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct master_settings),
-
- .parent_offset = SIZE_MAX,
-
.check_func = master_settings_verify
};
.defines = fs_crypt_setting_defines,
.defaults = &fs_crypt_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct fs_crypt_settings),
-
- .parent_offset = SIZE_MAX,
.dependencies = fs_crypt_setting_dependencies
};
.defines = quota_status_setting_defines,
.defaults = "a_status_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct quota_status_settings),
-
- .parent_offset = SIZE_MAX,
.dependencies = quota_status_setting_dependencies
};
.module_name = "pop3-login",
.defines = pop3_login_setting_defines,
- .type_offset = SIZE_MAX,
- .parent_offset = SIZE_MAX,
-
.dependencies = pop3_login_setting_dependencies
};
.defines = pop3_setting_defines,
.defaults = &pop3_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct pop3_settings),
-
- .parent_offset = SIZE_MAX,
-
.check_func = pop3_settings_verify,
.dependencies = pop3_setting_dependencies
};
.defines = stats_exporter_setting_defines,
.defaults = &stats_exporter_default_settings,
- .type_offset = offsetof(struct stats_exporter_settings, name),
+ .type_offset1 = 1 + offsetof(struct stats_exporter_settings, name),
.struct_size = sizeof(struct stats_exporter_settings),
-
- .parent_offset = SIZE_MAX,
.check_func = stats_exporter_settings_check,
};
.defines = stats_metric_setting_defines,
.defaults = &stats_metric_default_settings,
- .type_offset = offsetof(struct stats_metric_settings, metric_name),
+ .type_offset1 = 1 + offsetof(struct stats_metric_settings, metric_name),
.struct_size = sizeof(struct stats_metric_settings),
-
- .parent_offset = SIZE_MAX,
.check_func = stats_metric_settings_check,
};
.defines = stats_setting_defines,
.defaults = &stats_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct stats_settings),
-
- .parent_offset = SIZE_MAX,
.check_func = stats_settings_check,
};
.defines = submission_login_setting_defines,
.defaults = &submission_login_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct submission_login_settings),
- .parent_offset = SIZE_MAX,
-
.check_func = submission_login_settings_check,
.dependencies = submission_login_setting_dependencies
};
.defines = submission_setting_defines,
.defaults = &submission_default_settings,
- .type_offset = SIZE_MAX,
.struct_size = sizeof(struct submission_settings),
-
- .parent_offset = SIZE_MAX,
-
.check_func = submission_settings_verify,
.dependencies = submission_setting_dependencies
};