usbmuxd

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 22, 2020 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const HeaderSize = 16

Variables

View Source
var (
	ErrNotFound = errors.New("device not found")
)

Functions

func Dial

func Dial(address string) (net.Conn, error)

Types

type Conn

type Conn struct {
	// contains filtered or unexported fields
}

func NewConn

func NewConn() (*Conn, error)

func (*Conn) Close

func (c *Conn) Close() error

Close closes the connection. Any blocked Read or Write operations will be unblocked and return errors.

func (*Conn) Dial

func (c *Conn) Dial(address string) error

func (*Conn) ListDevices

func (c *Conn) ListDevices() ([]*DeviceAttachment, error)

func (*Conn) LocalAddr

func (c *Conn) LocalAddr() net.Addr

LocalAddr returns the local network address.

func (*Conn) Read

func (c *Conn) Read(b []byte) (int, error)

Read reads data from the connection. Read can be made to time out and return an Error with Timeout() == true after a fixed time limit; see SetDeadline and SetReadDeadline.

func (*Conn) ReadPairRecord

func (c *Conn) ReadPairRecord(udid string) (*PairRecord, error)

func (*Conn) Recv

func (c *Conn) Recv(msg interface{}) error

func (*Conn) RemoteAddr

func (c *Conn) RemoteAddr() net.Addr

RemoteAddr returns the remote network address.

func (*Conn) Request

func (c *Conn) Request(req, resp interface{}) error

func (*Conn) Send

func (c *Conn) Send(msg interface{}) error

func (*Conn) SetDeadline

func (c *Conn) SetDeadline(t time.Time) error

SetDeadline sets the read and write deadlines associated with the connection. It is equivalent to calling both SetReadDeadline and SetWriteDeadline.

A deadline is an absolute time after which I/O operations fail with a timeout (see type Error) instead of blocking. The deadline applies to all future and pending I/O, not just the immediately following call to Read or Write. After a deadline has been exceeded, the connection can be refreshed by setting a deadline in the future.

An idle timeout can be implemented by repeatedly extending the deadline after successful Read or Write calls.

A zero value for t means I/O operations will not time out.

Note that if a TCP connection has keep-alive turned on, which is the default unless overridden by Dialer.KeepAlive or ListenConfig.KeepAlive, then a keep-alive failure may also return a timeout error. On Unix systems a keep-alive failure on I/O can be detected using errors.Is(err, syscall.ETIMEDOUT).

func (*Conn) SetReadDeadline

func (c *Conn) SetReadDeadline(t time.Time) error

SetReadDeadline sets the deadline for future Read calls and any currently-blocked Read call. A zero value for t means Read will not time out.

func (*Conn) SetWriteDeadline

func (c *Conn) SetWriteDeadline(t time.Time) error

SetWriteDeadline sets the deadline for future Write calls and any currently-blocked Write call. Even if write times out, it may return n > 0, indicating that some of the data was successfully written. A zero value for t means Write will not time out.

func (*Conn) Write

func (c *Conn) Write(b []byte) (int, error)

Write writes data to the connection. Write can be made to time out and return an Error with Timeout() == true after a fixed time limit; see SetDeadline and SetWriteDeadline.

type ConnectRequest

type ConnectRequest struct {
	RequestBase
	ClientVersionString string `plist:"ClientVersionString,omitempty"`
	ProgName            string `plist:"ProgName,omitempty"`
	DeviceID            int    `plist:"DeviceID"`
	PortNumber          uint16 `plist:"PortNumber"`
}

type DeviceAttached

type DeviceAttached struct {
	RequestBase
	DeviceID   int
	Properties *DeviceAttachment
}

type DeviceAttachment

type DeviceAttachment struct {
	ConnectionSpeed int
	ConnectionType  string
	DeviceID        int
	LocationID      int
	ProductID       int
	SerialNumber    string
	UDID            string
	USBSerialNumber string
}

type DeviceDetached

type DeviceDetached struct {
	RequestBase
	DeviceID int
}
type Header struct {
	Length      uint32
	Version     uint32
	MessageType uint32
	Tag         uint32
}

Total size is always 16 bytes

func NewHeader

func NewHeader(length int) Header

type ListDevicesRequest

type ListDevicesRequest struct {
	RequestBase
}

type ListDevicesResponse

type ListDevicesResponse struct {
	DeviceList []*DeviceAttached
}

type ListenRequest

type ListenRequest struct {
	RequestBase
	ClientVersionString string
	ProgName            string
}

type PairRecord

type PairRecord struct {
	DeviceCertificate []byte
	EscrowBag         []byte
	HostCertificate   []byte
	HostID            string
	HostPrivateKey    []byte
	RootCertificate   []byte
	RootPrivateKey    []byte
	SystemBUID        string
	WiFiMACAddress    string
}

type ReadPairRecordRequest

type ReadPairRecordRequest struct {
	RequestBase
	PairRecordID   string `plist:"PairRecordID"`
	PairRecordData []byte `plist:"PairRecordData,omitempty"`
	DeviceID       int    `plist:"DeviceID,omitempty"`
}

type ReadPairRecordResponse

type ReadPairRecordResponse struct {
	PairRecordData []byte
}

type RequestBase

type RequestBase struct {
	MessageType string
}

type Result

type Result int
const (
	ResultOK Result = iota
	ResultBadCommand
	ResultBadDevice
	ResultConnectionRefused
	ResultConnectionUnknown1
	ResultConnectionUnknown2
	ResultBadVersion
)

type ResultResponse

type ResultResponse struct {
	Number ResultValue
}

type ResultValue

type ResultValue int
const (
	ResultValueOK ResultValue = iota
	ResultValueBadCommand
	ResultValueBadDevice
	ResultValueConnectionRefused
	ResultValueConnectionUnknown1
	ResultValueConnectionUnknown2
	ResultValueBadVersion
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL