tree: cb04c8cb8c39757bb1ba551235c08525a0118865 [path history] [tgz]
  1. dbus/
  2. docs/
  3. init/
  4. mojom/
  5. seccomp/
  6. tmpfiles.d/
  7. BUILD.gn
  8. daemon.cc
  9. daemon.h
  10. main.cc
  11. mhd_http_request.cc
  12. mhd_http_request.h
  13. mhd_util.cc
  14. mhd_util.h
  15. mojo_handler.cc
  16. mojo_handler.h
  17. OWNERS
  18. README.md
cups_proxy/README.md

CUPS Proxy Daemon

Summary

The CUPS Proxy Daemon is responsible for parsing HTTP(S) requests from the VM’s file socket (/run/cups_proxy/cups.sock) and passing that to the CupsProxyService in Ash Chrome via Mojo. It also relays the HTTP(S) response generated by CupsProxyService back to Plugin VM.

The control flow is as follows:

Control Flow Diagram

The Mojo IPC channel is bootstrapped via the org.chromium.CupsProxyDaemon D-Bus service.

libmicrohttpd is used to parse (and validate) HTTP(S) requests.

The HTTP(S) requests are actually IPP(S) requests - validation of the IPP(S) part of the protocol is performed by the CUPS Proxy Service.

Design docs