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

Side by Side Diff: src/pkg/net/sockoptip_freebsd.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 11 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_darwin.go ('k') | src/pkg/net/sockoptip_linux.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 FreeBSD
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 mreq, err := syscall.GetsockoptIPMreqn(fd.sysfd, syscall.IPPROTO_IP, sys call.IP_MULTICAST_IF)
20 if err != nil {
21 return nil, os.NewSyscallError("getsockopt", err)
22 }
23 if int(mreq.Ifindex) == 0 {
24 return nil, nil
25 }
26 return InterfaceByIndex(int(mreq.Ifindex))
27 }
28
29 func setIPv4MulticastInterface(fd *netFD, ifi *Interface) error {
30 var v int32
31 if ifi != nil {
32 v = int32(ifi.Index)
33 }
34 mreq := &syscall.IPMreqn{Ifindex: v}
35 if err := fd.incref(false); err != nil {
36 return err
37 }
38 defer fd.decref()
39 err := syscall.SetsockoptIPMreqn(fd.sysfd, syscall.IPPROTO_IP, syscall.I P_MULTICAST_IF, mreq)
40 if err != nil {
41 return os.NewSyscallError("setsockopt", err)
42 }
43 return nil
44 }
45
46 func ipv4MulticastLoopback(fd *netFD) (bool, error) {
47 if err := fd.incref(false); err != nil {
48 return false, err
49 }
50 defer fd.decref()
51 v, err := syscall.GetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP _MULTICAST_LOOP)
52 if err != nil {
53 return false, os.NewSyscallError("getsockopt", err)
54 }
55 return v == 1, nil
56 }
57
58 func setIPv4MulticastLoopback(fd *netFD, v bool) error {
59 if err := fd.incref(false); err != nil {
60 return err
61 }
62 defer fd.decref()
63 err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MU LTICAST_LOOP, boolint(v))
64 if err != nil {
65 return os.NewSyscallError("setsockopt", err)
66 }
67 return nil
68 }
69
70 func ipv4ReceiveInterface(fd *netFD) (bool, error) {
71 if err := fd.incref(false); err != nil {
72 return false, err
73 }
74 defer fd.decref()
75 v, err := syscall.GetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP _RECVIF)
76 if err != nil {
77 return false, os.NewSyscallError("getsockopt", err)
78 }
79 return v == 1, nil
80 }
81
82 func setIPv4ReceiveInterface(fd *netFD, v bool) error {
83 if err := fd.incref(false); err != nil {
84 return err
85 }
86 defer fd.decref()
87 err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_RE CVIF, boolint(v))
88 if err != nil {
89 return os.NewSyscallError("setsockopt", err)
90 }
91 return nil
92 }
OLDNEW
« no previous file with comments | « src/pkg/net/sockoptip_darwin.go ('k') | src/pkg/net/sockoptip_linux.go » ('j') | no next file with comments »

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