HTTP::Daemon::SSL

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
SSL(3)		     User Contributed Perl Documentation	       SSL(3)



NAME
       HTTP::Daemon::SSL - a simple http server class with SSL support

SYNOPSIS
	 use HTTP::Daemon::SSL;
	 use HTTP::Status;

	 # Make sure you have a certs/ directory with "server-cert.pem"
	 # and "server-key.pem" in it before running this!
	 my $d = HTTP::Daemon::SSL->new ││ die;
	 print "Please contact me at: <URL:", $d->url, ">\n";
	 while (my $c = $d->accept) {
	     while (my $r = $c->get_request) {
		 if ($r->method eq ’GET’ and $r->url->path eq "/xyzzy") {
		     # remember, this is *not* recommened practice :-)
		     $c->send_file_response("/etc/passwd");
		 } else {
		     $c->send_error(RC_FORBIDDEN)
		 }
	     }
	     $c->close;
	     undef($c);
	 }

DESCRIPTION
       Instances of the HTTP::Daemon::SSL class are HTTP/1.1 servers that
       listen on a socket for incoming requests. The HTTP::Daemon::SSL is a
       sub-class of IO::Socket::SSL, so you can perform socket operations
       directly on it too.

       The accept() method will return when a connection from a client is
       available.  In a scalar context the returned value will be a reference
       to a object of the HTTP::Daemon::ClientConn::SSL class which is
       another IO::Socket::SSL subclass.  In a list context a two-element
       array is returned containing the new HTTP::Daemon::ClientConn::SSL
       reference and the peer address; the list will be empty upon failure.
       Calling the get_request() method on the HTTP::Daemon::ClientConn::SSL
       object will read data from the client and return an HTTP::Request
       object reference.

       This HTTPS daemon does not fork(2) for you.  Your application, i.e.
       the user of the HTTP::Daemon::SSL is reponsible for forking if that is
       desirable.  Also note that the user is responsible for generating
       responses that conform to the HTTP/1.1 protocol.	 The HTTP::Dae-
       mon::ClientConn class provides some methods that make this easier.

METHODS
       The following methods are the only differences from the HTTP::Daemon
       base class:

       $d = new HTTP::Daemon::SSL
	   The constructor takes the same parameters as the IO::Socket::SSL
	   constructor.	 It can also be called without specifying any parame-
	   ters, but you will have to make sure that you have an SSL certifi-
	   cate and key for the server in certs/server-cert.pem and
	   certs/server-key.pem.  See the IO::Socket::SSL documentation for
	   how to change these default locations and specify many other
	   aspects of SSL behavior. The daemon will then set up a listen
	   queue of 5 connections and allocate some random port number.	 A
	   server that wants to bind to some specific address on the standard
	   HTTPS port will be constructed like this:

	     $d = new HTTP::Daemon::SSL
		   LocalAddr => ’www.someplace.com’,
		   LocalPort => 443;

SEE ALSO
       RFC 2068

       IO::Socket::SSL, HTTP::Daemon, Apache

COPYRIGHT
       Code and documentation from HTTP::Daemon Copyright 1996-2001, Gisle
       Aas Changes Copyright 2003-2004, Peter Behroozi

       This library is free software; you can redistribute it and/or modify
       it under the same terms as Perl itself.



perl v5.8.8			  2004-12-12			       SSL(3)