zfs: ResumeToken: parse embedok, largeblockok, savedok if available

Developed for #285 but ultimately not used for it.
This commit is contained in:
Christian Schwarz 2020-11-07 17:52:10 +01:00
parent efe7b17d21
commit 70bbdfe760

View File

@ -18,11 +18,14 @@ import (
// NOTE: Update ZFSSendARgs.Validate when changing fields (potentially SECURITY SENSITIVE)
type ResumeToken struct {
HasFromGUID, HasToGUID bool
FromGUID, ToGUID uint64
ToName string
HasCompressOK, CompressOK bool
HasRawOk, RawOK bool
HasFromGUID, HasToGUID bool
FromGUID, ToGUID uint64
ToName string
HasCompressOK, CompressOK bool
HasRawOk, RawOK bool
HasLargeBlockOK, LargeBlockOK bool
HasEmbedOk, EmbedOK bool
HasSavedOk, SavedOk bool
}
var resumeTokenNVListRE = regexp.MustCompile(`\t(\S+) = (.*)`)
@ -240,6 +243,24 @@ func ParseResumeToken(ctx context.Context, token string) (*ResumeToken, error) {
if err != nil {
return nil, ResumeTokenParsingError
}
case "embedok":
rt.HasEmbedOk = true
rt.EmbedOK, err = strconv.ParseBool(val)
if err != nil {
return nil, ResumeTokenParsingError
}
case "largeblockok":
rt.HasLargeBlockOK = true
rt.LargeBlockOK, err = strconv.ParseBool(val)
if err != nil {
return nil, ResumeTokenParsingError
}
case "savedok":
rt.HasSavedOk = true
rt.SavedOk, err = strconv.ParseBool(val)
if err != nil {
return nil, ResumeTokenParsingError
}
}
}