diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-03-30 02:14:47 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-03-30 02:14:47 +0900 |
| commit | 584e30216896fd4de6301f9cf937829e16d22c49 (patch) | |
| tree | c9838372b7bf39cb9508e318634f405868dfd05a /internal/uevent | |
| parent | 141958656f8a83a4f5703bd4890389dd1f180e0a (diff) | |
internal/netlink: set receive buffer size
This is done by both systemd sd-device and AOSP ueventd to improve robustness. Rosa OS will still handle ENOBUFS via coldboot but a big buffer should mitigate this as well.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/uevent')
| -rw-r--r-- | internal/uevent/uevent.go | 4 | ||||
| -rw-r--r-- | internal/uevent/uevent_test.go | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/internal/uevent/uevent.go b/internal/uevent/uevent.go index 47091f59..25fd02be 100644 --- a/internal/uevent/uevent.go +++ b/internal/uevent/uevent.go @@ -50,9 +50,9 @@ func (c *Conn) exitExcl() { c.excl.Store(false) } func (c *Conn) Close() error { return c.conn.Close() } // Dial returns the address of a newly connected [Conn]. -func Dial() (*Conn, error) { +func Dial(rcvbuf int64) (*Conn, error) { // kernel group is hard coded in lib/kobject_uevent.c, undocumented - c, err := netlink.Dial(syscall.NETLINK_KOBJECT_UEVENT, 1) + c, err := netlink.Dial(syscall.NETLINK_KOBJECT_UEVENT, 1, rcvbuf) if err != nil { return nil, err } diff --git a/internal/uevent/uevent_test.go b/internal/uevent/uevent_test.go index 7dce4798..9b986ff3 100644 --- a/internal/uevent/uevent_test.go +++ b/internal/uevent/uevent_test.go @@ -116,7 +116,7 @@ func adeB[V any, S interface { func TestDialConsume(t *testing.T) { t.Parallel() - c, err := uevent.Dial() + c, err := uevent.Dial(0) if err != nil { t.Fatalf("Dial: error = %v", err) } @@ -127,7 +127,7 @@ func TestDialConsume(t *testing.T) { }) // check kernel-assigned port id - c0, err0 := uevent.Dial() + c0, err0 := uevent.Dial(0) if err0 != nil { t.Fatalf("Dial: error = %v", err) } |
