--- trunk/lib/Sack/Server.pm 2009/11/21 13:59:41 209 +++ trunk/lib/Sack/Server.pm 2009/11/21 15:55:24 210 @@ -15,6 +15,7 @@ use lib '/srv/Sack/lib'; use Sack::Merge; +use Sack::Server::HTTP; my @cloud; my $cloud_path = $ENV{CLOUD} || "etc/cloud"; @@ -25,12 +26,15 @@ warn "# cloud ",dump( @cloud ); my $listen_port = 4444; +my $http_port = 4480; my $node_path = abs_path $0; $node_path =~ s{Server}{Client}; -my $lsn = IO::Socket::INET->new(Listen => 1, LocalPort => $listen_port, Reuse => 1) or die $!; +my $lsn = IO::Socket::INET->new(Listen => 1, LocalPort => $listen_port, Reuse => 1) or die "$listen_port $!"; +my $www = IO::Socket::INET->new(Listen => 1, LocalPort => $http_port, Reuse => 1) or die "$http_port $!"; my $sel = IO::Select->new($lsn); +$sel->add( $www ); my $info; sub info { @@ -85,6 +89,15 @@ warn "[socket] connect\n"; Storable::store_fd( { ping => 1 }, $new ); info 0 => 'ping', $new->peerport; + } elsif ( $sock == $www ) { + my $client = $www->accept; + Sack::Server::HTTP::request( $client, sub { +warn "XXX callback ",dump( @_ ); + my ( $send, $method, $param ) = @_; + print $send "HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\n\r\n" + , dump( $info ) + ; + } ); } else { my $data = eval { Storable::fd_retrieve( $sock ) }; if ( $@ ) {