k3s/vendor/github.com/godbus/dbus/transport_generic.go

51 lines
907 B
Go
Raw Normal View History

2019-01-12 04:58:27 +00:00
package dbus
import (
"encoding/binary"
"errors"
"io"
2019-09-27 21:51:53 +00:00
"unsafe"
2019-01-12 04:58:27 +00:00
)
2019-09-27 21:51:53 +00:00
var nativeEndian binary.ByteOrder
func detectEndianness() binary.ByteOrder {
var x uint32 = 0x01020304
2019-12-12 01:27:03 +00:00
if *(*byte)(unsafe.Pointer(&x)) == 0x01 {
2019-09-27 21:51:53 +00:00
return binary.BigEndian
}
return binary.LittleEndian
}
func init() {
nativeEndian = detectEndianness()
}
2019-01-12 04:58:27 +00:00
type genericTransport struct {
io.ReadWriteCloser
}
func (t genericTransport) SendNullByte() error {
_, err := t.Write([]byte{0})
return err
}
func (t genericTransport) SupportsUnixFDs() bool {
return false
}
func (t genericTransport) EnableUnixFDs() {}
func (t genericTransport) ReadMessage() (*Message, error) {
return DecodeMessage(t)
}
func (t genericTransport) SendMessage(msg *Message) error {
for _, v := range msg.Body {
if _, ok := v.(UnixFD); ok {
return errors.New("dbus: unix fd passing not enabled")
}
}
2019-09-27 21:51:53 +00:00
return msg.EncodeTo(t, nativeEndian)
2019-01-12 04:58:27 +00:00
}