in Server/go/apptoken/apptokenOptions.go [71:112]
func UnpackAppTokenOptions(buf io.Reader) (*AppTokenOptions, error) {
options := &AppTokenOptions{
EngineOptions: make(map[string]string),
}
// hasEngineOptions
var hasEngineOptions bool
if err := binary.Read(buf, binary.BigEndian, &hasEngineOptions); err != nil {
return nil, err
}
if hasEngineOptions {
var size int32
if err := binary.Read(buf, binary.BigEndian, &size); err != nil {
return nil, err
}
for i := int32(0); i < size; i++ {
var keyLength int32
if err := binary.Read(buf, binary.BigEndian, &keyLength); err != nil {
return nil, err
}
key := make([]byte, keyLength)
if _, err := buf.Read(key); err != nil {
return nil, err
}
var valueLength int32
if err := binary.Read(buf, binary.BigEndian, &valueLength); err != nil {
return nil, err
}
value := make([]byte, valueLength)
if _, err := buf.Read(value); err != nil {
return nil, err
}
options.EngineOptions[string(key)] = string(value)
}
}
return options, nil
}