header: "sslh-conf.h"; parser: "sslh-conf.c"; # List of includes to define runtime types # (bug in libconfig? if swallows the brackets if they start # the string) includes: ( "probe.h", " ", " ", " " ); config: { name : "config", type: "list", items: ( { name: "verbose"; type: "int"; default: 0; }, { name: "foreground"; type: "boolean"; default: false; }, { name: "inetd"; type: "boolean"; default: false; }, { name: "numeric"; type: "boolean"; default: false; }, { name: "transparent"; type: "boolean"; default: false; }, { name: "timeout"; type: "int"; default: 2; }, { name: "user"; type: "string"; optional: true; }, { name: "pidfile"; type: "string"; optional: true; }, { name: "chroot"; type: "string"; optional: true; }, { name: "syslog_facility"; type: "string"; default: "auth"; }, {name: "on_timeout"; type: "string"; default: "ssh"; }, { name: "listen", type: "list", items: ( { name: "host"; type: "string"; var: true; }, { name: "port"; type: "string"; var: true; }, { name: "keepalive"; type: "boolean"; default: false; } ) }, { name: "protocols", type: "list", items: ( { name: "name"; type: "string"; }, { name: "host"; type: "string"; var: true; }, { name: "port"; type: "string"; var: true; }, { name: "service"; type: "string"; optional: true; }, { name: "fork"; type: "boolean"; default: false }, { name: "log_level"; type: "int"; default: 1 }, { name: "keepalive"; type: "boolean"; default: false }, { name: "sni_hostnames", type: "array", element_type: "string" }, { name: "alpn_protocols", type: "array", element_type: "string" }, { name: "regex_patterns", type: "array", element_type: "string" }, # Runtime data { name: "probe"; type: "runtime"; c_type: "T_PROBE*" }, { name: "saddr"; type: "runtime"; c_type: "struct addrinfo*" }, { name: "data"; type: "runtime"; c_type: "void*" } ) } ) }