chore(errors): review all errors in codebase
This commit is contained in:
@@ -12,24 +12,21 @@ type Checker interface {
|
||||
}
|
||||
|
||||
var (
|
||||
ErrTUNNotAvailable = errors.New("TUN device is not available")
|
||||
ErrTUNStat = errors.New("cannot stat TUN file")
|
||||
ErrTUNInfo = errors.New("cannot get syscall stat info of TUN file")
|
||||
ErrTUNBadRdev = errors.New("TUN file has an unexpected rdev")
|
||||
ErrTUNClose = errors.New("cannot close TUN device")
|
||||
ErrTUNInfo = errors.New("cannot get syscall stat info of TUN file")
|
||||
ErrTUNBadRdev = errors.New("TUN file has an unexpected rdev")
|
||||
)
|
||||
|
||||
// Check checks the tunnel device specified by path is present and accessible.
|
||||
func (t *Tun) Check(path string) error {
|
||||
f, err := os.OpenFile(path, os.O_RDWR, 0)
|
||||
if err != nil {
|
||||
return fmt.Errorf("%w: %s", ErrTUNNotAvailable, err)
|
||||
return fmt.Errorf("TUN device is not available: %w", err)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
info, err := f.Stat()
|
||||
if err != nil {
|
||||
return fmt.Errorf("%w: %s", ErrTUNStat, err)
|
||||
return fmt.Errorf("cannot stat TUN file: %w", err)
|
||||
}
|
||||
|
||||
sys, ok := info.Sys().(*syscall.Stat_t)
|
||||
@@ -44,7 +41,7 @@ func (t *Tun) Check(path string) error {
|
||||
}
|
||||
|
||||
if err := f.Close(); err != nil {
|
||||
return fmt.Errorf("%w: %s", ErrTUNClose, err)
|
||||
return fmt.Errorf("cannot close TUN device: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package tun
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -13,12 +12,6 @@ type Creator interface {
|
||||
Create(path string) error
|
||||
}
|
||||
|
||||
var (
|
||||
ErrMknod = errors.New("cannot create TUN device file node")
|
||||
ErrUnixOpen = errors.New("cannot Unix Open TUN device file")
|
||||
ErrSetNonBlock = errors.New("cannot set non block to TUN device file descriptor")
|
||||
)
|
||||
|
||||
// Create creates a TUN device at the path specified.
|
||||
func (t *Tun) Create(path string) error {
|
||||
parentDir := filepath.Dir(path)
|
||||
@@ -33,18 +26,18 @@ func (t *Tun) Create(path string) error {
|
||||
dev := unix.Mkdev(major, minor)
|
||||
err := t.mknod(path, unix.S_IFCHR, int(dev))
|
||||
if err != nil {
|
||||
return fmt.Errorf("%w: %s", ErrMknod, err)
|
||||
return fmt.Errorf("cannot create TUN device file node: %w", err)
|
||||
}
|
||||
|
||||
fd, err := unix.Open(path, 0, 0)
|
||||
if err != nil {
|
||||
return fmt.Errorf("%w: %s", ErrUnixOpen, err)
|
||||
return fmt.Errorf("cannot Unix Open TUN device file: %w", err)
|
||||
}
|
||||
|
||||
const nonBlocking = true
|
||||
err = unix.SetNonblock(fd, nonBlocking)
|
||||
if err != nil {
|
||||
return fmt.Errorf("%w: %s", ErrSetNonBlock, err)
|
||||
return fmt.Errorf("cannot set non block to TUN device file descriptor: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user