mirror of
https://github.com/hanzoai/visor.git
synced 2026-09-24 17:04:14 +00:00
- In HostSender.HostReadiness, return hangup and readable/writeable events ((ReadableEvents | WriteableEvents | EventHUp | EventRdHUp) & mask) when the host FD is closed (c.fd < 0), ensuring pollers (epoll/poll) are notified of EOF and disconnection instead of masking the closed state. - In SCMSender.beforeSave, return early if e.fd < 0 to make beforeSave idempotent and prevent nil-pointer dereferences in fdnotifier.RemoveFD(-1) on already-closed endpoints. PiperOrigin-RevId: 975898094
127 lines
2.8 KiB
Python
127 lines
2.8 KiB
Python
load("//pkg/sync/locking:locking.bzl", "declare_mutex")
|
|
load("//tools:defs.bzl", "go_library", "go_test")
|
|
load("//tools/go_generics:defs.bzl", "go_template_instance")
|
|
|
|
package(
|
|
default_applicable_licenses = ["//:license"],
|
|
licenses = ["notice"],
|
|
)
|
|
|
|
declare_mutex(
|
|
name = "queue_mutex",
|
|
out = "queue_mutex.go",
|
|
package = "transport",
|
|
prefix = "queue",
|
|
)
|
|
|
|
declare_mutex(
|
|
name = "stream_queue_receiver_mutex",
|
|
out = "stream_queue_receiver_mutex.go",
|
|
package = "transport",
|
|
prefix = "streamQueueReceiver",
|
|
)
|
|
|
|
declare_mutex(
|
|
name = "endpoint_mutex",
|
|
out = "endpoint_mutex.go",
|
|
nested_lock_names = [
|
|
"higherID",
|
|
],
|
|
package = "transport",
|
|
prefix = "endpoint",
|
|
)
|
|
|
|
go_template_instance(
|
|
name = "transport_message_list",
|
|
out = "transport_message_list.go",
|
|
package = "transport",
|
|
prefix = "message",
|
|
template = "//pkg/ilist:generic_list",
|
|
types = {
|
|
"Element": "*message",
|
|
"Linker": "*message",
|
|
},
|
|
)
|
|
|
|
go_template_instance(
|
|
name = "queue_refs",
|
|
out = "queue_refs.go",
|
|
package = "transport",
|
|
prefix = "queue",
|
|
template = "//pkg/refs:refs_template",
|
|
types = {
|
|
"T": "queue",
|
|
},
|
|
)
|
|
|
|
go_template_instance(
|
|
name = "host_sender_refs",
|
|
out = "host_sender_refs.go",
|
|
package = "transport",
|
|
prefix = "HostSender",
|
|
template = "//pkg/refs:refs_template",
|
|
types = {
|
|
"T": "HostSender",
|
|
},
|
|
)
|
|
|
|
go_library(
|
|
name = "transport",
|
|
srcs = [
|
|
"connectioned.go",
|
|
"connectioned_state.go",
|
|
"connectionless.go",
|
|
"connectionless_state.go",
|
|
"endpoint_mutex.go",
|
|
"host.go",
|
|
"host_iovec.go",
|
|
"host_sender_refs.go",
|
|
"host_unsafe.go",
|
|
"queue.go",
|
|
"queue_mutex.go",
|
|
"queue_refs.go",
|
|
"save_restore.go",
|
|
"stream_queue_receiver_mutex.go",
|
|
"transport_message_list.go",
|
|
"unix.go",
|
|
],
|
|
visibility = ["//:sandbox"],
|
|
deps = [
|
|
"//pkg/abi/linux",
|
|
"//pkg/atomicbitops",
|
|
"//pkg/buffer",
|
|
"//pkg/context",
|
|
"//pkg/errors/linuxerr",
|
|
"//pkg/fdnotifier",
|
|
"//pkg/ilist",
|
|
"//pkg/log",
|
|
"//pkg/refs",
|
|
"//pkg/sentry/hostfd",
|
|
"//pkg/sentry/kernel/auth",
|
|
"//pkg/sentry/uniqueid",
|
|
"//pkg/sync",
|
|
"//pkg/sync/locking",
|
|
"//pkg/syserr",
|
|
"//pkg/tcpip",
|
|
"//pkg/unet",
|
|
"//pkg/waiter",
|
|
"@org_golang_x_sys//unix:go_default_library",
|
|
],
|
|
)
|
|
|
|
go_test(
|
|
name = "transport_test",
|
|
size = "small",
|
|
srcs = [
|
|
"host_test.go",
|
|
"queue_test.go",
|
|
],
|
|
library = ":transport",
|
|
deps = [
|
|
"//pkg/context",
|
|
"//pkg/syserr",
|
|
"//pkg/waiter",
|
|
"@org_golang_x_sys//unix:go_default_library",
|
|
],
|
|
)
|