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

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

Issue 6497044: code review 6497044: net: delete unused IP-level socket option helpers (Closed)
Patch Set: diff -r dbcfb4459ab8 https://code.google.com/p/go Created 12 years, 6 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_netbsd.go ('k') | src/pkg/net/sockoptip_posix.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2011 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 // IP-level socket options for OpenBSD
6
7 package net
8
9 import (
10 "os"
11 "syscall"
12 )
13
14 func ipv4MulticastInterface(fd *netFD) (*Interface, error) {
15 if err := fd.incref(false); err != nil {
16 return nil, err
17 }
18 defer fd.decref()
19 a, err := syscall.GetsockoptInet4Addr(fd.sysfd, syscall.IPPROTO_IP, sysc all.IP_MULTICAST_IF)
20 if err != nil {
21 return nil, os.NewSyscallError("getsockopt", err)
22 }
23 return ipv4AddrToInterface(IPv4(a[0], a[1], a[2], a[3]))
24 }
25
26 func setIPv4MulticastInterface(fd *netFD, ifi *Interface) error {
27 ip, err := interfaceToIPv4Addr(ifi)
28 if err != nil {
29 return os.NewSyscallError("setsockopt", err)
30 }
31 var x [4]byte
32 copy(x[:], ip.To4())
33 if err := fd.incref(false); err != nil {
34 return err
35 }
36 defer fd.decref()
37 err = syscall.SetsockoptInet4Addr(fd.sysfd, syscall.IPPROTO_IP, syscall. IP_MULTICAST_IF, x)
38 if err != nil {
39 return os.NewSyscallError("setsockopt", err)
40 }
41 return nil
42 }
43
44 func ipv4MulticastLoopback(fd *netFD) (bool, error) {
45 if err := fd.incref(false); err != nil {
46 return false, err
47 }
48 defer fd.decref()
49 v, err := syscall.GetsockoptByte(fd.sysfd, syscall.IPPROTO_IP, syscall.I P_MULTICAST_LOOP)
50 if err != nil {
51 return false, os.NewSyscallError("getsockopt", err)
52 }
53 return v == 1, nil
54 }
55
56 func setIPv4MulticastLoopback(fd *netFD, v bool) error {
57 if err := fd.incref(false); err != nil {
58 return err
59 }
60 defer fd.decref()
61 err := syscall.SetsockoptByte(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_M ULTICAST_LOOP, byte(boolint(v)))
62 if err != nil {
63 return os.NewSyscallError("setsockopt", err)
64 }
65 return nil
66 }
67
68 func ipv4ReceiveInterface(fd *netFD) (bool, error) {
69 if err := fd.incref(false); err != nil {
70 return false, err
71 }
72 defer fd.decref()
73 v, err := syscall.GetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP _RECVIF)
74 if err != nil {
75 return false, os.NewSyscallError("getsockopt", err)
76 }
77 return v == 1, nil
78 }
79
80 func setIPv4ReceiveInterface(fd *netFD, v bool) error {
81 if err := fd.incref(false); err != nil {
82 return err
83 }
84 defer fd.decref()
85 err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_RE CVIF, boolint(v))
86 if err != nil {
87 return os.NewSyscallError("setsockopt", err)
88 }
89 return nil
90 }
OLDNEW
« no previous file with comments | « src/pkg/net/sockoptip_netbsd.go ('k') | src/pkg/net/sockoptip_posix.go » ('j') | no next file with comments »

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