Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
neoppod
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
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
Levin Zimmermann
neoppod
Commits
5576b24e
Commit
5576b24e
authored
Apr 21, 2017
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
X Regenerate marshal.go after merge
parent
8732edd6
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
401 additions
and
212 deletions
+401
-212
t/neo/marshal.go
t/neo/marshal.go
+401
-212
No files found.
t/neo/marshal.go
View file @
5576b24e
...
@@ -897,14 +897,45 @@ func (p *StopOperation) NEODecode(data []byte) (int, error) {
...
@@ -897,14 +897,45 @@ func (p *StopOperation) NEODecode(data []byte) (int, error) {
// 25. UnfinishedTransactions
// 25. UnfinishedTransactions
func
(
p
*
UnfinishedTransactions
)
NEOEncodedLen
()
int
{
func
(
p
*
UnfinishedTransactions
)
NEOEncodedLen
()
int
{
return
0
return
4
+
len
(
p
.
RowList
)
*
4
}
}
func
(
p
*
UnfinishedTransactions
)
NEOEncode
(
data
[]
byte
)
{
func
(
p
*
UnfinishedTransactions
)
NEOEncode
(
data
[]
byte
)
{
{
l
:=
uint32
(
len
(
p
.
RowList
))
binary
.
BigEndian
.
PutUint32
(
data
[
0
:
],
l
)
data
=
data
[
4
:
]
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
RowList
[
i
]
binary
.
BigEndian
.
PutUint32
(
data
[
0
:
],
(
*
a
)
.
Offset
)
data
=
data
[
4
:
]
}
}
}
}
func
(
p
*
UnfinishedTransactions
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
func
(
p
*
UnfinishedTransactions
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
return
0
,
nil
var
nread
uint32
if
uint32
(
len
(
data
))
<
4
{
goto
overflow
}
{
l
:=
binary
.
BigEndian
.
Uint32
(
data
[
0
:
])
data
=
data
[
4
:
]
if
uint32
(
len
(
data
))
<
l
*
4
{
goto
overflow
}
nread
+=
l
*
4
p
.
RowList
=
make
([]
struct
{
Offset
uint32
},
l
)
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
RowList
[
i
]
(
*
a
)
.
Offset
=
binary
.
BigEndian
.
Uint32
(
data
[
0
:
])
data
=
data
[
4
:
]
}
}
return
4
+
int
(
nread
),
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
}
// 26. AnswerUnfinishedTransactions
// 26. AnswerUnfinishedTransactions
...
@@ -1123,7 +1154,53 @@ overflow:
...
@@ -1123,7 +1154,53 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 34. FinishTransaction
// 34. FailedVote
func
(
p
*
FailedVote
)
NEOEncodedLen
()
int
{
return
12
+
len
(
p
.
UUIDList
)
*
4
}
func
(
p
*
FailedVote
)
NEOEncode
(
data
[]
byte
)
{
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
Tid
))
{
l
:=
uint32
(
len
(
p
.
UUIDList
))
binary
.
BigEndian
.
PutUint32
(
data
[
8
:
],
l
)
data
=
data
[
12
:
]
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
UUIDList
[
i
]
binary
.
BigEndian
.
PutUint32
(
data
[
0
:
],
uint32
(
int32
((
*
a
))))
data
=
data
[
4
:
]
}
}
}
func
(
p
*
FailedVote
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
var
nread
uint32
if
uint32
(
len
(
data
))
<
12
{
goto
overflow
}
p
.
Tid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
{
l
:=
binary
.
BigEndian
.
Uint32
(
data
[
8
:
])
data
=
data
[
12
:
]
if
uint32
(
len
(
data
))
<
l
*
4
{
goto
overflow
}
nread
+=
l
*
4
p
.
UUIDList
=
make
([]
UUID
,
l
)
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
UUIDList
[
i
]
(
*
a
)
=
UUID
(
int32
(
binary
.
BigEndian
.
Uint32
(
data
[
0
:
])))
data
=
data
[
4
:
]
}
}
return
12
+
int
(
nread
),
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
// 35. FinishTransaction
func
(
p
*
FinishTransaction
)
NEOEncodedLen
()
int
{
func
(
p
*
FinishTransaction
)
NEOEncodedLen
()
int
{
return
16
+
len
(
p
.
OIDList
)
*
8
+
len
(
p
.
CheckedList
)
*
8
return
16
+
len
(
p
.
OIDList
)
*
8
+
len
(
p
.
CheckedList
)
*
8
...
@@ -1193,7 +1270,7 @@ overflow:
...
@@ -1193,7 +1270,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 3
5
. AnswerFinishTransaction
// 3
6
. AnswerFinishTransaction
func
(
p
*
AnswerFinishTransaction
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerFinishTransaction
)
NEOEncodedLen
()
int
{
return
16
return
16
...
@@ -1216,7 +1293,7 @@ overflow:
...
@@ -1216,7 +1293,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 3
6
. NotifyTransactionFinished
// 3
7
. NotifyTransactionFinished
func
(
p
*
NotifyTransactionFinished
)
NEOEncodedLen
()
int
{
func
(
p
*
NotifyTransactionFinished
)
NEOEncodedLen
()
int
{
return
16
return
16
...
@@ -1239,7 +1316,7 @@ overflow:
...
@@ -1239,7 +1316,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 3
7
. LockInformation
// 3
8
. LockInformation
func
(
p
*
LockInformation
)
NEOEncodedLen
()
int
{
func
(
p
*
LockInformation
)
NEOEncodedLen
()
int
{
return
16
return
16
...
@@ -1262,7 +1339,7 @@ overflow:
...
@@ -1262,7 +1339,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 3
8
. AnswerLockInformation
// 3
9
. AnswerLockInformation
func
(
p
*
AnswerLockInformation
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerLockInformation
)
NEOEncodedLen
()
int
{
return
8
return
8
...
@@ -1283,7 +1360,7 @@ overflow:
...
@@ -1283,7 +1360,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
39
. InvalidateObjects
//
40
. InvalidateObjects
func
(
p
*
InvalidateObjects
)
NEOEncodedLen
()
int
{
func
(
p
*
InvalidateObjects
)
NEOEncodedLen
()
int
{
return
12
+
len
(
p
.
OidList
)
*
8
return
12
+
len
(
p
.
OidList
)
*
8
...
@@ -1329,7 +1406,7 @@ overflow:
...
@@ -1329,7 +1406,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 4
0
. UnlockInformation
// 4
1
. UnlockInformation
func
(
p
*
UnlockInformation
)
NEOEncodedLen
()
int
{
func
(
p
*
UnlockInformation
)
NEOEncodedLen
()
int
{
return
8
return
8
...
@@ -1350,7 +1427,7 @@ overflow:
...
@@ -1350,7 +1427,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 4
1
. GenerateOIDs
// 4
2
. GenerateOIDs
func
(
p
*
GenerateOIDs
)
NEOEncodedLen
()
int
{
func
(
p
*
GenerateOIDs
)
NEOEncodedLen
()
int
{
return
4
return
4
...
@@ -1371,7 +1448,7 @@ overflow:
...
@@ -1371,7 +1448,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 4
2
. AnswerGenerateOIDs
// 4
3
. AnswerGenerateOIDs
func
(
p
*
AnswerGenerateOIDs
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerGenerateOIDs
)
NEOEncodedLen
()
int
{
return
4
+
len
(
p
.
OidList
)
*
8
return
4
+
len
(
p
.
OidList
)
*
8
...
@@ -1415,10 +1492,169 @@ overflow:
...
@@ -1415,10 +1492,169 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 43. StoreObject
// 44. Deadlock
func
(
p
*
Deadlock
)
NEOEncodedLen
()
int
{
return
16
}
func
(
p
*
Deadlock
)
NEOEncode
(
data
[]
byte
)
{
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
TTid
))
binary
.
BigEndian
.
PutUint64
(
data
[
8
:
],
uint64
(
p
.
LockingTid
))
}
func
(
p
*
Deadlock
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
if
uint32
(
len
(
data
))
<
16
{
goto
overflow
}
p
.
TTid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
LockingTid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
8
:
]))
return
16
,
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
// 45. RebaseTransaction
func
(
p
*
RebaseTransaction
)
NEOEncodedLen
()
int
{
return
16
}
func
(
p
*
RebaseTransaction
)
NEOEncode
(
data
[]
byte
)
{
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
TTid
))
binary
.
BigEndian
.
PutUint64
(
data
[
8
:
],
uint64
(
p
.
LockingTid
))
}
func
(
p
*
RebaseTransaction
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
if
uint32
(
len
(
data
))
<
16
{
goto
overflow
}
p
.
TTid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
LockingTid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
8
:
]))
return
16
,
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
// 46. AnswerRebaseTransaction
func
(
p
*
AnswerRebaseTransaction
)
NEOEncodedLen
()
int
{
return
4
+
len
(
p
.
OidList
)
*
8
}
func
(
p
*
AnswerRebaseTransaction
)
NEOEncode
(
data
[]
byte
)
{
{
l
:=
uint32
(
len
(
p
.
OidList
))
binary
.
BigEndian
.
PutUint32
(
data
[
0
:
],
l
)
data
=
data
[
4
:
]
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
OidList
[
i
]
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
((
*
a
)))
data
=
data
[
8
:
]
}
}
}
func
(
p
*
AnswerRebaseTransaction
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
var
nread
uint32
if
uint32
(
len
(
data
))
<
4
{
goto
overflow
}
{
l
:=
binary
.
BigEndian
.
Uint32
(
data
[
0
:
])
data
=
data
[
4
:
]
if
uint32
(
len
(
data
))
<
l
*
8
{
goto
overflow
}
nread
+=
l
*
8
p
.
OidList
=
make
([]
zodb
.
Oid
,
l
)
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
OidList
[
i
]
(
*
a
)
=
zodb
.
Oid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
data
=
data
[
8
:
]
}
}
return
4
+
int
(
nread
),
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
// 47. RebaseObject
func
(
p
*
RebaseObject
)
NEOEncodedLen
()
int
{
return
16
}
func
(
p
*
RebaseObject
)
NEOEncode
(
data
[]
byte
)
{
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
TTid
))
binary
.
BigEndian
.
PutUint64
(
data
[
8
:
],
uint64
(
p
.
Oid
))
}
func
(
p
*
RebaseObject
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
if
uint32
(
len
(
data
))
<
16
{
goto
overflow
}
p
.
TTid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
Oid
=
zodb
.
Oid
(
binary
.
BigEndian
.
Uint64
(
data
[
8
:
]))
return
16
,
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
// 48. AnswerRebaseObject
func
(
p
*
AnswerRebaseObject
)
NEOEncodedLen
()
int
{
return
41
+
len
(
p
.
Data
)
}
func
(
p
*
AnswerRebaseObject
)
NEOEncode
(
data
[]
byte
)
{
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
Serial
))
binary
.
BigEndian
.
PutUint64
(
data
[
8
:
],
uint64
(
p
.
ConflictSerial
))
(
data
[
16
:
])[
0
]
=
bool2byte
(
p
.
Compression
)
copy
(
data
[
17
:
],
p
.
Checksum
[
:
])
{
l
:=
uint32
(
len
(
p
.
Data
))
binary
.
BigEndian
.
PutUint32
(
data
[
37
:
],
l
)
data
=
data
[
41
:
]
copy
(
data
,
p
.
Data
)
data
=
data
[
l
:
]
}
}
func
(
p
*
AnswerRebaseObject
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
var
nread
uint32
if
uint32
(
len
(
data
))
<
41
{
goto
overflow
}
p
.
Serial
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
ConflictSerial
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
8
:
]))
p
.
Compression
=
byte2bool
((
data
[
16
:
])[
0
])
copy
(
p
.
Checksum
[
:
],
data
[
17
:
37
])
{
l
:=
binary
.
BigEndian
.
Uint32
(
data
[
37
:
])
data
=
data
[
41
:
]
if
uint32
(
len
(
data
))
<
l
{
goto
overflow
}
nread
+=
l
p
.
Data
=
make
([]
byte
,
l
)
copy
(
p
.
Data
,
data
[
:
l
])
data
=
data
[
l
:
]
}
return
41
+
int
(
nread
),
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
// 49. StoreObject
func
(
p
*
StoreObject
)
NEOEncodedLen
()
int
{
func
(
p
*
StoreObject
)
NEOEncodedLen
()
int
{
return
5
8
+
len
(
p
.
Data
)
return
5
7
+
len
(
p
.
Data
)
}
}
func
(
p
*
StoreObject
)
NEOEncode
(
data
[]
byte
)
{
func
(
p
*
StoreObject
)
NEOEncode
(
data
[]
byte
)
{
...
@@ -1435,7 +1671,6 @@ func (p *StoreObject) NEOEncode(data []byte) {
...
@@ -1435,7 +1671,6 @@ func (p *StoreObject) NEOEncode(data []byte) {
}
}
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
DataSerial
))
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
DataSerial
))
binary
.
BigEndian
.
PutUint64
(
data
[
8
:
],
uint64
(
p
.
Tid
))
binary
.
BigEndian
.
PutUint64
(
data
[
8
:
],
uint64
(
p
.
Tid
))
(
data
[
16
:
])[
0
]
=
bool2byte
(
p
.
Unlock
)
}
}
func
(
p
*
StoreObject
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
func
(
p
*
StoreObject
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
...
@@ -1450,70 +1685,90 @@ func (p *StoreObject) NEODecode(data []byte) (int, error) {
...
@@ -1450,70 +1685,90 @@ func (p *StoreObject) NEODecode(data []byte) (int, error) {
{
{
l
:=
binary
.
BigEndian
.
Uint32
(
data
[
37
:
])
l
:=
binary
.
BigEndian
.
Uint32
(
data
[
37
:
])
data
=
data
[
41
:
]
data
=
data
[
41
:
]
if
uint32
(
len
(
data
))
<
1
7
+
l
{
if
uint32
(
len
(
data
))
<
1
6
+
l
{
goto
overflow
goto
overflow
}
}
nread
+=
1
7
+
l
nread
+=
1
6
+
l
p
.
Data
=
make
([]
byte
,
l
)
p
.
Data
=
make
([]
byte
,
l
)
copy
(
p
.
Data
,
data
[
:
l
])
copy
(
p
.
Data
,
data
[
:
l
])
data
=
data
[
l
:
]
data
=
data
[
l
:
]
}
}
p
.
DataSerial
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
DataSerial
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
Tid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
8
:
]))
p
.
Tid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
8
:
]))
p
.
Unlock
=
byte2bool
((
data
[
16
:
])[
0
])
return
41
+
int
(
nread
),
nil
return
41
+
int
(
nread
),
nil
overflow
:
overflow
:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
44
. AnswerStoreObject
//
50
. AnswerStoreObject
func
(
p
*
AnswerStoreObject
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerStoreObject
)
NEOEncodedLen
()
int
{
return
17
return
8
}
}
func
(
p
*
AnswerStoreObject
)
NEOEncode
(
data
[]
byte
)
{
func
(
p
*
AnswerStoreObject
)
NEOEncode
(
data
[]
byte
)
{
(
data
[
0
:
])[
0
]
=
bool2byte
(
p
.
Conflicting
)
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
Conflict
))
binary
.
BigEndian
.
PutUint64
(
data
[
1
:
],
uint64
(
p
.
Oid
))
binary
.
BigEndian
.
PutUint64
(
data
[
9
:
],
uint64
(
p
.
Serial
))
}
}
func
(
p
*
AnswerStoreObject
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
func
(
p
*
AnswerStoreObject
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
if
uint32
(
len
(
data
))
<
17
{
if
uint32
(
len
(
data
))
<
8
{
goto
overflow
goto
overflow
}
}
p
.
Conflicting
=
byte2bool
((
data
[
0
:
])[
0
])
p
.
Conflict
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
Oid
=
zodb
.
Oid
(
binary
.
BigEndian
.
Uint64
(
data
[
1
:
]))
return
8
,
nil
p
.
Serial
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
9
:
]))
return
17
,
nil
overflow
:
overflow
:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
45
. AbortTransaction
//
51
. AbortTransaction
func
(
p
*
AbortTransaction
)
NEOEncodedLen
()
int
{
func
(
p
*
AbortTransaction
)
NEOEncodedLen
()
int
{
return
8
return
12
+
len
(
p
.
UUIDList
)
*
4
}
}
func
(
p
*
AbortTransaction
)
NEOEncode
(
data
[]
byte
)
{
func
(
p
*
AbortTransaction
)
NEOEncode
(
data
[]
byte
)
{
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
Tid
))
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
Tid
))
{
l
:=
uint32
(
len
(
p
.
UUIDList
))
binary
.
BigEndian
.
PutUint32
(
data
[
8
:
],
l
)
data
=
data
[
12
:
]
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
UUIDList
[
i
]
binary
.
BigEndian
.
PutUint32
(
data
[
0
:
],
uint32
(
int32
((
*
a
))))
data
=
data
[
4
:
]
}
}
}
}
func
(
p
*
AbortTransaction
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
func
(
p
*
AbortTransaction
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
if
uint32
(
len
(
data
))
<
8
{
var
nread
uint32
if
uint32
(
len
(
data
))
<
12
{
goto
overflow
goto
overflow
}
}
p
.
Tid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
Tid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
return
8
,
nil
{
l
:=
binary
.
BigEndian
.
Uint32
(
data
[
8
:
])
data
=
data
[
12
:
]
if
uint32
(
len
(
data
))
<
l
*
4
{
goto
overflow
}
nread
+=
l
*
4
p
.
UUIDList
=
make
([]
UUID
,
l
)
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
UUIDList
[
i
]
(
*
a
)
=
UUID
(
int32
(
binary
.
BigEndian
.
Uint32
(
data
[
0
:
])))
data
=
data
[
4
:
]
}
}
return
12
+
int
(
nread
),
nil
overflow
:
overflow
:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
46
. StoreTransaction
//
52
. StoreTransaction
func
(
p
*
StoreTransaction
)
NEOEncodedLen
()
int
{
func
(
p
*
StoreTransaction
)
NEOEncodedLen
()
int
{
return
24
+
len
(
p
.
User
)
+
len
(
p
.
Description
)
+
len
(
p
.
Extension
)
+
len
(
p
.
OidList
)
*
8
return
24
+
len
(
p
.
User
)
+
len
(
p
.
Description
)
+
len
(
p
.
Extension
)
+
len
(
p
.
OidList
)
*
8
...
@@ -1610,7 +1865,7 @@ overflow:
...
@@ -1610,7 +1865,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
47
. VoteTransaction
//
53
. VoteTransaction
func
(
p
*
VoteTransaction
)
NEOEncodedLen
()
int
{
func
(
p
*
VoteTransaction
)
NEOEncodedLen
()
int
{
return
8
return
8
...
@@ -1631,7 +1886,7 @@ overflow:
...
@@ -1631,7 +1886,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
48
. GetObject
//
54
. GetObject
func
(
p
*
GetObject
)
NEOEncodedLen
()
int
{
func
(
p
*
GetObject
)
NEOEncodedLen
()
int
{
return
24
return
24
...
@@ -1656,7 +1911,7 @@ overflow:
...
@@ -1656,7 +1911,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
49
. AnswerGetObject
//
55
. AnswerGetObject
func
(
p
*
AnswerGetObject
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerGetObject
)
NEOEncodedLen
()
int
{
return
57
+
len
(
p
.
Data
)
return
57
+
len
(
p
.
Data
)
...
@@ -1706,7 +1961,7 @@ overflow:
...
@@ -1706,7 +1961,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 5
0
. TIDList
// 5
6
. TIDList
func
(
p
*
TIDList
)
NEOEncodedLen
()
int
{
func
(
p
*
TIDList
)
NEOEncodedLen
()
int
{
return
20
return
20
...
@@ -1731,7 +1986,7 @@ overflow:
...
@@ -1731,7 +1986,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 5
1
. AnswerTIDList
// 5
7
. AnswerTIDList
func
(
p
*
AnswerTIDList
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerTIDList
)
NEOEncodedLen
()
int
{
return
4
+
len
(
p
.
TIDList
)
*
8
return
4
+
len
(
p
.
TIDList
)
*
8
...
@@ -1775,7 +2030,7 @@ overflow:
...
@@ -1775,7 +2030,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 5
2
. TIDListFrom
// 5
8
. TIDListFrom
func
(
p
*
TIDListFrom
)
NEOEncodedLen
()
int
{
func
(
p
*
TIDListFrom
)
NEOEncodedLen
()
int
{
return
24
return
24
...
@@ -1802,7 +2057,7 @@ overflow:
...
@@ -1802,7 +2057,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 5
3
. AnswerTIDListFrom
// 5
9
. AnswerTIDListFrom
func
(
p
*
AnswerTIDListFrom
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerTIDListFrom
)
NEOEncodedLen
()
int
{
return
4
+
len
(
p
.
TidList
)
*
8
return
4
+
len
(
p
.
TidList
)
*
8
...
@@ -1846,7 +2101,7 @@ overflow:
...
@@ -1846,7 +2101,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
54
. TransactionInformation
//
60
. TransactionInformation
func
(
p
*
TransactionInformation
)
NEOEncodedLen
()
int
{
func
(
p
*
TransactionInformation
)
NEOEncodedLen
()
int
{
return
8
return
8
...
@@ -1867,7 +2122,7 @@ overflow:
...
@@ -1867,7 +2122,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
55
. AnswerTransactionInformation
//
61
. AnswerTransactionInformation
func
(
p
*
AnswerTransactionInformation
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerTransactionInformation
)
NEOEncodedLen
()
int
{
return
25
+
len
(
p
.
User
)
+
len
(
p
.
Description
)
+
len
(
p
.
Extension
)
+
len
(
p
.
OidList
)
*
8
return
25
+
len
(
p
.
User
)
+
len
(
p
.
Description
)
+
len
(
p
.
Extension
)
+
len
(
p
.
OidList
)
*
8
...
@@ -1966,7 +2221,7 @@ overflow:
...
@@ -1966,7 +2221,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
56
. ObjectHistory
//
62
. ObjectHistory
func
(
p
*
ObjectHistory
)
NEOEncodedLen
()
int
{
func
(
p
*
ObjectHistory
)
NEOEncodedLen
()
int
{
return
24
return
24
...
@@ -1991,7 +2246,7 @@ overflow:
...
@@ -1991,7 +2246,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
57
. AnswerObjectHistory
//
63
. AnswerObjectHistory
func
(
p
*
AnswerObjectHistory
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerObjectHistory
)
NEOEncodedLen
()
int
{
return
12
+
len
(
p
.
HistoryList
)
*
12
return
12
+
len
(
p
.
HistoryList
)
*
12
...
@@ -2042,7 +2297,7 @@ overflow:
...
@@ -2042,7 +2297,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
58
. PartitionList
//
64
. PartitionList
func
(
p
*
PartitionList
)
NEOEncodedLen
()
int
{
func
(
p
*
PartitionList
)
NEOEncodedLen
()
int
{
return
12
return
12
...
@@ -2067,7 +2322,7 @@ overflow:
...
@@ -2067,7 +2322,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
59
. AnswerPartitionList
//
65
. AnswerPartitionList
func
(
p
*
AnswerPartitionList
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerPartitionList
)
NEOEncodedLen
()
int
{
var
size
int
var
size
int
...
@@ -2143,7 +2398,7 @@ overflow:
...
@@ -2143,7 +2398,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 6
0
. X_NodeList
// 6
6
. X_NodeList
func
(
p
*
X_NodeList
)
NEOEncodedLen
()
int
{
func
(
p
*
X_NodeList
)
NEOEncodedLen
()
int
{
return
4
return
4
...
@@ -2164,7 +2419,7 @@ overflow:
...
@@ -2164,7 +2419,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 6
1
. AnswerNodeList
// 6
7
. AnswerNodeList
func
(
p
*
AnswerNodeList
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerNodeList
)
NEOEncodedLen
()
int
{
var
size
int
var
size
int
...
@@ -2238,7 +2493,7 @@ overflow:
...
@@ -2238,7 +2493,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 6
2
. SetNodeState
// 6
8
. SetNodeState
func
(
p
*
SetNodeState
)
NEOEncodedLen
()
int
{
func
(
p
*
SetNodeState
)
NEOEncodedLen
()
int
{
return
8
return
8
...
@@ -2261,7 +2516,7 @@ overflow:
...
@@ -2261,7 +2516,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 6
3
. AddPendingNodes
// 6
9
. AddPendingNodes
func
(
p
*
AddPendingNodes
)
NEOEncodedLen
()
int
{
func
(
p
*
AddPendingNodes
)
NEOEncodedLen
()
int
{
return
4
+
len
(
p
.
UUIDList
)
*
4
return
4
+
len
(
p
.
UUIDList
)
*
4
...
@@ -2305,7 +2560,7 @@ overflow:
...
@@ -2305,7 +2560,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
64
. TweakPartitionTable
//
70
. TweakPartitionTable
func
(
p
*
TweakPartitionTable
)
NEOEncodedLen
()
int
{
func
(
p
*
TweakPartitionTable
)
NEOEncodedLen
()
int
{
return
4
+
len
(
p
.
UUIDList
)
*
4
return
4
+
len
(
p
.
UUIDList
)
*
4
...
@@ -2349,7 +2604,7 @@ overflow:
...
@@ -2349,7 +2604,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
65
. NotifyNodeInformation
//
71
. NotifyNodeInformation
func
(
p
*
NotifyNodeInformation
)
NEOEncodedLen
()
int
{
func
(
p
*
NotifyNodeInformation
)
NEOEncodedLen
()
int
{
var
size
int
var
size
int
...
@@ -2357,14 +2612,15 @@ func (p *NotifyNodeInformation) NEOEncodedLen() int {
...
@@ -2357,14 +2612,15 @@ func (p *NotifyNodeInformation) NEOEncodedLen() int {
a
:=
&
p
.
NodeList
[
i
]
a
:=
&
p
.
NodeList
[
i
]
size
+=
len
((
*
a
)
.
Address
.
Host
)
size
+=
len
((
*
a
)
.
Address
.
Host
)
}
}
return
4
+
len
(
p
.
NodeList
)
*
26
+
size
return
12
+
len
(
p
.
NodeList
)
*
26
+
size
}
}
func
(
p
*
NotifyNodeInformation
)
NEOEncode
(
data
[]
byte
)
{
func
(
p
*
NotifyNodeInformation
)
NEOEncode
(
data
[]
byte
)
{
float64_NEOEncode
(
data
[
0
:
],
p
.
IdTimestamp
)
{
{
l
:=
uint32
(
len
(
p
.
NodeList
))
l
:=
uint32
(
len
(
p
.
NodeList
))
binary
.
BigEndian
.
PutUint32
(
data
[
0
:
],
l
)
binary
.
BigEndian
.
PutUint32
(
data
[
8
:
],
l
)
data
=
data
[
4
:
]
data
=
data
[
12
:
]
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
NodeList
[
i
]
a
:=
&
p
.
NodeList
[
i
]
binary
.
BigEndian
.
PutUint32
(
data
[
0
:
],
uint32
(
int32
((
*
a
)
.
NodeType
)))
binary
.
BigEndian
.
PutUint32
(
data
[
0
:
],
uint32
(
int32
((
*
a
)
.
NodeType
)))
...
@@ -2386,12 +2642,13 @@ func (p *NotifyNodeInformation) NEOEncode(data []byte) {
...
@@ -2386,12 +2642,13 @@ func (p *NotifyNodeInformation) NEOEncode(data []byte) {
func
(
p
*
NotifyNodeInformation
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
func
(
p
*
NotifyNodeInformation
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
var
nread
uint32
var
nread
uint32
if
uint32
(
len
(
data
))
<
4
{
if
uint32
(
len
(
data
))
<
12
{
goto
overflow
goto
overflow
}
}
p
.
IdTimestamp
=
float64_NEODecode
(
data
[
0
:
])
{
{
l
:=
binary
.
BigEndian
.
Uint32
(
data
[
0
:
])
l
:=
binary
.
BigEndian
.
Uint32
(
data
[
8
:
])
data
=
data
[
4
:
]
data
=
data
[
12
:
]
p
.
NodeList
=
make
([]
NodeInfo
,
l
)
p
.
NodeList
=
make
([]
NodeInfo
,
l
)
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
for
i
:=
0
;
uint32
(
i
)
<
l
;
i
++
{
a
:=
&
p
.
NodeList
[
i
]
a
:=
&
p
.
NodeList
[
i
]
...
@@ -2417,13 +2674,13 @@ func (p *NotifyNodeInformation) NEODecode(data []byte) (int, error) {
...
@@ -2417,13 +2674,13 @@ func (p *NotifyNodeInformation) NEODecode(data []byte) (int, error) {
}
}
nread
+=
l
*
8
nread
+=
l
*
8
}
}
return
4
+
int
(
nread
),
nil
return
12
+
int
(
nread
),
nil
overflow
:
overflow
:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
66
. NodeInformation
//
72
. NodeInformation
func
(
p
*
NodeInformation
)
NEOEncodedLen
()
int
{
func
(
p
*
NodeInformation
)
NEOEncodedLen
()
int
{
return
0
return
0
...
@@ -2436,7 +2693,7 @@ func (p *NodeInformation) NEODecode(data []byte) (int, error) {
...
@@ -2436,7 +2693,7 @@ func (p *NodeInformation) NEODecode(data []byte) (int, error) {
return
0
,
nil
return
0
,
nil
}
}
//
67
. SetClusterState
//
73
. SetClusterState
func
(
p
*
SetClusterState
)
NEOEncodedLen
()
int
{
func
(
p
*
SetClusterState
)
NEOEncodedLen
()
int
{
return
4
return
4
...
@@ -2457,7 +2714,7 @@ overflow:
...
@@ -2457,7 +2714,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
68
. repairFlags
//
74
. repairFlags
func
(
p
*
repairFlags
)
NEOEncodedLen
()
int
{
func
(
p
*
repairFlags
)
NEOEncodedLen
()
int
{
return
1
return
1
...
@@ -2478,7 +2735,7 @@ overflow:
...
@@ -2478,7 +2735,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
69
. Repair
//
75
. Repair
func
(
p
*
Repair
)
NEOEncodedLen
()
int
{
func
(
p
*
Repair
)
NEOEncodedLen
()
int
{
return
5
+
len
(
p
.
UUIDList
)
*
4
return
5
+
len
(
p
.
UUIDList
)
*
4
...
@@ -2524,7 +2781,7 @@ overflow:
...
@@ -2524,7 +2781,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 7
0
. RepairOne
// 7
6
. RepairOne
func
(
p
*
RepairOne
)
NEOEncodedLen
()
int
{
func
(
p
*
RepairOne
)
NEOEncodedLen
()
int
{
return
1
return
1
...
@@ -2545,7 +2802,7 @@ overflow:
...
@@ -2545,7 +2802,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 7
1
. ClusterInformation
// 7
7
. ClusterInformation
func
(
p
*
ClusterInformation
)
NEOEncodedLen
()
int
{
func
(
p
*
ClusterInformation
)
NEOEncodedLen
()
int
{
return
4
return
4
...
@@ -2566,7 +2823,7 @@ overflow:
...
@@ -2566,7 +2823,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 7
2
. X_ClusterState
// 7
8
. X_ClusterState
func
(
p
*
X_ClusterState
)
NEOEncodedLen
()
int
{
func
(
p
*
X_ClusterState
)
NEOEncodedLen
()
int
{
return
4
return
4
...
@@ -2587,7 +2844,7 @@ overflow:
...
@@ -2587,7 +2844,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 7
3
. ObjectUndoSerial
// 7
9
. ObjectUndoSerial
func
(
p
*
ObjectUndoSerial
)
NEOEncodedLen
()
int
{
func
(
p
*
ObjectUndoSerial
)
NEOEncodedLen
()
int
{
return
28
+
len
(
p
.
OidList
)
*
8
return
28
+
len
(
p
.
OidList
)
*
8
...
@@ -2637,7 +2894,7 @@ overflow:
...
@@ -2637,7 +2894,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
74
. AnswerObjectUndoSerial
//
80
. AnswerObjectUndoSerial
func
(
p
*
AnswerObjectUndoSerial
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerObjectUndoSerial
)
NEOEncodedLen
()
int
{
return
4
+
len
(
p
.
ObjectTIDDict
)
*
25
return
4
+
len
(
p
.
ObjectTIDDict
)
*
25
...
@@ -2701,53 +2958,7 @@ overflow:
...
@@ -2701,53 +2958,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 75. HasLock
// 81. CheckCurrentSerial
func
(
p
*
HasLock
)
NEOEncodedLen
()
int
{
return
16
}
func
(
p
*
HasLock
)
NEOEncode
(
data
[]
byte
)
{
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
Tid
))
binary
.
BigEndian
.
PutUint64
(
data
[
8
:
],
uint64
(
p
.
Oid
))
}
func
(
p
*
HasLock
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
if
uint32
(
len
(
data
))
<
16
{
goto
overflow
}
p
.
Tid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
Oid
=
zodb
.
Oid
(
binary
.
BigEndian
.
Uint64
(
data
[
8
:
]))
return
16
,
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
// 76. AnswerHasLock
func
(
p
*
AnswerHasLock
)
NEOEncodedLen
()
int
{
return
12
}
func
(
p
*
AnswerHasLock
)
NEOEncode
(
data
[]
byte
)
{
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
Oid
))
binary
.
BigEndian
.
PutUint32
(
data
[
8
:
],
uint32
(
int32
(
p
.
LockState
)))
}
func
(
p
*
AnswerHasLock
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
if
uint32
(
len
(
data
))
<
12
{
goto
overflow
}
p
.
Oid
=
zodb
.
Oid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
LockState
=
LockState
(
int32
(
binary
.
BigEndian
.
Uint32
(
data
[
8
:
])))
return
12
,
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
// 77. CheckCurrentSerial
func
(
p
*
CheckCurrentSerial
)
NEOEncodedLen
()
int
{
func
(
p
*
CheckCurrentSerial
)
NEOEncodedLen
()
int
{
return
24
return
24
...
@@ -2755,8 +2966,8 @@ func (p *CheckCurrentSerial) NEOEncodedLen() int {
...
@@ -2755,8 +2966,8 @@ func (p *CheckCurrentSerial) NEOEncodedLen() int {
func
(
p
*
CheckCurrentSerial
)
NEOEncode
(
data
[]
byte
)
{
func
(
p
*
CheckCurrentSerial
)
NEOEncode
(
data
[]
byte
)
{
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
Tid
))
binary
.
BigEndian
.
PutUint64
(
data
[
0
:
],
uint64
(
p
.
Tid
))
binary
.
BigEndian
.
PutUint64
(
data
[
8
:
],
uint64
(
p
.
Serial
))
binary
.
BigEndian
.
PutUint64
(
data
[
8
:
],
uint64
(
p
.
Oid
))
binary
.
BigEndian
.
PutUint64
(
data
[
16
:
],
uint64
(
p
.
Oid
))
binary
.
BigEndian
.
PutUint64
(
data
[
16
:
],
uint64
(
p
.
Serial
))
}
}
func
(
p
*
CheckCurrentSerial
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
func
(
p
*
CheckCurrentSerial
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
...
@@ -2764,40 +2975,15 @@ func (p *CheckCurrentSerial) NEODecode(data []byte) (int, error) {
...
@@ -2764,40 +2975,15 @@ func (p *CheckCurrentSerial) NEODecode(data []byte) (int, error) {
goto
overflow
goto
overflow
}
}
p
.
Tid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
Tid
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
0
:
]))
p
.
Serial
=
zodb
.
T
id
(
binary
.
BigEndian
.
Uint64
(
data
[
8
:
]))
p
.
Oid
=
zodb
.
O
id
(
binary
.
BigEndian
.
Uint64
(
data
[
8
:
]))
p
.
Oid
=
zodb
.
O
id
(
binary
.
BigEndian
.
Uint64
(
data
[
16
:
]))
p
.
Serial
=
zodb
.
T
id
(
binary
.
BigEndian
.
Uint64
(
data
[
16
:
]))
return
24
,
nil
return
24
,
nil
overflow
:
overflow
:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 78. AnswerCheckCurrentSerial
// 82. Pack
func
(
p
*
AnswerCheckCurrentSerial
)
NEOEncodedLen
()
int
{
return
17
}
func
(
p
*
AnswerCheckCurrentSerial
)
NEOEncode
(
data
[]
byte
)
{
(
data
[
0
:
])[
0
]
=
bool2byte
(
p
.
Conflicting
)
binary
.
BigEndian
.
PutUint64
(
data
[
1
:
],
uint64
(
p
.
Oid
))
binary
.
BigEndian
.
PutUint64
(
data
[
9
:
],
uint64
(
p
.
Serial
))
}
func
(
p
*
AnswerCheckCurrentSerial
)
NEODecode
(
data
[]
byte
)
(
int
,
error
)
{
if
uint32
(
len
(
data
))
<
17
{
goto
overflow
}
p
.
Conflicting
=
byte2bool
((
data
[
0
:
])[
0
])
p
.
Oid
=
zodb
.
Oid
(
binary
.
BigEndian
.
Uint64
(
data
[
1
:
]))
p
.
Serial
=
zodb
.
Tid
(
binary
.
BigEndian
.
Uint64
(
data
[
9
:
]))
return
17
,
nil
overflow
:
return
0
,
ErrDecodeOverflow
}
// 79. Pack
func
(
p
*
Pack
)
NEOEncodedLen
()
int
{
func
(
p
*
Pack
)
NEOEncodedLen
()
int
{
return
8
return
8
...
@@ -2818,7 +3004,7 @@ overflow:
...
@@ -2818,7 +3004,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 8
0
. AnswerPack
// 8
3
. AnswerPack
func
(
p
*
AnswerPack
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerPack
)
NEOEncodedLen
()
int
{
return
1
return
1
...
@@ -2839,7 +3025,7 @@ overflow:
...
@@ -2839,7 +3025,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 8
1
. CheckReplicas
// 8
4
. CheckReplicas
func
(
p
*
CheckReplicas
)
NEOEncodedLen
()
int
{
func
(
p
*
CheckReplicas
)
NEOEncodedLen
()
int
{
return
20
+
len
(
p
.
PartitionDict
)
*
8
return
20
+
len
(
p
.
PartitionDict
)
*
8
...
@@ -2893,7 +3079,7 @@ overflow:
...
@@ -2893,7 +3079,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 8
2
. CheckPartition
// 8
5
. CheckPartition
func
(
p
*
CheckPartition
)
NEOEncodedLen
()
int
{
func
(
p
*
CheckPartition
)
NEOEncodedLen
()
int
{
return
30
+
len
(
p
.
Source
.
UpstreamName
)
+
len
(
p
.
Source
.
Address
.
Host
)
return
30
+
len
(
p
.
Source
.
UpstreamName
)
+
len
(
p
.
Source
.
Address
.
Host
)
...
@@ -2955,7 +3141,7 @@ overflow:
...
@@ -2955,7 +3141,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 8
3
. CheckTIDRange
// 8
6
. CheckTIDRange
func
(
p
*
CheckTIDRange
)
NEOEncodedLen
()
int
{
func
(
p
*
CheckTIDRange
)
NEOEncodedLen
()
int
{
return
24
return
24
...
@@ -2982,7 +3168,7 @@ overflow:
...
@@ -2982,7 +3168,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 8
4
. AnswerCheckTIDRange
// 8
7
. AnswerCheckTIDRange
func
(
p
*
AnswerCheckTIDRange
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerCheckTIDRange
)
NEOEncodedLen
()
int
{
return
32
return
32
...
@@ -3007,7 +3193,7 @@ overflow:
...
@@ -3007,7 +3193,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 8
5
. CheckSerialRange
// 8
8
. CheckSerialRange
func
(
p
*
CheckSerialRange
)
NEOEncodedLen
()
int
{
func
(
p
*
CheckSerialRange
)
NEOEncodedLen
()
int
{
return
32
return
32
...
@@ -3036,7 +3222,7 @@ overflow:
...
@@ -3036,7 +3222,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 8
6
. AnswerCheckSerialRange
// 8
9
. AnswerCheckSerialRange
func
(
p
*
AnswerCheckSerialRange
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerCheckSerialRange
)
NEOEncodedLen
()
int
{
return
60
return
60
...
@@ -3065,7 +3251,7 @@ overflow:
...
@@ -3065,7 +3251,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
87
. PartitionCorrupted
//
90
. PartitionCorrupted
func
(
p
*
PartitionCorrupted
)
NEOEncodedLen
()
int
{
func
(
p
*
PartitionCorrupted
)
NEOEncodedLen
()
int
{
return
8
+
len
(
p
.
CellList
)
*
4
return
8
+
len
(
p
.
CellList
)
*
4
...
@@ -3111,7 +3297,7 @@ overflow:
...
@@ -3111,7 +3297,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
//
88
. LastTransaction
//
91
. LastTransaction
func
(
p
*
LastTransaction
)
NEOEncodedLen
()
int
{
func
(
p
*
LastTransaction
)
NEOEncodedLen
()
int
{
return
0
return
0
...
@@ -3124,7 +3310,7 @@ func (p *LastTransaction) NEODecode(data []byte) (int, error) {
...
@@ -3124,7 +3310,7 @@ func (p *LastTransaction) NEODecode(data []byte) (int, error) {
return
0
,
nil
return
0
,
nil
}
}
//
89
. AnswerLastTransaction
//
92
. AnswerLastTransaction
func
(
p
*
AnswerLastTransaction
)
NEOEncodedLen
()
int
{
func
(
p
*
AnswerLastTransaction
)
NEOEncodedLen
()
int
{
return
8
return
8
...
@@ -3145,7 +3331,7 @@ overflow:
...
@@ -3145,7 +3331,7 @@ overflow:
return
0
,
ErrDecodeOverflow
return
0
,
ErrDecodeOverflow
}
}
// 9
0
. NotifyReady
// 9
3
. NotifyReady
func
(
p
*
NotifyReady
)
NEOEncodedLen
()
int
{
func
(
p
*
NotifyReady
)
NEOEncodedLen
()
int
{
return
0
return
0
...
@@ -3194,61 +3380,64 @@ var pktTypeRegistry = map[int]reflect.Type{
...
@@ -3194,61 +3380,64 @@ var pktTypeRegistry = map[int]reflect.Type{
31
:
reflect
.
TypeOf
(
ValidateTransaction
{}),
31
:
reflect
.
TypeOf
(
ValidateTransaction
{}),
32
:
reflect
.
TypeOf
(
BeginTransaction
{}),
32
:
reflect
.
TypeOf
(
BeginTransaction
{}),
33
:
reflect
.
TypeOf
(
AnswerBeginTransaction
{}),
33
:
reflect
.
TypeOf
(
AnswerBeginTransaction
{}),
34
:
reflect
.
TypeOf
(
FinishTransaction
{}),
34
:
reflect
.
TypeOf
(
FailedVote
{}),
35
:
reflect
.
TypeOf
(
AnswerFinishTransaction
{}),
35
:
reflect
.
TypeOf
(
FinishTransaction
{}),
36
:
reflect
.
TypeOf
(
NotifyTransactionFinished
{}),
36
:
reflect
.
TypeOf
(
AnswerFinishTransaction
{}),
37
:
reflect
.
TypeOf
(
LockInformation
{}),
37
:
reflect
.
TypeOf
(
NotifyTransactionFinished
{}),
38
:
reflect
.
TypeOf
(
AnswerLockInformation
{}),
38
:
reflect
.
TypeOf
(
LockInformation
{}),
39
:
reflect
.
TypeOf
(
InvalidateObjects
{}),
39
:
reflect
.
TypeOf
(
AnswerLockInformation
{}),
40
:
reflect
.
TypeOf
(
UnlockInformation
{}),
40
:
reflect
.
TypeOf
(
InvalidateObjects
{}),
41
:
reflect
.
TypeOf
(
GenerateOIDs
{}),
41
:
reflect
.
TypeOf
(
UnlockInformation
{}),
42
:
reflect
.
TypeOf
(
AnswerGenerateOIDs
{}),
42
:
reflect
.
TypeOf
(
GenerateOIDs
{}),
43
:
reflect
.
TypeOf
(
StoreObject
{}),
43
:
reflect
.
TypeOf
(
AnswerGenerateOIDs
{}),
44
:
reflect
.
TypeOf
(
AnswerStoreObject
{}),
44
:
reflect
.
TypeOf
(
Deadlock
{}),
45
:
reflect
.
TypeOf
(
AbortTransaction
{}),
45
:
reflect
.
TypeOf
(
RebaseTransaction
{}),
46
:
reflect
.
TypeOf
(
StoreTransaction
{}),
46
:
reflect
.
TypeOf
(
AnswerRebaseTransaction
{}),
47
:
reflect
.
TypeOf
(
VoteTransaction
{}),
47
:
reflect
.
TypeOf
(
RebaseObject
{}),
48
:
reflect
.
TypeOf
(
GetObject
{}),
48
:
reflect
.
TypeOf
(
AnswerRebaseObject
{}),
49
:
reflect
.
TypeOf
(
AnswerGetObject
{}),
49
:
reflect
.
TypeOf
(
StoreObject
{}),
50
:
reflect
.
TypeOf
(
TIDList
{}),
50
:
reflect
.
TypeOf
(
AnswerStoreObject
{}),
51
:
reflect
.
TypeOf
(
AnswerTIDList
{}),
51
:
reflect
.
TypeOf
(
AbortTransaction
{}),
52
:
reflect
.
TypeOf
(
TIDListFrom
{}),
52
:
reflect
.
TypeOf
(
StoreTransaction
{}),
53
:
reflect
.
TypeOf
(
AnswerTIDListFrom
{}),
53
:
reflect
.
TypeOf
(
VoteTransaction
{}),
54
:
reflect
.
TypeOf
(
TransactionInformation
{}),
54
:
reflect
.
TypeOf
(
GetObject
{}),
55
:
reflect
.
TypeOf
(
AnswerTransactionInformation
{}),
55
:
reflect
.
TypeOf
(
AnswerGetObject
{}),
56
:
reflect
.
TypeOf
(
ObjectHistory
{}),
56
:
reflect
.
TypeOf
(
TIDList
{}),
57
:
reflect
.
TypeOf
(
AnswerObjectHistory
{}),
57
:
reflect
.
TypeOf
(
AnswerTIDList
{}),
58
:
reflect
.
TypeOf
(
PartitionList
{}),
58
:
reflect
.
TypeOf
(
TIDListFrom
{}),
59
:
reflect
.
TypeOf
(
AnswerPartitionList
{}),
59
:
reflect
.
TypeOf
(
AnswerTIDListFrom
{}),
60
:
reflect
.
TypeOf
(
X_NodeList
{}),
60
:
reflect
.
TypeOf
(
TransactionInformation
{}),
61
:
reflect
.
TypeOf
(
AnswerNodeList
{}),
61
:
reflect
.
TypeOf
(
AnswerTransactionInformation
{}),
62
:
reflect
.
TypeOf
(
SetNodeState
{}),
62
:
reflect
.
TypeOf
(
ObjectHistory
{}),
63
:
reflect
.
TypeOf
(
AddPendingNodes
{}),
63
:
reflect
.
TypeOf
(
AnswerObjectHistory
{}),
64
:
reflect
.
TypeOf
(
TweakPartitionTable
{}),
64
:
reflect
.
TypeOf
(
PartitionList
{}),
65
:
reflect
.
TypeOf
(
NotifyNodeInformation
{}),
65
:
reflect
.
TypeOf
(
AnswerPartitionList
{}),
66
:
reflect
.
TypeOf
(
NodeInformation
{}),
66
:
reflect
.
TypeOf
(
X_NodeList
{}),
67
:
reflect
.
TypeOf
(
SetClusterState
{}),
67
:
reflect
.
TypeOf
(
AnswerNodeList
{}),
68
:
reflect
.
TypeOf
(
repairFlags
{}),
68
:
reflect
.
TypeOf
(
SetNodeState
{}),
69
:
reflect
.
TypeOf
(
Repair
{}),
69
:
reflect
.
TypeOf
(
AddPendingNodes
{}),
70
:
reflect
.
TypeOf
(
RepairOne
{}),
70
:
reflect
.
TypeOf
(
TweakPartitionTable
{}),
71
:
reflect
.
TypeOf
(
ClusterInformation
{}),
71
:
reflect
.
TypeOf
(
NotifyNodeInformation
{}),
72
:
reflect
.
TypeOf
(
X_ClusterState
{}),
72
:
reflect
.
TypeOf
(
NodeInformation
{}),
73
:
reflect
.
TypeOf
(
ObjectUndoSerial
{}),
73
:
reflect
.
TypeOf
(
SetClusterState
{}),
74
:
reflect
.
TypeOf
(
AnswerObjectUndoSerial
{}),
74
:
reflect
.
TypeOf
(
repairFlags
{}),
75
:
reflect
.
TypeOf
(
HasLock
{}),
75
:
reflect
.
TypeOf
(
Repair
{}),
76
:
reflect
.
TypeOf
(
AnswerHasLock
{}),
76
:
reflect
.
TypeOf
(
RepairOne
{}),
77
:
reflect
.
TypeOf
(
CheckCurrentSerial
{}),
77
:
reflect
.
TypeOf
(
ClusterInformation
{}),
78
:
reflect
.
TypeOf
(
AnswerCheckCurrentSerial
{}),
78
:
reflect
.
TypeOf
(
X_ClusterState
{}),
79
:
reflect
.
TypeOf
(
Pack
{}),
79
:
reflect
.
TypeOf
(
ObjectUndoSerial
{}),
80
:
reflect
.
TypeOf
(
AnswerPack
{}),
80
:
reflect
.
TypeOf
(
AnswerObjectUndoSerial
{}),
81
:
reflect
.
TypeOf
(
CheckReplicas
{}),
81
:
reflect
.
TypeOf
(
CheckCurrentSerial
{}),
82
:
reflect
.
TypeOf
(
CheckPartition
{}),
82
:
reflect
.
TypeOf
(
Pack
{}),
83
:
reflect
.
TypeOf
(
CheckTIDRange
{}),
83
:
reflect
.
TypeOf
(
AnswerPack
{}),
84
:
reflect
.
TypeOf
(
AnswerCheckTIDRange
{}),
84
:
reflect
.
TypeOf
(
CheckReplicas
{}),
85
:
reflect
.
TypeOf
(
CheckSerialRange
{}),
85
:
reflect
.
TypeOf
(
CheckPartition
{}),
86
:
reflect
.
TypeOf
(
AnswerCheckSerialRange
{}),
86
:
reflect
.
TypeOf
(
CheckTIDRange
{}),
87
:
reflect
.
TypeOf
(
PartitionCorrupted
{}),
87
:
reflect
.
TypeOf
(
AnswerCheckTIDRange
{}),
88
:
reflect
.
TypeOf
(
LastTransaction
{}),
88
:
reflect
.
TypeOf
(
CheckSerialRange
{}),
89
:
reflect
.
TypeOf
(
AnswerLastTransaction
{}),
89
:
reflect
.
TypeOf
(
AnswerCheckSerialRange
{}),
90
:
reflect
.
TypeOf
(
NotifyReady
{}),
90
:
reflect
.
TypeOf
(
PartitionCorrupted
{}),
91
:
reflect
.
TypeOf
(
LastTransaction
{}),
92
:
reflect
.
TypeOf
(
AnswerLastTransaction
{}),
93
:
reflect
.
TypeOf
(
NotifyReady
{}),
}
}
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