summaryrefslogtreecommitdiffstats
path: root/lib/Smokeping/Slave.pm
blob: 42c71c56cf219d63f5505753879e721637b11030 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# -*- perl -*-
package Smokeping::Slave;
use HTTP::Daemon;
use HTTP::Status;

=head1 NAME

Smokeping::Slave - Slave Functionality for Smokeping

=head1 OVERVIEW

This module handles all special functionality required by smokeping running
in slave mode.

=head2 IMPLEMENTATION

=head3 slave_cfg=extract_config(cfg,slave)

Extract the relevant configuration information for the selected slave. The
configuration will only contain the information that is relevant for the
slave. Any parameters overwritten in the B<Slaves> section of the configuration
file will be patched for the slave.

=cut

sub extract_config($$){
    my $cfg = shift;
    my $slave = shift;
}

=head3 expect_request(cfg)

=cut

sub expect_request($){
    my $cfg = shift;
    my $daemon = HTTP::Daemon->new or die "Creating HTTP daemon";
    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* recommended practice :-)
                     $c->send_file_response("/etc/passwd");
                 }
                 else {
                     $c->send_error(RC_FORBIDDEN)
                 }
             }
             $c->close;
             undef($c);
         }
    
}

1;

__END__

=head1 COPYRIGHT

Copyright 2007 by Tobias Oetiker

=head1 LICENSE

This program is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.  See the GNU General Public License for more
details.

You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
02139, USA.

=head1 AUTHOR

Tobias Oetiker E<lt>tobi@oetiker.chE<gt>

=cut