From cae0ffa2e151d157f485ae6e52f6069a2f883fc0 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 13 Jan 2026 21:38:37 -0800 Subject: [PATCH] Add back AddDevice function --- olm/olm.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/olm/olm.go b/olm/olm.go index 6d8f7a5..2db3630 100644 --- a/olm/olm.go +++ b/olm/olm.go @@ -576,3 +576,29 @@ func (o *Olm) SwitchOrg(orgID string) error { return nil } + +func (o *Olm) AddDevice(fd uint32) error { + if o.middleDev == nil { + return fmt.Errorf("middle device is not initialized") + } + + if o.tunnelConfig.MTU == 0 { + return fmt.Errorf("tunnel MTU is not set") + } + + tdev, err := olmDevice.CreateTUNFromFD(fd, o.tunnelConfig.MTU) + if err != nil { + return fmt.Errorf("failed to create TUN device from fd: %v", err) + } + + // Update interface name if available + if realInterfaceName, err2 := tdev.Name(); err2 == nil { + o.tunnelConfig.InterfaceName = realInterfaceName + } + + // Replace the existing TUN device in the middle device with the new one + o.middleDev.AddDevice(tdev) + + logger.Info("Added device from file descriptor %d", fd) + return nil +}