| 848 | } |
| 849 | |
| 850 | func (m *Msg) headerBytes() ([]byte, error) { |
| 851 | var hdr []byte |
| 852 | if len(m.Header) == 0 { |
| 853 | return hdr, nil |
| 854 | } |
| 855 | |
| 856 | var b bytes.Buffer |
| 857 | _, err := b.WriteString(hdrLine) |
| 858 | if err != nil { |
| 859 | return nil, ErrBadHeaderMsg |
| 860 | } |
| 861 | |
| 862 | err = http.Header(m.Header).Write(&b) |
| 863 | if err != nil { |
| 864 | return nil, ErrBadHeaderMsg |
| 865 | } |
| 866 | |
| 867 | _, err = b.WriteString(crlf) |
| 868 | if err != nil { |
| 869 | return nil, ErrBadHeaderMsg |
| 870 | } |
| 871 | |
| 872 | return b.Bytes(), nil |
| 873 | } |
| 874 | |
| 875 | type barrierInfo struct { |
| 876 | refs int64 |