Leser: 1
|< 1 2 3 4 >| | 31 Einträge, 4 Seiten |
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
package Mydumper;
use strict;
use warnings;
sub dumper($)
{
our sub rc($)
{
my $ref=shift(@_);
my $ref_n=ref($ref);
my $data='';
my $l;
if($ref_n)
{
if($ref_n eq 'HASH')
{
$data='{';
while (@_=each(%$ref))
{
$l=&rc($_[1]);
$data.='\''.$_[0].'\''.$l if($l);
}
$data.='}';
}
elsif($ref_n eq 'ARRAY')
{
$data='[';
$data.=&rc($_) for(@$ref);
$data.=']';
}
}
else
{ $data='\''.$ref.'\''; }
return $data;
}
return rc(shift(@_));
}
sub undumper($)
{
our $data=shift(@_);
our sub rcu()
{
my $ref;
if(index($data,'\'')!=0)
{
$data=~s/^.*?(\[|\{)//s;
my $z=$1;
if($z eq '{')
{
$ref={};
while(index($data,'}')!=0)
{
$data=~s/^'(.+?)'//s;
my $n=$1;
$ref->{$n}=&rcu();
}
$data=~s/^}//;
}
elsif($z eq '[')
{
$ref=[];
push(@$ref,&rcu()) while(index($data,']')!=0);
$data=~s/^]//;
}
}
else
{ $data=~s/^'(.*?)'//s; $ref=$1; }
return $ref;
}
return &rcu();
}
1;
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
use strict;
use warnings;
use Data::Dumper;
use Storable qw(nfreeze);
use IO::Socket::SSL;
while (1) {
my $socket = IO::Socket::SSL->new(
Listen => 5,
LocalAddr => 'localhost',
LocalPort => 9000,
Proto => 'tcp',
Reuse => 1,
SSL_verify_mode => 0x01,
SSL_passwd_cb => sub {return "bluebell"},
) or die "unable to open socket over localhost:9000";
while (my $client = $socket->accept()) {
chomp (my $request = <$client>);
next unless $request;
print "Request: $request\n";
my $stats = {
'memstats' => {
'Cached' => '164352',
'MemTotal' => '1035972',
'SwapUsed' => '0',
'Buffers' => '79600',
'SwapUsedPer' => '0.00',
'MemUsed' => '377636',
'SwapTotal' => '2096472',
'MemUsedPer' => '36.45',
'SwapFree' => '2096472',
'MemFree' => '658336'
}
};
my $p2s = nfreeze($stats) or die $!;
print $client $p2s;
close($client);
close($socket);
system("mknod ./myfifo p") unless -e './myfifo';
open my $fh, '>>', './myfifo', or die $!;
print $fh $p2s;
close $fh;
}
}
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
use strict;
use warnings;
use Data::Dumper;
use Storable qw(thaw);
use IO::Socket::SSL;
use Safe;
my $safe = new Safe;
$safe->permit(qw(:default require));
{
no warnings 'once';
$Storable::Deparse = 1;
$Storable::Eval = sub { $safe->reval($_[0]) };
}
while (1) {
my $socket = IO::Socket::SSL->new(
PeerAddr => 'localhost',
PeerPort => '9000',
Proto => 'tcp',
SSL_use_cert => 1,
SSL_verify_mode => 0x01,
SSL_passwd_cb => sub { return "opossum" }
) or die "unable to connect to 127.0.0.1:9000";
print $socket "__STATISTICS___\n";
local $/;
my $p2s = <$socket>;
my $s2p = thaw($p2s);
print "-----------FROM IO::SOCKET-----------\n";
print Dumper($s2p);
close($socket);
{
print "\n-----------FROM LOCAL PIPE-----------\n";
open my $fh, '<', './myfifo', or die $!;
local $/;
my $p2s = <$fh>;
my $s2p = thaw $p2s;
print Dumper($s2p);
}
sleep 3;
}
|< 1 2 3 4 >| | 31 Einträge, 4 Seiten |