From ea2a0872957d031209ee9cce4451d84752e02327 Mon Sep 17 00:00:00 2001 From: Andrew McDaniel Date: Wed, 2 Oct 2024 13:23:48 -0400 Subject: [PATCH] Formatting --- README.md | 44 +++++++++++++++++--------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 6b67f84..7148e55 100644 --- a/README.md +++ b/README.md @@ -85,33 +85,6 @@ cli.enable_server_host_verification(false); > [!NOTE] > When using SSL, it seems impossible to avoid SIGPIPE in all cases, since on some operating systems, SIGPIPE can only be suppressed on a per-message basis, but there is no way to make the OpenSSL library do so for its internal communications. If your program needs to avoid being terminated on SIGPIPE, the only fully general way might be to set up a signal handler for SIGPIPE to handle or ignore it yourself. -Unix Domain Socket Support --------------------------- - -Unix Domain Socket support is available on Linux and macOS. - -```c++ -// Create a server -httplib::Server svr("./my-socket.sock"); -// Add an endpoint -svr.get("/hi", [](const httplib::Request &, httplib::Response &res) { - res.set_content("Hello World!", "text/plain"); -}); -// Start the server in a separate thread -std::thread t{[&] { - svr.set_address_family(AF_UNIX).listen(this->address, 80); -}}; - - -httplib::Client cli("./my-socket.sock"); -cli.set_address_family(AF_UNIX); -auto res = cli.Get("/hi"); -``` - -"my-socket.sock" can be a relative path or an absolute path. You application must have the appropriate permissions for the path. You can also use an abstract socket address on Linux. To use an abstract socket address, prepend a null byte ('\x00') to the path. - - - Server ------ @@ -870,6 +843,23 @@ Use `poll` instead of `select` `select` system call is used as default since it's more widely supported. If you want to let cpp-httplib use `poll` instead, you can do so with `CPPHTTPLIB_USE_POLL`. +Unix Domain Socket Support +-------------------------- + +Unix Domain Socket support is available on Linux and macOS. + +```c++ +// Server +httplib::Server svr("./my-socket.sock"); +svr.set_address_family(AF_UNIX).listen("./my-socket.sock", 80); + +// Client +httplib::Client cli("./my-socket.sock"); +cli.set_address_family(AF_UNIX); +``` + +"my-socket.sock" can be a relative path or an absolute path. You application must have the appropriate permissions for the path. You can also use an abstract socket address on Linux. To use an abstract socket address, prepend a null byte ('\x00') to the path. + Split httplib.h into .h and .cc -------------------------------