/[cwmp]/google/acs.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /google/acs.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15 - (hide annotations)
Mon May 21 15:27:38 2007 UTC (17 years ago) by dpavlin
File MIME type: text/plain
File size: 3396 byte(s)
implement try of cookies supprot for SOAP::Transport::HTTP
1 dpavlin 2 #!/usr/bin/perl
2    
3     use warnings;
4     use strict;
5    
6 dpavlin 11 use lib 'lib';
7 dpavlin 2 use SOAP::Transport::HTTP +trace => 'debug';
8 dpavlin 15 use HTTP::Cookies;
9     use CGI::Simple::Cookie;
10 dpavlin 2
11 dpavlin 15 SOAP::Trace->import( 'all' );
12    
13 dpavlin 2 # Eh...
14     $SOAP::Constants::DO_NOT_CHECK_MUSTUNDERSTAND = 1;
15    
16     $SIG{PIPE} = $SIG{INT} = 'IGNORE'; # don't want to die on 'Broken pipe' or Ctrl-C
17    
18     my $daemon = SOAP::Transport::HTTP::Daemon->new(
19     #LocalAddr => 'localhost',
20     LocalPort => 3333,
21     Reuse => 1,
22     #'Listen' => 128,
23     )
24 dpavlin 12 ->dispatch_with(
25     { 'urn:dslforum-org:cwmp-1-0' => 'CWMP'},
26     )
27 dpavlin 2 ;
28    
29 dpavlin 15 my $cookies = new CGI::Simple::Cookie(
30     -name => 'foo',
31     -value => 'bar',
32     );
33     $daemon->options->{simple_cookie} = $cookies;
34 dpavlin 2
35     print "Contact to ACS server at ", $daemon->url, "\n";
36     $daemon->handle;
37    
38     package CWMP;
39     use strict;
40    
41     use Data::Dump qw/dump/;
42 dpavlin 7 use Carp qw/cluck/;
43 dpavlin 2
44     sub new {
45     bless {}, shift;
46     }
47    
48 dpavlin 12 # CPE methods Responding Calling
49     #
50     # GetRPCMethods Required Optional
51     # SetParameterValues Required Required
52     # GetParameterValues Required Required
53     # GetParameterNames Required Required
54     # SetParameterAttributes Required Optional
55     # GetParameterAttributes Required Optional
56     # AddObject Required Optional
57     # DeleteObject Required Optional
58     # Reboot Required Optional
59     # Download Required Required
60     # Upload Optional Optional
61     # FactoryReset Optional Optional
62     # GetQueuedTransfers Optional Optional
63     # ScheduleInform Optional Optional
64     # SetVouchers Optional Optional
65     # GetOptions Optional Optional
66    
67 dpavlin 2 # Server methods Calling Responding
68 dpavlin 12 #
69 dpavlin 2 # GetRPCMethods Optional Required
70     # Inform Required Required
71     # TransferComplete Required Required
72     # RequestDownload Optional Optional
73     # Kicked Optional Optional
74    
75 dpavlin 12
76     my $ID;
77    
78 dpavlin 2 sub Inform {
79 dpavlin 7 my ($self, $DeviceId, $Event, $MaxEnvelopes, $CurrentTime, $RetryCount, $ParameterList, $headers) = @_;
80 dpavlin 2
81     my $p;
82    
83 dpavlin 7 #cluck dump( $daemon );
84     #warn dump( $headers );
85    
86 dpavlin 12 $ID = ( grep { $_->name eq 'ID' } @$headers )[0]->value;
87 dpavlin 7
88 dpavlin 2 foreach ( @$ParameterList ) {
89     $p->{ $_->{Name} } = $_->{Value};
90     }
91    
92 dpavlin 7 warn "request $ID from ", dump( $DeviceId ), " with events ",dump( $Event ), "maxEnvelopes: $MaxEnvelopes on $CurrentTime retry $RetryCount params ", dump( $p );
93 dpavlin 2
94 dpavlin 7 return SOAP::Data->name('MaxEnvelopes' => $MaxEnvelopes);
95 dpavlin 2 }
96 dpavlin 12
97     sub GetParameterValuesResponse {
98     warn "GetParameterValuesResponse ",dump( @_ );
99     }
100    
101     sub empty_request {
102     my (undef, $self) = @_;
103    
104     $self->serializer->soapversion(SOAP::Lite->soapversion);
105     $self->serializer->xmlschema($SOAP::Constants::DEFAULT_XML_SCHEMA);
106    
107     my @results = (
108     SOAP::Header->name('ID' => $ID)->prefix('cwmp')->mustUnderstand(1),
109     SOAP::Data->name('GetParameterValues' =>
110 dpavlin 15 \SOAP::Data->value( 'ParametarNames' => [
111 dpavlin 12 'InternetGatewayDevice.ManagementServer.',
112     'a.', 'a.b.', 'a.b.c.',
113 dpavlin 15 ]),
114 dpavlin 12 )->prefix('cwmp'),
115     );
116    
117     my $result = $self->serializer
118     # ->prefix('s') # distinguish generated element names between client and server
119     # ->uri('urn:dslforum-org:cwmp-1-0')
120     ->ns('urn:dslforum-org:cwmp-1-0', 'cwmp')
121     ->envelope( freeform => @results );
122    
123     my $xml = $result;
124     $xml =~ s/</\n</gs;
125    
126 dpavlin 15 print "empty request result: $xml\n", dump( $self->request->headers, $self->response->headers, $self->packager->headers_http );
127 dpavlin 12
128     return $result;
129     }

Properties

Name Value
svn:executable

  ViewVC Help
Powered by ViewVC 1.1.26