pdns icon indicating copy to clipboard operation
pdns copied to clipboard

webserver: implement support for Linux abstract namespace sockets

Open bjacquin opened this issue 3 weeks ago • 3 comments

Short description

Abstract namespace is a Linux specific feature to bind a UNIX domain
socket without the need for any filesystem access, which is particularly
interesting to allow a process running in a chroot or with limited
privileges to access the webserver socket over UNIX domain socket.

The main difference from regular UNIX domain socket is that the first
byte of sun_path is set to zero.

Abstract namespace are defined by prefixing value with abns@.

  $ cat pdns.conf
  ..
  webserver=yes
  [email protected]

  $ curl -sD - -o /dev/null --abstract-unix-socket pdns.http http://localhost/metrics
  *   Trying :0...
  * Established connection to localhost ( port 0) from  port 0
  * using HTTP/1.x
  > GET /metrics HTTP/1.1
  > Host: localhost
  > User-Agent: curl/8.16.0
  > Accept: */*
  >
  * Request completely sent off
  < HTTP/1.1 200 OK
  < Connection: close
  < Content-Length: 15040
  < Content-Type: text/plain; version=0.0.4
  <
  { [15040 bytes data]
  * shutting down connection #0

Checklist

I have:

  • [X] read the CONTRIBUTING.md document
  • [X] read and accepted the Developer Certificate of Origin document, including the AI Policy, and added a "Signed-off-by" to my commits
  • [X] compiled this code
  • [X] tested this code
  • [X] included documentation (including possible behaviour changes)
  • [ ] documented the code
  • [ ] added or modified regression test(s)
  • [ ] added or modified unit test(s)

bjacquin avatar Dec 06 '25 13:12 bjacquin

Pull Request Test Coverage Report for Build 19989803359

Details

  • 6 of 15 (40.0%) changed or added relevant lines in 4 files are covered.
  • 65 unchanged lines in 13 files lost coverage.
  • Overall coverage decreased (-0.02%) to 73.298%

Changes Missing Coverage Covered Lines Changed/Added Lines %
pdns/misc.cc 4 5 80.0%
pdns/iputils.hh 0 8 0.0%
<!-- Total: 6 15
Files with Coverage Reduction New Missed Lines %
pdns/dnsdistdist/dnsdist-healthchecks.cc 2 59.64%
pdns/recursordist/sortlist.cc 2 72.94%
modules/gpgsqlbackend/spgsql.cc 3 68.18%
pdns/iputils.cc 3 59.73%
pdns/misc.hh 3 85.03%
pdns/opensslsigners.cc 3 61.34%
pdns/recursordist/test-syncres_cc2.cc 3 89.12%
pdns/dnsdistdist/dnsdist-tcp.cc 4 77.4%
pdns/signingpipe.cc 5 85.52%
pdns/recursordist/syncres.cc 6 80.99%
<!-- Total: 65
Totals Coverage Status
Change from base Build 19969176468: -0.02%
Covered Lines: 128701
Relevant Lines: 164812

💛 - Coveralls

coveralls avatar Dec 06 '25 14:12 coveralls

I see that spell check is failing for this PR, I have tried a number of alternative to ignore abns, but I'm not able to find exactly what is wrong here. Could you please guide me ?

bjacquin avatar Dec 06 '25 16:12 bjacquin

Hi, I'm the @check-spelling developer. I'm curious what alternatives you tried.

The goal is for you to load https://github.com/PowerDNS/pdns/actions/runs/19989803358/attempts/1#summary-57328879876 and use one of the To accept these unrecognized words as correct, options to add the items to the expect.txt file, but if the messaging isn't clear, then I probably need to work on improving it.

jsoref avatar Dec 09 '25 13:12 jsoref