Skip to content

Commit 7f97b82

Browse files
authoredAug 17, 2023
ControlSyncRequest Encode: cookie optionality (#459)
In SyncRequest cookie is optional, so do not add cookie if empty
1 parent bbc2f21 commit 7f97b82

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed
 

‎v3/control.go

+9-4
Original file line numberDiff line numberDiff line change
@@ -928,9 +928,12 @@ func (c *ControlSyncRequest) GetControlType() string {
928928
func (c *ControlSyncRequest) Encode() *ber.Packet {
929929
_mode := int64(c.Mode)
930930
mode := ber.NewInteger(ber.ClassUniversal, ber.TypePrimitive, ber.TagEnumerated, _mode, "Mode")
931-
cookie := ber.Encode(ber.ClassUniversal, ber.TypePrimitive, ber.TagOctetString, nil, "Cookie")
932-
cookie.Value = c.Cookie
933-
cookie.Data.Write(c.Cookie)
931+
var cookie *ber.Packet
932+
if len(c.Cookie) > 0 {
933+
cookie = ber.Encode(ber.ClassUniversal, ber.TypePrimitive, ber.TagOctetString, nil, "Cookie")
934+
cookie.Value = c.Cookie
935+
cookie.Data.Write(c.Cookie)
936+
}
934937
reloadHint := ber.NewBoolean(ber.ClassUniversal, ber.TypePrimitive, ber.TagBoolean, c.ReloadHint, "Reload Hint")
935938

936939
packet := ber.Encode(ber.ClassUniversal, ber.TypeConstructed, ber.TagSequence, nil, "Control")
@@ -940,7 +943,9 @@ func (c *ControlSyncRequest) Encode() *ber.Packet {
940943
val := ber.Encode(ber.ClassUniversal, ber.TypePrimitive, ber.TagOctetString, nil, "Control Value (Sync Request)")
941944
seq := ber.Encode(ber.ClassUniversal, ber.TypeConstructed, ber.TagSequence, nil, "Sync Request Value")
942945
seq.AppendChild(mode)
943-
seq.AppendChild(cookie)
946+
if cookie != nil {
947+
seq.AppendChild(cookie)
948+
}
944949
seq.AppendChild(reloadHint)
945950
val.AppendChild(seq)
946951

0 commit comments

Comments
 (0)