"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Tracey Emery <tracey@traceyemery.net>
Subject:
Re: gotwebd.conf syntax change: "bind interface" -> "listen on"
To:
gameoftrees@openbsd.org
Date:
Tue, 9 Aug 2022 07:52:30 -0600

Download raw body.

Thread
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