MCPcopy
hub / github.com/golang/net / NewControlMessage

Function NewControlMessage

ipv6/control.go:149–169  ·  view source on GitHub ↗

NewControlMessage returns a new control message. The returned message is large enough for options specified by cf.

(cf ControlFlags)

Source from the content-addressed store, hash-verified

147//
148// The returned message is large enough for options specified by cf.
149func NewControlMessage(cf ControlFlags) []byte {
150 opt := rawOpt{cflags: cf}
151 var l int
152 if opt.isset(FlagTrafficClass) && ctlOpts[ctlTrafficClass].name > 0 {
153 l += socket.ControlMessageSpace(ctlOpts[ctlTrafficClass].length)
154 }
155 if opt.isset(FlagHopLimit) && ctlOpts[ctlHopLimit].name > 0 {
156 l += socket.ControlMessageSpace(ctlOpts[ctlHopLimit].length)
157 }
158 if opt.isset(flagPacketInfo) && ctlOpts[ctlPacketInfo].name > 0 {
159 l += socket.ControlMessageSpace(ctlOpts[ctlPacketInfo].length)
160 }
161 if opt.isset(FlagPathMTU) && ctlOpts[ctlPathMTU].name > 0 {
162 l += socket.ControlMessageSpace(ctlOpts[ctlPathMTU].length)
163 }
164 var b []byte
165 if l > 0 {
166 b = make([]byte, l)
167 }
168 return b
169}
170
171// Ancillary data socket options
172const (

Calls 2

issetMethod · 0.95
ControlMessageSpaceFunction · 0.92

Used in the wild real call sites across dependent graphs

searching dependent graphs…