package ipv6
import "golang.org/x/net/internal/socket"
func setControlMessage(c *socket .Conn , opt *rawOpt , cf ControlFlags , on bool ) error {
opt .Lock ()
defer opt .Unlock ()
if so , ok := sockOpts [ssoReceiveTrafficClass ]; ok && cf &FlagTrafficClass != 0 {
if err := so .SetInt (c , boolint (on )); err != nil {
return err
}
if on {
opt .set (FlagTrafficClass )
} else {
opt .clear (FlagTrafficClass )
}
}
if so , ok := sockOpts [ssoReceiveHopLimit ]; ok && cf &FlagHopLimit != 0 {
if err := so .SetInt (c , boolint (on )); err != nil {
return err
}
if on {
opt .set (FlagHopLimit )
} else {
opt .clear (FlagHopLimit )
}
}
if so , ok := sockOpts [ssoReceivePacketInfo ]; ok && cf &flagPacketInfo != 0 {
if err := so .SetInt (c , boolint (on )); err != nil {
return err
}
if on {
opt .set (cf & flagPacketInfo )
} else {
opt .clear (cf & flagPacketInfo )
}
}
if so , ok := sockOpts [ssoReceivePathMTU ]; ok && cf &FlagPathMTU != 0 {
if err := so .SetInt (c , boolint (on )); err != nil {
return err
}
if on {
opt .set (FlagPathMTU )
} else {
opt .clear (FlagPathMTU )
}
}
return nil
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .