projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added some more filter help
[spider.git]
/
perl
/
Msg.pm
diff --git
a/perl/Msg.pm
b/perl/Msg.pm
index b626e27c67958eb9822f12491298d349094c31c4..a8db113761392d3ffbcf2dfa740288f9a4f97c98 100644
(file)
--- a/
perl/Msg.pm
+++ b/
perl/Msg.pm
@@
-10,15
+10,12
@@
package Msg;
package Msg;
-require Exporter;
-@ISA = qw(Exporter);
-
use strict;
use IO::Select;
use IO::Socket;
use strict;
use IO::Select;
use IO::Socket;
-
use Carp
;
+
#use DXDebug
;
-use vars qw
(%rd_callbacks %wt_callbacks $rd_handles $wt_handles);
+use vars qw(%rd_callbacks %wt_callbacks $rd_handles $wt_handles);
%rd_callbacks = ();
%wt_callbacks = ();
%rd_callbacks = ();
%wt_callbacks = ();
@@
-89,7
+86,7
@@
sub _enqueue {
my ($conn, $msg) = @_;
# prepend length (encoded as network long)
my $len = length($msg);
my ($conn, $msg) = @_;
# prepend length (encoded as network long)
my $len = length($msg);
- $msg =~ s/(
\x00-\x2f\x7e-\xff%
])/sprintf("%%%02X", ord($1))/eg;
+ $msg =~ s/(
[\%\x00-\x1f\x7f-\xff
])/sprintf("%%%02X", ord($1))/eg;
push (@{$conn->{queue}}, $msg . "\n");
}
push (@{$conn->{queue}}, $msg . "\n");
}
@@
-240,7
+237,8
@@
FINISH:
while (@lines){
$msg = shift @lines;
while (@lines){
$msg = shift @lines;
- $msg =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
+ $msg =~ s/\%([2-9A-F][0-9A-F])/chr(hex($1))/eg;
+ $msg =~ s/[\x00-\x08\x0a-\x1f\x9b\x8e]/./g; # immutable CSI sequence + control characters
&{$conn->{rcvd_notification_proc}}($conn, $msg, $!);
$! = 0;
}
&{$conn->{rcvd_notification_proc}}($conn, $msg, $!);
$! = 0;
}