rtnetlink/rtnl/conn.go
Ben Kochie 889c07bf6d
Enable golangci-lint (#202)
Add a GitHub actions workflow to run golanci-lint.
* Only uses latest Go version to avoid `gofmt` differences.
* Fixup linting issues.
* Ignore misspell `Prefered` as it is used as a public struct variable.
* Disable `unused-parameter` as it produces unecessary warning noise.

Signed-off-by: SuperQ <superq@gmail.com>
2023-11-27 13:42:29 +01:00

34 lines
787 B
Go

// Package rtnl provides a convenient API on top of the rtnetlink library.
package rtnl
import (
"github.com/jsimonetti/rtnetlink"
"github.com/mdlayher/netlink"
)
// Conn represents the underlying netlink connection
type Conn struct {
Conn *rtnetlink.Conn // a route netlink connection
}
// Dial the netlink socket. Establishes a new connection. The typical initialisation is:
//
// conn, err := rtnl.Dial(nil)
// if err != nil {
// log.Fatal("can't establish netlink connection: ", err)
// }
// defer conn.Close()
// // use conn for your calls
func Dial(cfg *netlink.Config) (*Conn, error) {
conn, err := rtnetlink.Dial(cfg)
if err != nil {
return nil, err
}
return &Conn{Conn: conn}, nil
}
// Close the connection.
func (c *Conn) Close() error {
return c.Conn.Close()
}