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