int (*set)(const struct config_state *cs,
const struct conf *whoami,
int nvec, char **vec);
int (*set)(const struct config_state *cs,
const struct conf *whoami,
int nvec, char **vec);
#define VALUE(C, TYPE) (*ADDRESS(C, TYPE))
static int set_signal(const struct config_state *cs,
#define VALUE(C, TYPE) (*ADDRESS(C, TYPE))
static int set_signal(const struct config_state *cs,
#define C2(x,y) #x, offsetof(struct config, y)
#define C2(x,y) #x, offsetof(struct config, y)
static const struct conf conf[] = {
{ C(alias), &type_string, validate_alias },
{ C(allow), &type_stringlist_accum, validate_allow },
static const struct conf conf[] = {
{ C(alias), &type_string, validate_alias },
{ C(allow), &type_stringlist_accum, validate_allow },
{ C(username), &type_string, validate_any },
};
{ C(username), &type_string, validate_any },
};
static int config_set(const struct config_state *cs,
int nvec, char **vec) {
const struct conf *which;
static int config_set(const struct config_state *cs,
int nvec, char **vec) {
const struct conf *which;
error(0, "%s:%d: %s", cs->path, cs->line, msg);
}
error(0, "%s:%d: %s", cs->path, cs->line, msg);
}
static int config_include(struct config *c, const char *path) {
FILE *fp;
char *buffer, *inputbuffer, **vec;
static int config_include(struct config *c, const char *path) {
FILE *fp;
char *buffer, *inputbuffer, **vec;
static void set_configfile(void) {
if(!configfile)
byte_xasprintf(&configfile, "%s/config", pkgconfdir);
}
static void set_configfile(void) {
if(!configfile)
byte_xasprintf(&configfile, "%s/config", pkgconfdir);
}