...

Source file src/github.com/godbus/dbus/v5/transport_generic.go

Documentation: github.com/godbus/dbus/v5

     1  package dbus
     2  
     3  import (
     4  	"encoding/binary"
     5  	"errors"
     6  	"io"
     7  	"unsafe"
     8  )
     9  
    10  var nativeEndian binary.ByteOrder
    11  
    12  func detectEndianness() binary.ByteOrder {
    13  	var x uint32 = 0x01020304
    14  	if *(*byte)(unsafe.Pointer(&x)) == 0x01 {
    15  		return binary.BigEndian
    16  	}
    17  	return binary.LittleEndian
    18  }
    19  
    20  func init() {
    21  	nativeEndian = detectEndianness()
    22  }
    23  
    24  type genericTransport struct {
    25  	io.ReadWriteCloser
    26  }
    27  
    28  func (t genericTransport) SendNullByte() error {
    29  	_, err := t.Write([]byte{0})
    30  	return err
    31  }
    32  
    33  func (t genericTransport) SupportsUnixFDs() bool {
    34  	return false
    35  }
    36  
    37  func (t genericTransport) EnableUnixFDs() {}
    38  
    39  func (t genericTransport) ReadMessage() (*Message, error) {
    40  	return DecodeMessage(t)
    41  }
    42  
    43  func (t genericTransport) SendMessage(msg *Message) error {
    44  	fds, err := msg.CountFds()
    45  	if err != nil {
    46  		return err
    47  	}
    48  	if fds != 0 {
    49  		return errors.New("dbus: unix fd passing not enabled")
    50  	}
    51  	return msg.EncodeTo(t, nativeEndian)
    52  }
    53  

View as plain text