Code Review
/
govpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix statseg v1 error offset zero
[govpp.git]
/
adapter
/
statsclient
/
statseg_v1.go
diff --git
a/adapter/statsclient/statseg_v1.go
b/adapter/statsclient/statseg_v1.go
index
e9e8331
..
3f15ce2
100644
(file)
--- a/
adapter/statsclient/statseg_v1.go
+++ b/
adapter/statsclient/statseg_v1.go
@@
-85,7
+85,7
@@
func (ss *statSegmentV1) GetStatDirOnIndex(v dirVector, index uint32) (dirSegmen
break
}
}
break
}
}
- return statSegDir,
dirName(name)
, dir.directoryType
+ return statSegDir,
name
, dir.directoryType
}
func (ss *statSegmentV1) GetEpoch() (int64, bool) {
}
func (ss *statSegmentV1) GetEpoch() (int64, bool) {
@@
-93,19
+93,16
@@
func (ss *statSegmentV1) GetEpoch() (int64, bool) {
return sh.epoch, sh.inProgress != 0
}
return sh.epoch, sh.inProgress != 0
}
-func (ss *statSegmentV1) CopyEntryData(segment dirSegment) adapter.Stat {
+func (ss *statSegmentV1) CopyEntryData(segment dirSegment
, _ uint32
) adapter.Stat {
dirEntry := (*statSegDirectoryEntryV1)(segment)
dirEntry := (*statSegDirectoryEntryV1)(segment)
-
dirType := adapter.StatType(dirEntry.directoryTyp
e)
+
typ := getStatType(dirEntry.directoryType, tru
e)
- switch
dirType
{
- case
statDir
ScalarIndex:
+ switch
typ
{
+ case
adapter.
ScalarIndex:
return adapter.ScalarStat(dirEntry.unionData)
return adapter.ScalarStat(dirEntry.unionData)
- case statDirErrorIndex:
- if dirEntry.unionData == 0 {
- debugf("offset invalid for %s", dirEntry.name)
- break
- } else if dirEntry.unionData >= uint64(len(ss.sharedHeader)) {
+ case adapter.ErrorIndex:
+ if dirEntry.unionData >= uint64(len(ss.sharedHeader)) {
debugf("offset out of range for %s", dirEntry.name)
break
}
debugf("offset out of range for %s", dirEntry.name)
break
}
@@
-125,7
+122,7
@@
func (ss *statSegmentV1) CopyEntryData(segment dirSegment) adapter.Stat {
}
return adapter.ErrorStat(errData)
}
return adapter.ErrorStat(errData)
- case
statDirCounterVectorSimple
:
+ case
adapter.SimpleCounterVector
:
if dirEntry.unionData == 0 {
debugf("offset invalid for %s", dirEntry.name)
break
if dirEntry.unionData == 0 {
debugf("offset invalid for %s", dirEntry.name)
break
@@
-151,7
+148,7
@@
func (ss *statSegmentV1) CopyEntryData(segment dirSegment) adapter.Stat {
}
return adapter.SimpleCounterStat(data)
}
return adapter.SimpleCounterStat(data)
- case
statDirCounterVectorCombined
:
+ case
adapter.CombinedCounterVector
:
if dirEntry.unionData == 0 {
debugf("offset invalid for %s", dirEntry.name)
break
if dirEntry.unionData == 0 {
debugf("offset invalid for %s", dirEntry.name)
break
@@
-177,7
+174,7
@@
func (ss *statSegmentV1) CopyEntryData(segment dirSegment) adapter.Stat {
}
return adapter.CombinedCounterStat(data)
}
return adapter.CombinedCounterStat(data)
- case
statDir
NameVector:
+ case
adapter.
NameVector:
if dirEntry.unionData == 0 {
debugf("offset invalid for %s", dirEntry.name)
break
if dirEntry.unionData == 0 {
debugf("offset invalid for %s", dirEntry.name)
break
@@
-211,9
+208,12
@@
func (ss *statSegmentV1) CopyEntryData(segment dirSegment) adapter.Stat {
}
return adapter.NameStat(data)
}
return adapter.NameStat(data)
- case
statDir
Empty:
+ case
adapter.
Empty:
// no-op
// no-op
+ case adapter.Symlink:
+ debugf("Symlinks are not supported for stats v1")
+
default:
// TODO: monitor occurrences with metrics
debugf("Unknown type %d for stat entry: %q", dirEntry.directoryType, dirEntry.name)
default:
// TODO: monitor occurrences with metrics
debugf("Unknown type %d for stat entry: %q", dirEntry.directoryType, dirEntry.name)