ppforge/devices/devices_linux.go

39 lines
917 B
Go

package devices
// [impllnx dsn~low-level-abstraction~0>>utest]
import "golang.org/x/sys/unix"
// TransmitterLinux is the Linux implementation for the Transmitter interface
type TransmitterLinux struct {
socket int
}
// Send implements sending packets on Linux
func (tl TransmitterLinux) Send(data []byte) error {
err := unix.Send(tl.socket, data, 0)
return err
}
// Close closes the transmitter socket
func (tl TransmitterLinux) Close() error {
return unix.Close(tl.socket)
}
// CreateTransmitter creates the Transmitter object
func CreateTransmitter(device string) (Transmitter, error) {
ret := TransmitterLinux{}
var err error
ret.socket, err = unix.Socket(unix.AF_PACKET, unix.SOCK_RAW, unix.ETH_P_ALL)
if err != nil {
panic(err)
}
return ret, err
}
// CreateReceiver creates and starts the Receiver instance
func CreateReceiver(device string) (Receiver, error) {
//TODO
return nil, nil
}