Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(2)

Side by Side Diff: src/pkg/net/sockoptip_bsd.go

Issue 6497044: code review 6497044: net: delete unused IP-level socket option helpers (Closed)
Patch Set: diff -r 6836919e6ff1 https://code.google.com/p/go Created 12 years, 7 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pkg/net/sockoptip.go ('k') | src/pkg/net/sockoptip_darwin.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Go Authors. All rights reserved. 1 // Copyright 2011 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style 2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file. 3 // license that can be found in the LICENSE file.
4 4
5 // +build darwin freebsd netbsd openbsd 5 // +build darwin freebsd netbsd openbsd
6 6
7 // IP-level socket options for BSD variants 7 // IP-level socket options for BSD variants
8 8
9 package net 9 package net
10 10
11 import ( 11 import (
12 "os" 12 "os"
13 "syscall" 13 "syscall"
14 ) 14 )
15 15
16 func ipv4MulticastTTL(fd *netFD) (int, error) { 16 func setIPv4MulticastInterface(fd *netFD, ifi *Interface) error {
17 » if err := fd.incref(false); err != nil { 17 » ip, err := interfaceToIPv4Addr(ifi)
18 » » return 0, err 18 » if err != nil {
19 » » return os.NewSyscallError("setsockopt", err)
19 } 20 }
20 » defer fd.decref() 21 » var x [4]byte
21 » v, err := syscall.GetsockoptByte(fd.sysfd, syscall.IPPROTO_IP, syscall.I P_MULTICAST_TTL) 22 » copy(x[:], ip.To4())
22 » if err != nil {
23 » » return 0, os.NewSyscallError("getsockopt", err)
24 » }
25 » return int(v), nil
26 }
27
28 func setIPv4MulticastTTL(fd *netFD, v int) error {
29 if err := fd.incref(false); err != nil { 23 if err := fd.incref(false); err != nil {
30 return err 24 return err
31 } 25 }
32 defer fd.decref() 26 defer fd.decref()
33 » err := syscall.SetsockoptByte(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_M ULTICAST_TTL, byte(v)) 27 » err = syscall.SetsockoptInet4Addr(fd.sysfd, syscall.IPPROTO_IP, syscall. IP_MULTICAST_IF, x)
34 if err != nil { 28 if err != nil {
35 return os.NewSyscallError("setsockopt", err) 29 return os.NewSyscallError("setsockopt", err)
36 } 30 }
37 return nil 31 return nil
38 } 32 }
39 33
40 func ipv6TrafficClass(fd *netFD) (int, error) { 34 func setIPv4MulticastLoopback(fd *netFD, v bool) error {
41 » if err := fd.incref(false); err != nil {
42 » » return 0, err
43 » }
44 » defer fd.decref()
45 » v, err := syscall.GetsockoptInt(fd.sysfd, syscall.IPPROTO_IPV6, syscall. IPV6_TCLASS)
46 » if err != nil {
47 » » return 0, os.NewSyscallError("getsockopt", err)
48 » }
49 » return v, nil
50 }
51
52 func setIPv6TrafficClass(fd *netFD, v int) error {
53 if err := fd.incref(false); err != nil { 35 if err := fd.incref(false); err != nil {
54 return err 36 return err
55 } 37 }
56 defer fd.decref() 38 defer fd.decref()
57 » err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_IPV6, syscall.IPV 6_TCLASS, v) 39 » err := syscall.SetsockoptByte(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_M ULTICAST_LOOP, byte(boolint(v)))
58 if err != nil { 40 if err != nil {
59 return os.NewSyscallError("setsockopt", err) 41 return os.NewSyscallError("setsockopt", err)
60 } 42 }
61 return nil 43 return nil
62 } 44 }
OLDNEW
« no previous file with comments | « src/pkg/net/sockoptip.go ('k') | src/pkg/net/sockoptip_darwin.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b