NAME

HTTP::Daemon::UNIX - HTTP::Daemon over Unix sockets

VERSION

This document describes version 0.06 of HTTP::Daemon::UNIX (from Perl distribution HTTP-Daemon-UNIX), released on 2016-08-03.

SYNOPSIS

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);

DESCRIPTION

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.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/HTTP-Daemon-UNIX.

SOURCE

Source repository is at https://github.com/perlancar/perl-HTTP-Daemon-UNIX.

BUGS

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.

SEE ALSO

HTTP::Daemon

LWP::Protocol::http::SocketUnixAlt

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

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.