Skip to content

Commit 7ea0f3d

Browse files
committed
Reverse random error injection
1 parent 7487396 commit 7ea0f3d

File tree

1 file changed

+1
-16
lines changed

1 file changed

+1
-16
lines changed

lib/TullNet/XBee/API/Frame.pm

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ sub new {
4545
my $self = {
4646
debug => 0,
4747
data => undef,
48-
index => 0,
4948
leading_junk => '',
5049
l_msb => undef,
5150
packet_max_length => 255,
@@ -73,23 +72,14 @@ sub addData {
7372
my ($self, $buf) = @_;
7473

7574
my $state = $self->{'state'};
76-
my $index = $self->{'index'}; # Index of byte number within frame (0x7e byte is index 0)
7775

7876
foreach my $c (split(//, $buf)) {
79-
# Sometimes, introduce an error
80-
if (int(rand(200)) == 0) {
81-
my $o_c = $c;
82-
$c = chr(int(rand(256)));
83-
$self->error("Corrupted byte index %d from %02x to %02x",
84-
$index, ord($o_c), ord($c));
85-
}
8677

8778
if ($state == 0) {
8879
if ($c eq chr(0x7e)) {
8980
$self->{'data'} = undef;
9081
$self->{'done'} = 0;
9182
$self->{'cksum'} = 0;
92-
$index = 1; # Next byte is index 1
9383
$state = 1;
9484
if ($self->{'leading_junk'} ne '') {
9585
$self->printHex("Skipping junk pre frame start:", $self->{'leading_junk'});
@@ -101,12 +91,10 @@ sub addData {
10191
}
10292
elsif ($state == 1) {
10393
$self->{'l_msb'} = ord($c);
104-
$index ++;
10594
$state = 2;
10695
}
10796
elsif ($state == 2) {
10897
$self->{'l_lsb'} = ord($c);
109-
$index ++;
11098
my $length = ($self->{'l_msb'} << 8) + $self->{'l_lsb'};
11199
if ($length > $self->{'packet_max_length'}) {
112100
# Don't allow arbitrarily long packets
@@ -123,7 +111,6 @@ sub addData {
123111
$self->{'data'} .= $c;
124112
$self->{'cksum'} += ord($c);
125113
$self->{'to_read'} --;
126-
$index ++;
127114
if ($self->{'to_read'} == 0) {
128115
$state = 4;
129116
}
@@ -143,16 +130,14 @@ sub addData {
143130
}
144131

145132
$state = 0;
146-
$index = 0;
147133
}
148134
else {
149135
die "Illegal state $state";
150136
}
151137
}
152138

153-
# Remember state and index within frame for next time
139+
# Remember state within frame for next time
154140
$self->{'state'} = $state;
155-
$self->{'index'} = $index;
156141

157142
return 1;
158143
}

0 commit comments

Comments
 (0)