mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Move SO_BINDTODEVICE to socketops.
PiperOrigin-RevId: 348696094
This commit is contained in:
committed by
gVisor bot
parent
202e9fa369
commit
7c8ba72b02
@@ -1042,10 +1042,7 @@ func getSockOptSocket(t *kernel.Task, s socket.SocketOps, ep commonEndpoint, fam
|
||||
return &v, nil
|
||||
|
||||
case linux.SO_BINDTODEVICE:
|
||||
var v tcpip.BindToDeviceOption
|
||||
if err := ep.GetSockOpt(&v); err != nil {
|
||||
return nil, syserr.TranslateNetstackError(err)
|
||||
}
|
||||
v := ep.SocketOptions().GetBindToDevice()
|
||||
if v == 0 {
|
||||
var b primitive.ByteSlice
|
||||
return &b, nil
|
||||
@@ -1804,8 +1801,7 @@ func setSockOptSocket(t *kernel.Task, s socket.SocketOps, ep commonEndpoint, nam
|
||||
}
|
||||
name := string(optVal[:n])
|
||||
if name == "" {
|
||||
v := tcpip.BindToDeviceOption(0)
|
||||
return syserr.TranslateNetstackError(ep.SetSockOpt(&v))
|
||||
return syserr.TranslateNetstackError(ep.SocketOptions().SetBindToDevice(0))
|
||||
}
|
||||
s := t.NetworkContext()
|
||||
if s == nil {
|
||||
@@ -1813,8 +1809,7 @@ func setSockOptSocket(t *kernel.Task, s socket.SocketOps, ep commonEndpoint, nam
|
||||
}
|
||||
for nicID, nic := range s.Interfaces() {
|
||||
if nic.Name == name {
|
||||
v := tcpip.BindToDeviceOption(nicID)
|
||||
return syserr.TranslateNetstackError(ep.SetSockOpt(&v))
|
||||
return syserr.TranslateNetstackError(ep.SocketOptions().SetBindToDevice(nicID))
|
||||
}
|
||||
}
|
||||
return syserr.ErrUnknownDevice
|
||||
|
||||
Reference in New Issue
Block a user