HTTP::Daemon::UNIX - HTTP::Daemon over Unix sockets
This document describes version 0.06 of HTTP::Daemon::UNIX (from Perl distribution HTTP-Daemon-UNIX), released on 2016-08-03.
use HTTP::Daemon::UNIX; # arguments will be passed to IO::Socket::UNIX, but Listen=>1 and # Type=>SOCK_STREAM will be added by default. also, HTTP::Daemon::UNIX will try # to delete stale socket first, for convenience. my $d = HTTP::Daemon::UNIX->new(Local => "/path/to/unix.sock"); # will print something like: "http:path/to/unix.sock" print "Please contact me at: <URL:", $d->url, ">\n"; # after that, use like you would use HTTP::Daemon while (my $c = $d->accept) { while (my $r = $c->get_request) { if ($r->method eq 'GET' and $r->uri->path eq "/xyzzy") { # remember, this is *not* recommended practice :-) $c->send_file_response("/etc/passwd"); } else { $c->send_error(RC_FORBIDDEN); } } $c->close; undef($c); } # client side code, using LWP::Protocol::http::SocketUnixAlt use LWP::Protocol::http::SocketUnixAlt; use LWP::UserAgent; use HTTP::Request::Common; my $ua = LWP::UserAgent->new; my $orig_imp = LWP::Protocol::implementor("http"); LWP::Protocol::implementor(http => 'LWP::Protocol::http::SocketUnixAlt'); my $resp = $ua->request(GET "http:path/to/unix.sock//uri/path"); LWP::Protocol::implementor(http => $orig_imp);
This is a quick hack to enable HTTP::Daemon to serve requests over Unix sockets, by mixing in IO::Socket::UNIX and HTTP::Daemon as parents to HTTP::Daemon::UNIX and overriding IO::Socket::INET-related stuffs.
Basic stuffs seem to be working, but this module has not been tested extensively, so beware that things might blow up in your face.
Please visit the project's homepage at https://metacpan.org/release/HTTP-Daemon-UNIX.
Source repository is at https://github.com/perlancar/perl-HTTP-Daemon-UNIX.
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=HTTP-Daemon-UNIX
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
HTTP::Daemon
LWP::Protocol::http::SocketUnixAlt
perlancar <perlancar@cpan.org>
This software is copyright (c) 2016 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install HTTP::Daemon::UNIX, copy and paste the appropriate command in to your terminal.
cpanm
cpanm HTTP::Daemon::UNIX
CPAN shell
perl -MCPAN -e shell install HTTP::Daemon::UNIX
For more information on module installation, please visit the detailed CPAN module installation guide.