6 |
|
|
7 |
use strict; |
use strict; |
8 |
|
|
9 |
use HTTP::Server::Simple; |
use lib './lib'; |
10 |
|
use CWMP::Server; |
11 |
my $port = 3333; |
use CWMP::Session; |
12 |
|
use CWMP::Vendor; |
13 |
my $server = CWMP::Server->new( $port ); |
use Getopt::Long; |
|
$server->run(); |
|
|
|
|
|
package CWMP::Server; |
|
|
|
|
14 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
15 |
|
use File::Find; |
16 |
|
|
17 |
use base qw(HTTP::Server::Simple::CGI); |
use Devel::LeakTrace::Fast; |
18 |
|
|
19 |
sub handle_request { |
my $port = 3333; |
20 |
my ($self, $cgi) = @_; |
my $debug = 0; |
21 |
|
my $store_path = './'; |
22 |
#... do something, print output to default |
my $store_plugin = 'YAML'; |
23 |
# selected filehandle... |
my $create_dump = 1; |
24 |
|
|
25 |
warn $cgi->param('POSTDATA'); |
GetOptions( |
26 |
|
'debug+' => \$debug, |
27 |
print "Content-Type: text/xml\r\n\r\n"; |
'port=i' => \$port, |
28 |
|
'store-path=s' => \$store_path, |
29 |
}; |
'store-plugin=s' => \$store_plugin, |
30 |
|
'create_dump!' => \$create_dump, |
31 |
|
); |
32 |
|
|
33 |
|
if ( $create_dump ) { |
34 |
|
warn "## cleaning dump directory\n" if $debug; |
35 |
|
find({ |
36 |
|
wanted => sub { |
37 |
|
my $path = $File::Find::name; |
38 |
|
return if -d $path; |
39 |
|
unlink($path) || die "can't remove $path: $!"; |
40 |
|
warn "## removed $path\n" if $debug; |
41 |
|
}, |
42 |
|
no_chdir => 1, |
43 |
|
}, 'dump/' ); |
44 |
|
} |
45 |
|
|
46 |
|
my $server = CWMP::Server->new({ |
47 |
|
port => $port, |
48 |
|
session => { |
49 |
|
store => { |
50 |
|
module => $store_plugin, |
51 |
|
path => $store_path, |
52 |
|
debug => $debug, |
53 |
|
}, |
54 |
|
create_dump => $create_dump, |
55 |
|
}, |
56 |
|
debug => $debug, |
57 |
|
}); |
58 |
|
|
59 |
1; |
CWMP::Vendor->add_triggers; |
60 |
|
|
61 |
|
$server->run(); |
62 |
|
|