golang.org/x/net@v0.25.1-0.20240516223405-c87a5b62e243/ipv4/genericopt.go (about) 1 // Copyright 2012 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. 4 5 package ipv4 6 7 // TOS returns the type-of-service field value for outgoing packets. 8 func (c *genericOpt) TOS() (int, error) { 9 if !c.ok() { 10 return 0, errInvalidConn 11 } 12 so, ok := sockOpts[ssoTOS] 13 if !ok { 14 return 0, errNotImplemented 15 } 16 return so.GetInt(c.Conn) 17 } 18 19 // SetTOS sets the type-of-service field value for future outgoing 20 // packets. 21 func (c *genericOpt) SetTOS(tos int) error { 22 if !c.ok() { 23 return errInvalidConn 24 } 25 so, ok := sockOpts[ssoTOS] 26 if !ok { 27 return errNotImplemented 28 } 29 return so.SetInt(c.Conn, tos) 30 } 31 32 // TTL returns the time-to-live field value for outgoing packets. 33 func (c *genericOpt) TTL() (int, error) { 34 if !c.ok() { 35 return 0, errInvalidConn 36 } 37 so, ok := sockOpts[ssoTTL] 38 if !ok { 39 return 0, errNotImplemented 40 } 41 return so.GetInt(c.Conn) 42 } 43 44 // SetTTL sets the time-to-live field value for future outgoing 45 // packets. 46 func (c *genericOpt) SetTTL(ttl int) error { 47 if !c.ok() { 48 return errInvalidConn 49 } 50 so, ok := sockOpts[ssoTTL] 51 if !ok { 52 return errNotImplemented 53 } 54 return so.SetInt(c.Conn, ttl) 55 }