Move SO_BINDTODEVICE to socketops.

PiperOrigin-RevId: 348696094
This commit is contained in:
Nayana Bidari
2020-12-22 14:44:02 -08:00
committed by gVisor bot
parent 202e9fa369
commit 7c8ba72b02
9 changed files with 68 additions and 82 deletions
+3 -8
View File
@@ -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