From: Tracey Emery Subject: Re: gotwebd no-config startup To: gameoftrees@openbsd.org Date: Fri, 29 Jul 2022 08:18:36 -0600 On Fri, Jul 29, 2022 at 12:45:25PM +0200, Stefan Sperling wrote: > The comments are lies, gotwebd doesn't work without a config file. > It segfaults instead. > > ok? > > diff 06ba6b54c127173003258cd28d72fd0b8cf6ffbf 278d4be54018f28153a3fdb34575fee54075ed9e > commit - 06ba6b54c127173003258cd28d72fd0b8cf6ffbf > commit + 278d4be54018f28153a3fdb34575fee54075ed9e > blob - e624bc6b2182b136d6389e4baad9c214e8c5c4fd > blob + 9691c93542610a12b3f27d039d14910701d61348 > --- gotwebd/parse.y > +++ gotwebd/parse.y > @@ -815,21 +815,30 @@ closefile(struct file *xfile) > free(xfile); > } > > +static void > +add_default_server(void) > +{ > + new_srv = conf_new_server(D_SITENAME); > + log_debug("%s: adding default server %s", __func__, D_SITENAME); > +} > + > int > parse_config(const char *filename, struct gotwebd *env) > { > struct sym *sym, *next; > > - file = newfile(filename, 0); > - if (file == NULL) > - /* just return, as we don't require a conf file */ > - return (0); > - > if (config_init(env) == -1) > fatalx("failed to initialize configuration"); > > gotwebd = env; > > + file = newfile(filename, 0); > + if (file == NULL) { > + add_default_server(); sockets_parse_sockets(env); must be called here > + /* just return, as we don't require a conf file */ > + return (0); > + } > + > yyparse(); > errors = file->errors; > closefile(file); > @@ -851,10 +860,8 @@ parse_config(const char *filename, struct gotwebd *env > return (-1); ------------------- > > /* just add default server if no config specified */ > - if (gotwebd->server_cnt == 0) { > - new_srv = conf_new_server(D_SITENAME); > - log_debug("%s: adding default server %s", __func__, D_SITENAME); > - } > + if (gotwebd->server_cnt == 0) > + add_default_server(); > not needed ------------------- > /* setup our listening sockets */ > sockets_parse_sockets(env); > otherwise ok -- Tracey Emery