+#define membersize(STRUCT, MEMBER) sizeof(((STRUCT *)0)->MEMBER)
+#define CONFIG(NAME, MEMBER, TYPE) { NAME, offsetof(struct configt, MEMBER), membersize(struct configt, MEMBER), TYPE }
+
+struct config_descriptt config_values[] = {
+ CONFIG("debug", debug, INT),
+ CONFIG("log_file", log_filename, STRING),
+ CONFIG("l2tp_secret", l2tpsecret, STRING),
+ CONFIG("primary_dns", default_dns1, IP),
+ CONFIG("secondary_dns", default_dns2, IP),
+ CONFIG("save_state", save_state, BOOL),
+ CONFIG("snoop_host", snoop_destination_host, IP),
+ CONFIG("snoop_port", snoop_destination_port, SHORT),
+ CONFIG("primary_radius", radiusserver[0], IP),
+ CONFIG("secondary_radius", radiusserver[1], IP),
+ CONFIG("radius_accounting", radius_accounting, BOOL),
+ CONFIG("radius_secret", radiussecret, STRING),
+ CONFIG("bind_address", bind_address, IP),
+ CONFIG("cluster_master", cluster_address, IP),
+ CONFIG("throttle_speed", rl_rate, UNSIGNED_LONG),
+ CONFIG("accounting_dir", accounting_dir, STRING),
+ CONFIG("setuid", target_uid, INT),
+ CONFIG("dump_speed", dump_speed, BOOL),
+ CONFIG("cleanup_interval", cleanup_interval, INT),
+ CONFIG("multi_read_count", multi_read_count, INT),
+ { NULL, 0, 0, 0 },
+};
+