File Coverage

blib/lib/Net/WebSocket/Mask.pm
Criterion Covered Total %
statement 16 16 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 21 23 91.3


line stmt bran cond sub pod time code
1             package Net::WebSocket::Mask;
2              
3 9     9   378 use strict;
  9         27  
  9         275  
4 9     9   56 use warnings;
  9         21  
  9         247  
5              
6 9     9   55 use Module::Load ();
  9         21  
  9         1184  
7              
8             my $_loaded_rng;
9              
10             sub create {
11 53     53 0 426 return pack 'L', ( ( (rand 65536) << 16 ) | (rand 65536) );
12             }
13              
14             sub apply {
15 114     114 0 1723 my ($payload_sr, $mask) = @_;
16              
17 114         448 $mask = $mask x (int(length($$payload_sr) / 4) + 1);
18              
19 114         301 substr($mask, length($$payload_sr)) = q<>;
20              
21 114         274 $$payload_sr .= q<>;
22 114         261 $$payload_sr ^= $mask;
23              
24 114         328 return;
25             }
26              
27             1;