summaryrefslogtreecommitdiff
path: root/src/pkg/syscall/syscall_bsd.go
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-05-23 09:45:29 +0200
committerOndřej Surý <ondrej@sury.org>2011-05-23 11:04:16 +0200
commit4e5e42a1c1a9eb757743648c48df70cbd42635db (patch)
tree64220a5cf0a1ad27206bbcdbc810ea56ba5ed67f /src/pkg/syscall/syscall_bsd.go
parentfd089e27d7260cee1c7ca449c41cdd0341ebc6cb (diff)
downloadgolang-4e5e42a1c1a9eb757743648c48df70cbd42635db.tar.gz
Imported Upstream version 2011.05.22
Diffstat (limited to 'src/pkg/syscall/syscall_bsd.go')
-rw-r--r--src/pkg/syscall/syscall_bsd.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/pkg/syscall/syscall_bsd.go b/src/pkg/syscall/syscall_bsd.go
index 9f1244f13..766a56db5 100644
--- a/src/pkg/syscall/syscall_bsd.go
+++ b/src/pkg/syscall/syscall_bsd.go
@@ -191,9 +191,10 @@ func (sa *SockaddrInet4) sockaddr() (uintptr, _Socklen, int) {
}
type SockaddrInet6 struct {
- Port int
- Addr [16]byte
- raw RawSockaddrInet6
+ Port int
+ ZoneId uint32
+ Addr [16]byte
+ raw RawSockaddrInet6
}
func (sa *SockaddrInet6) sockaddr() (uintptr, _Socklen, int) {
@@ -205,6 +206,7 @@ func (sa *SockaddrInet6) sockaddr() (uintptr, _Socklen, int) {
p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
p[0] = byte(sa.Port >> 8)
p[1] = byte(sa.Port)
+ sa.raw.Scope_id = sa.ZoneId
for i := 0; i < len(sa.Addr); i++ {
sa.raw.Addr[i] = sa.Addr[i]
}
@@ -297,6 +299,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, int) {
sa := new(SockaddrInet6)
p := (*[2]byte)(unsafe.Pointer(&pp.Port))
sa.Port = int(p[0])<<8 + int(p[1])
+ sa.ZoneId = pp.Scope_id
for i := 0; i < len(sa.Addr); i++ {
sa.Addr[i] = pp.Addr[i]
}