Skip to content

liqctld socket refactor and other improvements

Guy Boldon requested to merge improved_sec into 0.18.0-prep

New Feature

What does this MR do?

This MR refactors the liqctld <-> coolercontrold communication to use a unix socket. This pretty much eliminates any security issues with unwanted parties accessing the liqctld daemon and is a good fit for this use case anyway. Other improvements include:

  • some decoupling of the two systemd services: liqctld will now shutdown if no liquidctl devices are detected, saving on resources. The service will still attempt to start with coolercontrold though. More to do in the future.
  • debug log output has been improved for easier debugging (less chatter & screen-filling)
  • deep debugging logs are reserved for trace level logging
  • a liqctld client completely under our control.
  • fix liqctld shutdown errors when running as a systemd service
  • The unix socket also has much less overhead than using loopback, but there aren't many use cases where we are heavily benefiting from that.

Related issues

Relates to a discussion #220 (comment 1676300241)

Checklist

  • Application works as expected when running from source - quite a bit of testing went into this
  • There are dependency changes
  • Liquidctl device mock tests are successful (if applicable)
  • Any needed documentation changes have been made
  • This MR is ready to be merged

Merge request reports