mirror of
https://github.com/amnezia-vpn/amneziawg-go.git
synced 2025-06-06 21:33:44 +02:00
device: getsockname on linux to determine port
It turns out Go isn't passing the pointer properly so we wound up with a zero port every time.
This commit is contained in:
parent
0c540ad60e
commit
f8198c0428
1 changed files with 10 additions and 0 deletions
|
@ -391,6 +391,11 @@ func create4(port uint16) (int, uint16, error) {
|
||||||
return FD_ERR, 0, err
|
return FD_ERR, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sa, err := unix.Getsockname(fd)
|
||||||
|
if err == nil {
|
||||||
|
addr.Port = sa.(*unix.SockaddrInet4).Port
|
||||||
|
}
|
||||||
|
|
||||||
return fd, uint16(addr.Port), err
|
return fd, uint16(addr.Port), err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -450,6 +455,11 @@ func create6(port uint16) (int, uint16, error) {
|
||||||
return FD_ERR, 0, err
|
return FD_ERR, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sa, err := unix.Getsockname(fd)
|
||||||
|
if err == nil {
|
||||||
|
addr.Port = sa.(*unix.SockaddrInet6).Port
|
||||||
|
}
|
||||||
|
|
||||||
return fd, uint16(addr.Port), err
|
return fd, uint16(addr.Port), err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue