Use multierr in packetimpact Connection.Close()

PiperOrigin-RevId: 306930652
This commit is contained in:
Eyal Soha
2020-04-16 15:15:50 -07:00
committed by gVisor bot
parent 5a8ee1beee
commit 75e864fc75
3 changed files with 21 additions and 7 deletions
+14
View File
@@ -400,6 +400,20 @@ go_repository(
version = "v0.20.0",
)
go_repository(
name = "org_uber_go_atomic",
importpath = "go.uber.org/atomic",
version = "v1.6.0",
sum = "h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk=",
)
go_repository(
name = "org_uber_go_multierr",
importpath = "go.uber.org/multierr",
version = "v1.5.0",
sum = "h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A=",
)
# BigQuery Dependencies for Benchmarks
go_repository(
name = "com_google_cloud_go",
+1
View File
@@ -28,6 +28,7 @@ go_library(
"@org_golang_google_grpc//:go_default_library",
"@org_golang_google_grpc//keepalive:go_default_library",
"@org_golang_x_sys//unix:go_default_library",
"@org_uber_go_multierr//:go_default_library",
],
)
+6 -7
View File
@@ -26,6 +26,7 @@ import (
"time"
"github.com/mohae/deepcopy"
"go.uber.org/multierr"
"golang.org/x/sys/unix"
"gvisor.dev/gvisor/pkg/tcpip"
"gvisor.dev/gvisor/pkg/tcpip/header"
@@ -382,17 +383,15 @@ func (conn *Connection) match(override, received Layers) bool {
// Close frees associated resources held by the Connection.
func (conn *Connection) Close() {
if err := conn.sniffer.close(); err != nil {
conn.t.Fatal(err)
}
if err := conn.injector.close(); err != nil {
conn.t.Fatal(err)
}
errs := multierr.Combine(conn.sniffer.close(), conn.injector.close())
for _, s := range conn.layerStates {
if err := s.close(); err != nil {
conn.t.Fatalf("unable to close %+v: %s", s, err)
errs = multierr.Append(errs, fmt.Errorf("unable to close %+v: %s", s, err))
}
}
if errs != nil {
conn.t.Fatalf("unable to close %+v: %s", conn, errs)
}
}
// CreateFrame builds a frame for the connection with layer overriding defaults