in pkg/maps/loader.go [388:418]
func (m *BpfMap) GetAllMapKeys() ([]string, error) {
var keyList []string
keySize := m.MapMetaData.KeySize
curKey := make([]byte, keySize)
nextKey := make([]byte, keySize)
err := m.GetFirstMapEntry(uintptr(unsafe.Pointer(&curKey[0])))
if err != nil {
log.Errorf("unable to get first key %s", err)
return nil, fmt.Errorf("unable to get first key entry: %s", err)
} else {
for {
err = m.GetNextMapEntry(uintptr(unsafe.Pointer(&curKey[0])), uintptr(unsafe.Pointer(&nextKey[0])))
log.Infof("Adding to key list %v", curKey)
keyList = append(keyList, string(curKey))
if errors.Is(err, unix.ENOENT) {
log.Infof("Done reading all entries")
return keyList, nil
}
if err != nil {
log.Infof("Unable to get next key %s", err)
break
}
//curKey = nextKey
copy(curKey, nextKey)
}
}
log.Infof("Done get all keys")
return keyList, err
}