1 // Copyright 2014 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
7 // A TimeExceeded represents an ICMP time exceeded message body.
8 type TimeExceeded struct {
9 Data []byte // data, known as original datagram field
10 Extensions []Extension // extensions
13 // Len implements the Len method of MessageBody interface.
14 func (p *TimeExceeded) Len(proto int) int {
18 l, _ := multipartMessageBodyDataLen(proto, p.Data, p.Extensions)
22 // Marshal implements the Marshal method of MessageBody interface.
23 func (p *TimeExceeded) Marshal(proto int) ([]byte, error) {
24 return marshalMultipartMessageBody(proto, p.Data, p.Extensions)
27 // parseTimeExceeded parses b as an ICMP time exceeded message body.
28 func parseTimeExceeded(proto int, b []byte) (MessageBody, error) {
30 return nil, errMessageTooShort
34 p.Data, p.Extensions, err = parseMultipartMessageBody(proto, b)