From: Stefan Sperling Subject: gotwebd.conf syntax change: "bind interface" -> "listen on" To: gameoftrees@openbsd.org Date: Sun, 7 Aug 2022 16:13:11 +0200 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 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. 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 },