diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2016-06-17 21:17:59 +0200 |
---|---|---|
committer | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2016-06-17 21:17:59 +0200 |
commit | 96f2d50d9a6b211562535f741d5c20810900b177 (patch) | |
tree | 2479bf25dc8ae06b651a7e421ffd7167f3751a51 /Spline/Socketmap.pm | |
parent | c810aa389a5c13aa1f9539d9e2d4404aeaa7e039 (diff) | |
download | srs-96f2d50d9a6b211562535f741d5c20810900b177.tar.gz srs-96f2d50d9a6b211562535f741d5c20810900b177.tar.bz2 srs-96f2d50d9a6b211562535f741d5c20810900b177.zip |
Spline::Netstring: Remove extra module
The netstring methods are now part of Spline::Socketmap
Diffstat (limited to 'Spline/Socketmap.pm')
-rw-r--r-- | Spline/Socketmap.pm | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/Spline/Socketmap.pm b/Spline/Socketmap.pm index df1a6a9..f78ed3f 100644 --- a/Spline/Socketmap.pm +++ b/Spline/Socketmap.pm @@ -4,7 +4,6 @@ use strict; use warnings; use base qw(Net::Server::PreFork); -use Spline::Netstring; use Spline::Srs qw( srs_forward srs_reverse ); use base 'Exporter'; @@ -32,6 +31,39 @@ sub handle_request($) { } } +sub netstring_read_length($) { + my $fd = shift; + my $length; + + local $/ = ':'; + $length = <$fd>; + die "Cannot read netstring length" unless defined($length); + chomp $length; + + return $length; +} + +sub netstring_read($) { + my $fd = shift; + my ($length, $data); + + $length = netstring_read_length($fd); + if (read($fd, $data, $length) == $length) { + (getc() eq ',') or die "Closing , missing"; + } + else { + die 'Received only ' . length($data) . " of $length bytes"; + } + + return $data; +} + +sub netstring_write($$) { + my ($fd, $data) = @_; + + print $fd length($data).':'.$data.','; +} + sub process_request { my $self = shift; |