mirror of
https://github.com/golang/sys.git
synced 2026-02-08 11:46:04 +03:00
AF_IUCV work
This commit is contained in:
@@ -540,6 +540,8 @@ type RawSockaddrL2TPIP C.struct_sockaddr_l2tpip
|
||||
|
||||
type RawSockaddrL2TPIP6 C.struct_sockaddr_l2tpip6
|
||||
|
||||
type RawSockaddrIUCV C.struct_sockaddr_iucv
|
||||
|
||||
type RawSockaddr C.struct_sockaddr
|
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any
|
||||
@@ -594,6 +596,7 @@ const (
|
||||
SizeofSockaddrTIPC = C.sizeof_struct_sockaddr_tipc
|
||||
SizeofSockaddrL2TPIP = C.sizeof_struct_sockaddr_l2tpip
|
||||
SizeofSockaddrL2TPIP6 = C.sizeof_struct_sockaddr_l2tpip6
|
||||
SizeofSockaddrIUCV = C.sizeof_struct_sockaddr_iucv
|
||||
SizeofLinger = C.sizeof_struct_linger
|
||||
SizeofIovec = C.sizeof_struct_iovec
|
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq
|
||||
|
||||
@@ -885,6 +885,25 @@ func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||
return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil
|
||||
}
|
||||
|
||||
// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets.
|
||||
type SockaddrIUCV struct {
|
||||
UserID string
|
||||
Name string
|
||||
raw RawSockaddrIUCV
|
||||
}
|
||||
|
||||
func (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||
sa.raw.Family = AF_IUCV
|
||||
for i := 0; i < 8; i++ {
|
||||
sa.raw.Nodeid[i] = ' '
|
||||
sa.raw.User_id[i] = ' '
|
||||
sa.raw.Name[i] = ' '
|
||||
}
|
||||
copy(sa.raw.User_id[:], []byte(sa.UserID))
|
||||
copy(sa.raw.Name[:], []byte(sa.Name))
|
||||
return unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil
|
||||
}
|
||||
|
||||
func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
|
||||
switch rsa.Addr.Family {
|
||||
case AF_NETLINK:
|
||||
|
||||
@@ -310,6 +310,15 @@ type RawSockaddrL2TPIP6 struct {
|
||||
Conn_id uint32
|
||||
}
|
||||
|
||||
type RawSockaddrIUCV struct {
|
||||
Family uint16
|
||||
Port uint16
|
||||
Addr uint32
|
||||
Nodeid [8]byte
|
||||
User_id [8]byte
|
||||
Name [8]byte
|
||||
}
|
||||
|
||||
type _Socklen uint32
|
||||
|
||||
type Linger struct {
|
||||
@@ -422,6 +431,7 @@ const (
|
||||
SizeofSockaddrTIPC = 0x10
|
||||
SizeofSockaddrL2TPIP = 0x10
|
||||
SizeofSockaddrL2TPIP6 = 0x20
|
||||
SizeofSockaddrIUCV = 0x20
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
Reference in New Issue
Block a user