equal
deleted
inserted
replaced
65 sa.raw.Len = SizeofSockaddrInet4 |
65 sa.raw.Len = SizeofSockaddrInet4 |
66 sa.raw.Family = AF_INET |
66 sa.raw.Family = AF_INET |
67 p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) |
67 p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) |
68 p[0] = byte(sa.Port >> 8) |
68 p[0] = byte(sa.Port >> 8) |
69 p[1] = byte(sa.Port) |
69 p[1] = byte(sa.Port) |
70 for i := 0; i < len(sa.Addr); i++ { |
70 sa.raw.Addr = sa.Addr |
71 sa.raw.Addr[i] = sa.Addr[i] |
|
72 } |
|
73 return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil |
71 return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil |
74 } |
72 } |
75 |
73 |
76 func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { |
74 func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { |
77 if sa.Port < 0 || sa.Port > 0xFFFF { |
75 if sa.Port < 0 || sa.Port > 0xFFFF { |
81 sa.raw.Family = AF_INET6 |
79 sa.raw.Family = AF_INET6 |
82 p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) |
80 p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) |
83 p[0] = byte(sa.Port >> 8) |
81 p[0] = byte(sa.Port >> 8) |
84 p[1] = byte(sa.Port) |
82 p[1] = byte(sa.Port) |
85 sa.raw.Scope_id = sa.ZoneId |
83 sa.raw.Scope_id = sa.ZoneId |
86 for i := 0; i < len(sa.Addr); i++ { |
84 sa.raw.Addr = sa.Addr |
87 sa.raw.Addr[i] = sa.Addr[i] |
|
88 } |
|
89 return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil |
85 return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil |
90 } |
86 } |
91 |
87 |
92 func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { |
88 func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { |
93 name := sa.Name |
89 name := sa.Name |
142 case AF_INET: |
138 case AF_INET: |
143 pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) |
139 pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) |
144 sa := new(SockaddrInet4) |
140 sa := new(SockaddrInet4) |
145 p := (*[2]byte)(unsafe.Pointer(&pp.Port)) |
141 p := (*[2]byte)(unsafe.Pointer(&pp.Port)) |
146 sa.Port = int(p[0])<<8 + int(p[1]) |
142 sa.Port = int(p[0])<<8 + int(p[1]) |
147 for i := 0; i < len(sa.Addr); i++ { |
143 sa.Addr = pp.Addr |
148 sa.Addr[i] = pp.Addr[i] |
|
149 } |
|
150 return sa, nil |
144 return sa, nil |
151 |
145 |
152 case AF_INET6: |
146 case AF_INET6: |
153 pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) |
147 pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) |
154 sa := new(SockaddrInet6) |
148 sa := new(SockaddrInet6) |
155 p := (*[2]byte)(unsafe.Pointer(&pp.Port)) |
149 p := (*[2]byte)(unsafe.Pointer(&pp.Port)) |
156 sa.Port = int(p[0])<<8 + int(p[1]) |
150 sa.Port = int(p[0])<<8 + int(p[1]) |
157 sa.ZoneId = pp.Scope_id |
151 sa.ZoneId = pp.Scope_id |
158 for i := 0; i < len(sa.Addr); i++ { |
152 sa.Addr = pp.Addr |
159 sa.Addr[i] = pp.Addr[i] |
|
160 } |
|
161 return sa, nil |
153 return sa, nil |
162 } |
154 } |
163 return nil, EAFNOSUPPORT |
155 return nil, EAFNOSUPPORT |
164 } |
156 } |
165 |
157 |
585 if len(p) != 2 { |
577 if len(p) != 2 { |
586 return EINVAL |
578 return EINVAL |
587 } |
579 } |
588 var pp [2]_C_int |
580 var pp [2]_C_int |
589 err = pipe(&pp) |
581 err = pipe(&pp) |
590 p[0] = int(pp[0]) |
582 if err == nil { |
591 p[1] = int(pp[1]) |
583 p[0] = int(pp[0]) |
|
584 p[1] = int(pp[1]) |
|
585 } |
592 return |
586 return |
593 } |
587 } |
594 |
588 |
595 //sys utimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A |
589 //sys utimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A |
596 |
590 |