2
0
mirror of synced 2025-02-24 14:48:27 +00:00

The "m" field in the extended handshake is not mandatory

This commit is contained in:
Matt Joiner 2017-11-08 19:29:55 +11:00
parent 2f8a2ada2e
commit 1b9606ae75

View File

@ -892,11 +892,7 @@ func (c *connection) mainReadLoop() error {
if v, ok := d["v"]; ok { if v, ok := d["v"]; ok {
c.PeerClientName = v.(string) c.PeerClientName = v.(string)
} }
m, ok := d["m"] if m, ok := d["m"]; ok {
if !ok {
err = errors.New("handshake missing m item")
break
}
mTyped, ok := m.(map[string]interface{}) mTyped, ok := m.(map[string]interface{})
if !ok { if !ok {
err = errors.New("handshake m value is not dict") err = errors.New("handshake m value is not dict")
@ -920,6 +916,7 @@ func (c *connection) mainReadLoop() error {
c.PeerExtensionIDs[name] = byte(id) c.PeerExtensionIDs[name] = byte(id)
} }
} }
}
metadata_sizeUntyped, ok := d["metadata_size"] metadata_sizeUntyped, ok := d["metadata_size"]
if ok { if ok {
metadata_size, ok := metadata_sizeUntyped.(int64) metadata_size, ok := metadata_sizeUntyped.(int64)