/* SPDX-License-Identifier: MIT
*
* Phobos
*/
package manager
import (
"fmt"
"golang.org/x/sys/windows"
"golang.zx2c4.com/wireguard/windows/conf"
"golang.zx2c4.com/wireguard/windows/tunnel/winipcfg"
)
func findAdapterLUID(name string) (winipcfg.LUID, error) {
interfaces, err := winipcfg.GetAdaptersAddresses(windows.AF_UNSPEC, winipcfg.GAAFlagIncludeAll)
if err != nil {
return 0, err
}
for _, iface := range interfaces {
if iface.FriendlyName() == name {
return iface.LUID, nil
}
}
return 0, fmt.Errorf("no adapter named %q", name)
}
func attachSocks5RuntimeCounters(config *conf.Config) error {
luid, err := findAdapterLUID(config.Name)
if err != nil {
return err
}
row, err := luid.Interface()
if err != nil {
return err
}
config.Obfuscation.RxBytes = conf.Bytes(row.InOctets)
config.Obfuscation.TxBytes = conf.Bytes(row.OutOctets)
return nil
}