From: Tracey Emery Subject: Re: gotwebd.conf syntax change: "bind interface" -> "listen on" To: gameoftrees@openbsd.org Date: Tue, 9 Aug 2022 07:52:30 -0600 On Mon, Aug 08, 2022 at 03:53:37PM +0000, Klemens Nanni wrote: > On Sun, Aug 07, 2022 at 04:13:11PM +0200, Stefan Sperling wrote: > > In gotwebd.conf, the argument for "bind interface" is a plain string. > > The argument may in fact be an IP address or interface name. But the > > syntax confused me into believing that only interface names could be used. > > > > I think if we used the same grammar as httpd.conf(8) is using, there > > Also bgpd.conf(5), smtpd.conf(5), relayd.conf(5), etc. > > > would be a lot less potential for confusion. Generally people will > > be setting up httpd config and gotwebd.conf at the same time so it > > would help if they used similar syntax. > > > > The gotwebd.cofn grammer even already contains an ON token, which > > wasn't used yet. > > > > Lines such as these become a syntax error: > > > > bind interface em0 > > bind interface 127.0.0.1 > > > > Instead, use: > > > > listen on em0 > > listen on 127.0.0.1 > > > > ok? > > > > Currently, only one "listen on" statement is supported per gotwebd server. > > This is a separate issue I intend to fix later, in order to allow configs > > such as IPv4/IPv6 dual-stack server with specific addresses. Yes, this is a good idea on the multiple listen statements, with this change. > > OK kn Same. ok. > > > > > diff 6381f44ae3383b12443d44a7a6a73459a809b069 bf757836b294600e5e0667c2ac0fddd1f9f3dac5 > > commit - 6381f44ae3383b12443d44a7a6a73459a809b069 > > commit + bf757836b294600e5e0667c2ac0fddd1f9f3dac5 > > blob - ecce1768fa5b41babe7ad5226f47933e94aeaf64 > > blob + b533dd484371ccaf0bb075196a1d7009d4058083 > > --- gotwebd/parse.y > > +++ gotwebd/parse.y > > @@ -115,7 +115,7 @@ typedef struct { > > > > %} > > > > -%token BIND INTERFACE WWW_PATH MAX_REPOS SITE_NAME SITE_OWNER SITE_LINK LOGO > > +%token LISTEN WWW_PATH MAX_REPOS SITE_NAME SITE_OWNER SITE_LINK LOGO > > %token LOGO_URL SHOW_REPO_OWNER SHOW_REPO_AGE SHOW_REPO_DESCRIPTION > > %token MAX_REPOS_DISPLAY REPOS_PATH MAX_COMMITS_DISPLAY ON ERROR > > %token SHOW_SITE_OWNER SHOW_REPO_CLONEURL PORT PREFORK FCGI_SOCKET > > @@ -381,7 +381,7 @@ serveropts2 : serveropts2 serveropts1 nl > > | serveropts1 optnl > > ; > > > > -socketopts1 : BIND INTERFACE STRING { > > +socketopts1 : LISTEN ON STRING { > > n = strlcpy(new_srv->fcgi_socket_bind, $3, > > sizeof(new_srv->fcgi_socket_bind)); > > if (n >= sizeof(new_srv->fcgi_socket_bind)) { > > @@ -409,7 +409,7 @@ socketopts2 : socketopts2 socketopts1 nl > > | socketopts1 optnl > > ; > > > > -socketopts3 : BIND INTERFACE STRING { > > +socketopts3 : LISTEN ON STRING { > > n = strlcpy(gotwebd->fcgi_socket_bind, $3, > > sizeof(gotwebd->fcgi_socket_bind)); > > if (n >= sizeof(gotwebd->fcgi_socket_bind)) { > > @@ -470,16 +470,16 @@ lookup(char *s) > > { > > /* This has to be sorted always. */ > > static const struct keywords keywords[] = { > > - { "bind", BIND }, > > { "chroot", CHROOT }, > > { "custom_css", CUSTOM_CSS }, > > { "fcgi_socket", FCGI_SOCKET }, > > - { "interface", INTERFACE }, > > + { "listen", LISTEN }, > > { "logo", LOGO }, > > { "logo_url" , LOGO_URL }, > > { "max_commits_display", MAX_COMMITS_DISPLAY }, > > { "max_repos", MAX_REPOS }, > > { "max_repos_display", MAX_REPOS_DISPLAY }, > > + { "on", ON }, > > { "port", PORT }, > > { "prefork", PREFORK }, > > { "repos_path", REPOS_PATH }, > > > -- Tracey Emery