On Fri, Jan 11, 2019 at 10:50:21AM -0600, Adam Thompson wrote: > Running 6.4 (-stable, via openup/mtier). > I have bgpd(8) talking to my border router, acting as a route collector. > That part seems fine. > I now have httpd(8) configured trivially to run bgplg(8) (per the bgplg(8) > manpage) but it's not working, and I can't tell why. **EDIT: yes, I can, > see below** > > httpd.conf: > ===start=== > server "*" { > listen on * port 80 > location "/cgi-bin/*" { > fastcgi > root "" > } > } > ===end=== > > On the client end, I get: > > bgpmirror# wget -v http://localhost/cgi-bin/bgplg > --2019-01-11 10:12:05-- http://localhost/cgi-bin/bgplg > Resolving localhost (localhost)... 127.0.0.1, ::1 > Connecting to localhost (localhost)|127.0.0.1|:80... connected. > HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9 > Length: unspecified > Saving to: 'bgplg' > (it never completes until I kill it) > > Ktrace'ing slowcgi and httpd in -d mode reveals that bgplg execve's > properly, loads, spits out "invalid character in input" and dies. Slowcgi > and/or httpd do not handle this... well, at all, really. That error message > also does not get logged anywhere nor is visible anywhere except ktrace > logs. > > Looking at the bgplg source code, this means there's something funky in its > environment that it doesn't like. Ah. It looks like it's the "*" in > server_name, as passed in by slowcgi: > slowcgi: env[18], SERVER_NAME=* > > Yup. That's the problem, all right: /usr/src/usr.bin/bgplg/bgplg.c:115 > excludes '*'. But I want my looking glass to be accessible from at least > two different hostnames, and I really would prefer to not have to define > them all manually in httpd.conf(5). > > The naive local fix is trivial (adding '*' to the strchr call in line 115), > but what else might I be breaking or letting in? Clearly this is supposed > to ensure the environment is sanitized before continuing, but is "*" > forbidden because it's unsafe, or simply because it never occurred to > anyone? > > Thoughts / suggestions ? >
You can use 'server match "."' to match any hostname. The page title will be "." though.