Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
Marsaud Smb2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
Marsaud Smb2
Commits
24adc6c7
Commit
24adc6c7
authored
Dec 03, 2018
by
Julien Fontanet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: one var per variable
parent
c243ea1f
Changes
25
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
198 additions
and
193 deletions
+198
-193
lib/api/exists.js
lib/api/exists.js
+2
-2
lib/api/mkdir.js
lib/api/mkdir.js
+2
-2
lib/api/readFile.js
lib/api/readFile.js
+8
-8
lib/api/readdir.js
lib/api/readdir.js
+2
-2
lib/api/rmdir.js
lib/api/rmdir.js
+3
-3
lib/api/unlink.js
lib/api/unlink.js
+3
-3
lib/api/writeFile.js
lib/api/writeFile.js
+14
-14
lib/messages/close.js
lib/messages/close.js
+2
-2
lib/messages/create_folder.js
lib/messages/create_folder.js
+2
-2
lib/messages/negotiate.js
lib/messages/negotiate.js
+2
-2
lib/messages/open.js
lib/messages/open.js
+2
-2
lib/messages/open_folder.js
lib/messages/open_folder.js
+2
-2
lib/messages/query_directory.js
lib/messages/query_directory.js
+7
-7
lib/messages/read.js
lib/messages/read.js
+2
-2
lib/messages/session_setup_step1.js
lib/messages/session_setup_step1.js
+3
-3
lib/messages/session_setup_step2.js
lib/messages/session_setup_step2.js
+3
-3
lib/messages/set_info.js
lib/messages/set_info.js
+2
-2
lib/messages/tree_connect.js
lib/messages/tree_connect.js
+2
-2
lib/messages/write.js
lib/messages/write.js
+2
-2
lib/smb2.js
lib/smb2.js
+4
-4
lib/tools/bigint.js
lib/tools/bigint.js
+18
-18
lib/tools/message.js
lib/tools/message.js
+4
-4
lib/tools/smb2-connection.js
lib/tools/smb2-connection.js
+3
-3
lib/tools/smb2-forge.js
lib/tools/smb2-forge.js
+4
-4
lib/tools/smb2-message.js
lib/tools/smb2-message.js
+100
-95
No files found.
lib/api/exists.js
View file @
24adc6c7
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
,
SMB2Request
=
SMB2Forge
.
request
;
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
;
var
SMB2Request
=
SMB2Forge
.
request
;
/*
* exists
...
...
lib/api/mkdir.js
View file @
24adc6c7
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
,
SMB2Request
=
SMB2Forge
.
request
;
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
;
var
SMB2Request
=
SMB2Forge
.
request
;
/*
* mkdir
...
...
lib/api/readFile.js
View file @
24adc6c7
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
,
SMB2Request
=
SMB2Forge
.
request
,
bigint
=
require
(
'
../tools/bigint
'
),
MAX_READ_LENGTH
=
require
(
'
../structures/constants
'
).
MAX_READ_LENGTH
;
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
;
var
SMB2Request
=
SMB2Forge
.
request
;
var
bigint
=
require
(
'
../tools/bigint
'
);
var
MAX_READ_LENGTH
=
require
(
'
../structures/constants
'
).
MAX_READ_LENGTH
;
/*
* readFile
...
...
@@ -28,10 +28,10 @@ module.exports = function readFile(filename, options, cb) {
if
(
err
)
cb
&&
cb
(
err
);
// SMB2 read file content
else
{
var
fileLength
=
0
,
offset
=
new
bigint
(
8
),
stop
=
false
,
nbRemainingPackets
=
0
;
var
fileLength
=
0
;
var
offset
=
new
bigint
(
8
);
var
stop
=
false
;
var
nbRemainingPackets
=
0
;
// get file length
for
(
var
i
=
0
;
i
<
file
.
EndofFile
.
length
;
i
++
)
{
fileLength
+=
file
.
EndofFile
[
i
]
*
Math
.
pow
(
2
,
i
*
8
);
...
...
lib/api/readdir.js
View file @
24adc6c7
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
,
SMB2Request
=
SMB2Forge
.
request
;
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
;
var
SMB2Request
=
SMB2Forge
.
request
;
/*
* readdir
...
...
lib/api/rmdir.js
View file @
24adc6c7
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
,
SMB2Request
=
SMB2Forge
.
request
,
bigint
=
require
(
'
../tools/bigint
'
);
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
;
var
SMB2Request
=
SMB2Forge
.
request
;
var
bigint
=
require
(
'
../tools/bigint
'
);
/*
* rmdir
...
...
lib/api/unlink.js
View file @
24adc6c7
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
,
SMB2Request
=
SMB2Forge
.
request
,
bigint
=
require
(
'
../tools/bigint
'
);
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
;
var
SMB2Request
=
SMB2Forge
.
request
;
var
bigint
=
require
(
'
../tools/bigint
'
);
/*
* unlink
...
...
lib/api/writeFile.js
View file @
24adc6c7
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
,
SMB2Request
=
SMB2Forge
.
request
,
bigint
=
require
(
'
../tools/bigint
'
);
var
SMB2Forge
=
require
(
'
../tools/smb2-forge
'
)
;
var
SMB2Request
=
SMB2Forge
.
request
;
var
bigint
=
require
(
'
../tools/bigint
'
);
/*
* writeFile
...
...
@@ -18,19 +18,19 @@ var SMB2Forge = require('../tools/smb2-forge'),
*
*/
module
.
exports
=
function
writeFile
(
filename
,
data
,
options
,
cb
)
{
if
(
typeof
options
==
'
function
'
)
{
if
(
typeof
options
==
=
'
function
'
)
{
cb
=
options
;
options
=
{};
}
options
.
encoding
=
options
.
encoding
||
'
utf8
'
;
var
connection
=
this
,
file
,
fileContent
=
Buffer
.
isBuffer
(
data
)
var
connection
=
this
;
var
file
;
var
fileContent
=
Buffer
.
isBuffer
(
data
)
?
data
:
Buffer
.
from
(
data
,
options
.
encoding
),
fileLength
=
new
bigint
(
8
,
fileContent
.
length
);
:
Buffer
.
from
(
data
,
options
.
encoding
);
var
fileLength
=
new
bigint
(
8
,
fileContent
.
length
);
function
createFile
(
fileCreated
)
{
SMB2Request
(
'
create
'
,
{
path
:
filename
},
connection
,
function
(
err
,
f
)
{
...
...
@@ -70,10 +70,10 @@ module.exports = function writeFile(filename, data, options, cb) {
}
function
writeFile
(
fileWritten
)
{
var
offset
=
new
bigint
(
8
)
,
stop
=
false
,
nbRemainingPackets
=
0
,
maxPacketSize
=
new
bigint
(
8
,
0x00010000
-
0x71
);
var
offset
=
new
bigint
(
8
)
;
var
stop
=
false
;
var
nbRemainingPackets
=
0
;
var
maxPacketSize
=
new
bigint
(
8
,
0x00010000
-
0x71
);
// callback manager
function
callback
()
{
return
function
(
err
)
{
...
...
lib/messages/close.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
module
.
exports
=
message
({
generate
:
function
(
connection
,
params
)
{
...
...
lib/messages/create_folder.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
var
constants
=
require
(
'
../structures/constants
'
);
module
.
exports
=
message
({
...
...
lib/messages/negotiate.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
module
.
exports
=
message
({
generate
:
function
(
connection
)
{
...
...
lib/messages/open.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
module
.
exports
=
message
({
generate
:
function
(
connection
,
params
)
{
...
...
lib/messages/open_folder.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
var
constants
=
require
(
'
../structures/constants
'
);
module
.
exports
=
message
({
...
...
lib/messages/query_directory.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
module
.
exports
=
message
({
generate
:
function
(
connection
,
params
)
{
...
...
@@ -26,9 +26,9 @@ module.exports = message({
* HELPERS
*/
function
parseFiles
(
buffer
)
{
var
files
=
[]
,
offset
=
0
,
nextFileOffset
=
-
1
;
var
files
=
[]
;
var
offset
=
0
;
var
nextFileOffset
=
-
1
;
while
(
nextFileOffset
!=
0
)
{
// extract next file offset
nextFileOffset
=
buffer
.
readUInt32LE
(
offset
);
...
...
@@ -48,8 +48,8 @@ function parseFiles(buffer) {
}
function
parseFile
(
buffer
)
{
var
file
=
{}
,
offset
=
0
;
var
file
=
{}
;
var
offset
=
0
;
// index
file
.
Index
=
buffer
.
readUInt32LE
(
offset
);
...
...
lib/messages/read.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
module
.
exports
=
message
({
generate
:
function
(
connection
,
file
)
{
...
...
lib/messages/session_setup_step1.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
),
ntlm
=
require
(
'
ntlm
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
var
ntlm
=
require
(
'
ntlm
'
);
module
.
exports
=
message
({
generate
:
function
(
connection
)
{
...
...
lib/messages/session_setup_step2.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
),
ntlm
=
require
(
'
ntlm
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
var
ntlm
=
require
(
'
ntlm
'
);
module
.
exports
=
message
({
generate
:
function
(
connection
)
{
...
...
lib/messages/set_info.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
var
fileInfoClasses
=
{
FileAllocationInformation
:
19
,
...
...
lib/messages/tree_connect.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
module
.
exports
=
message
({
generate
:
function
(
connection
)
{
...
...
lib/messages/write.js
View file @
24adc6c7
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
,
message
=
require
(
'
../tools/message
'
);
var
SMB2Message
=
require
(
'
../tools/smb2-message
'
)
;
var
message
=
require
(
'
../tools/message
'
);
module
.
exports
=
message
({
generate
:
function
(
connection
,
params
)
{
...
...
lib/smb2.js
View file @
24adc6c7
/*
* CONSTANTS
*/
var
shareRegExp
=
/
\\\\([^\\]
*
)\\([^\\]
*
)\\?
/
,
port
=
445
,
packetConcurrency
=
20
,
autoCloseTimeout
=
10000
;
var
shareRegExp
=
/
\\\\([^\\]
*
)\\([^\\]
*
)\\?
/
;
var
port
=
445
;
var
packetConcurrency
=
20
;
var
autoCloseTimeout
=
10000
;
/*
* DEPENDENCIES
...
...
lib/tools/bigint.js
View file @
24adc6c7
...
...
@@ -17,8 +17,8 @@ var BigInt = (module.exports = function(n, v) {
v
=
v
.
toString
(
16
);
var
size
=
Math
.
ceil
(
v
.
length
/
2
)
,
carry
=
size
*
2
-
v
.
length
;
var
size
=
Math
.
ceil
(
v
.
length
/
2
)
;
var
carry
=
size
*
2
-
v
.
length
;
for
(
var
i
=
0
;
i
<
size
;
i
++
)
{
var
start
=
(
size
-
i
-
1
)
*
2
-
carry
;
...
...
@@ -43,7 +43,7 @@ BigInt.toBigInt = function(n, v) {
};
BigInt
.
fromBuffer
=
function
(
b
,
sign
)
{
sign
=
typeof
sign
==
'
undefined
'
?
1
:
sign
;
sign
=
typeof
sign
==
=
'
undefined
'
?
1
:
sign
;
var
bi
=
new
BigInt
(
0
);
bi
.
sign
=
sign
;
bi
.
buffer
=
b
;
...
...
@@ -62,9 +62,9 @@ BigInt.prototype.add = function(v) {
return
this
.
neg
().
sub
(
v
);
}
var
carry
=
0
,
n
=
Math
.
max
(
v
.
buffer
.
length
,
this
.
buffer
.
length
),
result
=
new
BigInt
(
n
);
var
carry
=
0
;
var
n
=
Math
.
max
(
v
.
buffer
.
length
,
this
.
buffer
.
length
);
var
result
=
new
BigInt
(
n
);
for
(
var
i
=
0
;
i
<
n
;
i
++
)
{
var
r
=
(
i
<
this
.
buffer
.
length
?
this
.
buffer
.
readUInt8
(
i
)
:
0
)
+
...
...
@@ -100,12 +100,12 @@ BigInt.prototype.sub = function(v) {
return
this
.
add
(
v
.
neg
());
}
var
carry
=
0
,
a
=
new
BigInt
(
this
),
b
=
new
BigInt
(
v
),
n
=
Math
.
max
(
a
.
buffer
.
length
,
b
.
buffer
.
length
),
result
=
new
BigInt
(
n
),
sign
=
this
.
sign
;
var
carry
=
0
;
var
a
=
new
BigInt
(
this
);
var
b
=
new
BigInt
(
v
);
var
n
=
Math
.
max
(
a
.
buffer
.
length
,
b
.
buffer
.
length
);
var
result
=
new
BigInt
(
n
);
var
sign
=
this
.
sign
;
if
(
a
.
abs
().
lt
(
b
.
abs
()))
{
var
t
=
a
;
...
...
@@ -115,10 +115,10 @@ BigInt.prototype.sub = function(v) {
}
for
(
var
i
=
0
;
i
<
n
;
i
++
)
{
var
va
=
i
<
a
.
buffer
.
length
?
a
.
buffer
.
readUInt8
(
i
)
:
0
,
vb
=
i
<
b
.
buffer
.
length
?
b
.
buffer
.
readUInt8
(
i
)
:
0
,
c
=
0
,
r
=
va
-
vb
-
carry
;
var
va
=
i
<
a
.
buffer
.
length
?
a
.
buffer
.
readUInt8
(
i
)
:
0
;
var
vb
=
i
<
b
.
buffer
.
length
?
b
.
buffer
.
readUInt8
(
i
)
:
0
;
var
c
=
0
;
var
r
=
va
-
vb
-
carry
;
while
(
r
<
0
)
{
r
+=
0xff
;
...
...
@@ -165,8 +165,8 @@ BigInt.prototype.compare = function(v) {
if
(
this
.
sign
<
v
.
sign
)
return
-
1
;
for
(
var
i
=
n
-
1
;
i
>=
0
;
i
--
)
{
var
a
=
i
<
this
.
buffer
.
length
?
this
.
buffer
.
readUInt8
(
i
)
:
0
,
b
=
i
<
v
.
buffer
.
length
?
v
.
buffer
.
readUInt8
(
i
)
:
0
;
var
a
=
i
<
this
.
buffer
.
length
?
this
.
buffer
.
readUInt8
(
i
)
:
0
;
var
b
=
i
<
v
.
buffer
.
length
?
v
.
buffer
.
readUInt8
(
i
)
:
0
;
if
(
a
!=
b
)
{
return
a
>
b
?
this
.
sign
:
-
this
.
sign
;
}
...
...
lib/tools/message.js
View file @
24adc6c7
var
MsErref
=
require
(
'
./ms_erref
'
)
,
bigint
=
require
(
'
./bigint
'
);
var
MsErref
=
require
(
'
./ms_erref
'
)
;
var
bigint
=
require
(
'
./bigint
'
);
var
defaults
=
{
successCode
:
'
STATUS_SUCCESS
'
,
...
...
@@ -8,8 +8,8 @@ var defaults = {
var
self
=
this
;
return
function
(
response
)
{
var
h
=
response
.
getHeaders
()
,
err
=
MsErref
.
getStatus
(
bigint
.
fromBuffer
(
h
.
Status
).
toNumber
());
var
h
=
response
.
getHeaders
()
;
var
err
=
MsErref
.
getStatus
(
bigint
.
fromBuffer
(
h
.
Status
).
toNumber
());
if
(
err
.
code
==
self
.
successCode
)
{
self
.
onSuccess
&&
self
.
onSuccess
(
connection
,
response
);
cb
&&
cb
(
null
,
self
.
parseResponse
&&
self
.
parseResponse
(
response
));
...
...
lib/tools/smb2-connection.js
View file @
24adc6c7
/*
* DEPENDENCIES
*/
var
net
=
require
(
'
net
'
)
,
SMB2Forge
=
require
(
'
./smb2-forge
'
),
SMB2Request
=
SMB2Forge
.
request
;
var
net
=
require
(
'
net
'
)
;
var
SMB2Forge
=
require
(
'
./smb2-forge
'
);
var
SMB2Request
=
SMB2Forge
.
request
;
/*
* CONNECTION MANAGER
...
...
lib/tools/smb2-forge.js
View file @
24adc6c7
...
...
@@ -12,8 +12,8 @@ var SMB2Forge = (module.exports = {});
* SMB2 MESSAGE FORGE
*/
SMB2Forge
.
request
=
function
(
messageName
,
params
,
connection
,
cb
)
{
var
msg
=
require
(
'
../messages/
'
+
messageName
)
,
smbMessage
=
msg
.
generate
(
connection
,
params
);
var
msg
=
require
(
'
../messages/
'
+
messageName
)
;
var
smbMessage
=
msg
.
generate
(
connection
,
params
);
// send
sendNetBiosMessage
(
connection
,
smbMessage
);
// wait for the response
...
...
@@ -48,8 +48,8 @@ SMB2Forge.response = function(c) {
// set the flags
extract
=
true
;
// parse message
var
r
=
c
.
responseBuffer
.
slice
(
4
,
msgLength
+
4
)
,
message
=
new
SMB2Message
();
var
r
=
c
.
responseBuffer
.
slice
(
4
,
msgLength
+
4
)
;
var
message
=
new
SMB2Message
();
message
.
parseBuffer
(
r
);
//debug
if
(
c
.
debug
)
{
...
...
lib/tools/smb2-message.js
View file @
24adc6c7
...
...
@@ -6,8 +6,9 @@ var protocolId = Buffer.from([
'
S
'
.
charCodeAt
(
0
),
'
M
'
.
charCodeAt
(
0
),
'
B
'
.
charCodeAt
(
0
),
]),
headerTranslates
=
{
]);
var
headerTranslates
=
{
Command
:
{
NEGOTIATE
:
0x0000
,
SESSION_SETUP
:
0x0001
,
...
...
@@ -29,18 +30,21 @@ var protocolId = Buffer.from([
SET_INFO
:
0x0011
,
OPLOCK_BREAK
:
0x0012
,
},
},
// eslint-disable-next-line no-unused-vars
flags
=
{
};
// eslint-disable-next-line no-unused-vars
var
flags
=
{
SERVER_TO_REDIR
:
0x00000001
,
ASYNC_COMMAND
:
0x00000002
,
RELATED_OPERATIONS
:
0x00000004
,
SIGNED
:
0x00000008
,
DFS_OPERATIONS
:
0x10000000
,
REPLAY_OPERATION
:
0x20000000
,
},
headerLength
=
64
,
headerSync
=
function
(
processId
,
sessionId
)
{
};
var
headerLength
=
64
;
var
headerSync
=
function
(
processId
,
sessionId
)
{
return
[
[
'
ProtocolId
'
,
4
,
protocolId
],
[
'
StructureSize
'
,
2
,
headerLength
],
...
...
@@ -57,8 +61,9 @@ var protocolId = Buffer.from([
[
'
SessionId
'
,
8
,
sessionId
],
[
'
Signature
'
,
16
,
0
],
];
},
headerASync
=
function
(
processId
,
sessionId
)
{
};
var
headerASync
=
function
(
processId
,
sessionId
)
{
return
[
[
'
ProtocolId
'
,
4
,
protocolId
],
[
'
StructureSize
'
,
2
,
headerLength
],
...
...
@@ -74,7 +79,7 @@ var protocolId = Buffer.from([
[
'
SessionId
'
,
8
,
sessionId
],
[
'
Signature
'
,
16
,
0
],
];
};
};
/*
* CONSTRUCTOR
...
...
@@ -119,8 +124,8 @@ proto.getResponse = function() {
};
proto
.
getBuffer
=
function
(
connection
)
{
var
buffer
=
Buffer
.
allocUnsafe
(
0xffff
)
,
length
=
0
;
var
buffer
=
Buffer
.
allocUnsafe
(
0xffff
)
;
var
length
=
0
;
// SET MESSAGE ID
if
(
!
this
.
isMessageIdSetted
)
{
...
...
@@ -215,11 +220,11 @@ function readHeaders(message, buffer) {
var
header
=
(
message
.
isAsync
?
headerASync
:
headerSync
)(
message
.
ProcessId
,
message
.
SessionId
),
offset
=
0
;
);
var
offset
=
0
;
for
(
var
i
in
header
)
{
var
key
=
header
[
i
][
0
]
,
length
=
header
[
i
][
1
];
var
key
=
header
[
i
][
0
]
;
var
length
=
header
[
i
][
1
];
message
.
headers
[
key
]
=
readData
(
buffer
,
offset
,
length
);
if
(
length
<=
8
)
{
message
.
headers
[
key
]
=
...
...
@@ -236,12 +241,12 @@ function writeHeaders(message, buffer) {
var
header
=
(
message
.
isAsync
?
headerASync
:
headerSync
)(
message
.
ProcessId
,
message
.
SessionId
),
offset
=
0
;
);
var
offset
=
0
;
for
(
var
i
in
header
)
{
var
key
=
header
[
i
][
0
]
,
length
=
header
[
i
][
1
],
defaultValue
=
header
[
i
][
2
]
||
0
;
var
key
=
header
[
i
][
0
]
;
var
length
=
header
[
i
][
1
];
var
defaultValue
=
header
[
i
][
2
]
||
0
;
writeData
(
buffer
,
translate
(
key
,
message
.
headers
[
key
]
||
defaultValue
),
...
...
@@ -255,8 +260,8 @@ function writeHeaders(message, buffer) {
function
readResponse
(
message
,
buffer
,
offset
)
{
for
(
var
i
in
message
.
structure
.
response
)
{
var
key
=
message
.
structure
.
response
[
i
][
0
]
,
length
=
message
.
structure
.
response
[
i
][
1
]
||
1
;
var
key
=
message
.
structure
.
response
[
i
][
0
]
;
var
length
=
message
.
structure
.
response
[
i
][
1
]
||
1
;
if
(
typeof
length
==
'
string
'
)
{
length
=
bufferToData
(
message
.
response
[
length
]);
}
...
...
@@ -266,14 +271,14 @@ function readResponse(message, buffer, offset) {
}
function
writeRequest
(
message
,
buffer
,
offset
)
{
var
initOffset
=
offset
,
needsRewrite
=
false
,
tmpBuffer
=
Buffer
.
allocUnsafe
(
buffer
.
length
);
var
initOffset
=
offset
;
var
needsRewrite
=
false
;
var
tmpBuffer
=
Buffer
.
allocUnsafe
(
buffer
.
length
);
offset
=
0
;
for
(
var
i
in
message
.
structure
.
request
)
{
var
key
=
message
.
structure
.
request
[
i
][
0
]
,
length
=
message
.
structure
.
request
[
i
][
1
]
||
1
,
defaultValue
=
message
.
structure
.
request
[
i
][
2
]
||
0
;
var
key
=
message
.
structure
.
request
[
i
][
0
]
;
var
length
=
message
.
structure
.
request
[
i
][
1
]
||
1
;
var
defaultValue
=
message
.
structure
.
request
[
i
][
2
]
||
0
;
if
(
typeof
length
==
'
string
'
)
{
message
.
request
[
key
]
=
message
.
request
[
key
]
||
''
;
if
(
message
.
request
[
length
]
!=
message
.
request
[
key
].
length
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment