File tree 1 file changed +16
-1
lines changed
1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,9 @@ const { mask: applyMask, toBuffer } = require('./buffer-util');
12
12
13
13
const kByteLength = Symbol ( 'kByteLength' ) ;
14
14
const maskBuffer = Buffer . alloc ( 4 ) ;
15
+ const RANDOM_POOL_SIZE = 8 * 1024 ;
16
+ let randomPool ;
17
+ let randomPoolPointer = RANDOM_POOL_SIZE ;
15
18
16
19
/**
17
20
* HyBi Sender implementation.
@@ -76,7 +79,19 @@ class Sender {
76
79
if ( options . generateMask ) {
77
80
options . generateMask ( mask ) ;
78
81
} else {
79
- randomFillSync ( mask , 0 , 4 ) ;
82
+ if ( randomPoolPointer === RANDOM_POOL_SIZE ) {
83
+ if ( randomPool === undefined ) {
84
+ randomPool = Buffer . alloc ( RANDOM_POOL_SIZE ) ;
85
+ }
86
+
87
+ randomFillSync ( randomPool , 0 , RANDOM_POOL_SIZE ) ;
88
+ randomPoolPointer = 0 ;
89
+ }
90
+
91
+ mask [ 0 ] = randomPool [ randomPoolPointer ++ ] ;
92
+ mask [ 1 ] = randomPool [ randomPoolPointer ++ ] ;
93
+ mask [ 2 ] = randomPool [ randomPoolPointer ++ ] ;
94
+ mask [ 3 ] = randomPool [ randomPoolPointer ++ ] ;
80
95
}
81
96
82
97
skipMasking = ( mask [ 0 ] | mask [ 1 ] | mask [ 2 ] | mask [ 3 ] ) === 0 ;
You can’t perform that action at this time.
0 commit comments