projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
increase default pc41 dupe time to 15 mins
[spider.git]
/
perl
/
Msg.pm
diff --git
a/perl/Msg.pm
b/perl/Msg.pm
index 94f19e6fbadcc3b0df9d0ca172585ac12bf5ec30..cdb72aa0e920e41433c8ab724d58b41c1719b8b1 100644
(file)
--- a/
perl/Msg.pm
+++ b/
perl/Msg.pm
@@
-11,6
+11,13
@@
package Msg;
use strict;
package Msg;
use strict;
+
+use vars qw($VERSION $BRANCH);
+$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0;
+$main::build += $VERSION;
+$main::branch += $BRANCH;
+
use IO::Select;
use IO::Socket;
use DXDebug;
use IO::Select;
use IO::Socket;
use DXDebug;
@@
-337,11
+344,11
@@
sub new_server {
my $self = $pkg->new($login_proc);
$self->{sock} = IO::Socket::INET->new (
my $self = $pkg->new($login_proc);
$self->{sock} = IO::Socket::INET->new (
- LocalAddr =>
$my_host
,
- LocalPort => $my_port,
+ LocalAddr =>
"$my_host:$my_port"
,
+
#
LocalPort => $my_port,
Listen => SOMAXCONN,
Proto => 'tcp',
Listen => SOMAXCONN,
Proto => 'tcp',
- Reuse
=> 1);
+ Reuse => 1);
die "Could not create socket: $! \n" unless $self->{sock};
set_event_handler ($self->{sock}, read => sub { $self->new_client } );
return $self;
die "Could not create socket: $! \n" unless $self->{sock};
set_event_handler ($self->{sock}, read => sub { $self->new_client } );
return $self;
@@
-379,11
+386,29
@@
sub _rcv { # Complement to _send
$bytes_read = sysread ($sock, $msg, 1024, 0);
if (defined ($bytes_read)) {
if ($bytes_read > 0) {
$bytes_read = sysread ($sock, $msg, 1024, 0);
if (defined ($bytes_read)) {
if ($bytes_read > 0) {
- $conn->{msg} .= $msg;
if (isdbg('raw')) {
my $call = $conn->{call} || 'none';
dbgdump('raw', "$call read $bytes_read: ", $msg);
}
if (isdbg('raw')) {
my $call = $conn->{call} || 'none';
dbgdump('raw', "$call read $bytes_read: ", $msg);
}
+ if ($conn->{echo}) {
+ my @ch = split //, $msg;
+ my $out;
+ for (@ch) {
+ if (/[\cH\x7f]/) {
+ $out .= "\cH \cH";
+ $conn->{msg} =~ s/.$//;
+ } else {
+ $out .= $_;
+ $conn->{msg} .= $_;
+ }
+ }
+ if (defined $out) {
+ set_event_handler ($sock, write => sub{$conn->_send(0)});
+ push @{$conn->{outqueue}}, $out;
+ }
+ } else {
+ $conn->{msg} .= $msg;
+ }
}
} else {
if (_err_will_block($!)) {
}
} else {
if (_err_will_block($!)) {