Skip to content

Commit

Permalink
add go mod, errors and getplist
Browse files Browse the repository at this point in the history
  • Loading branch information
dylanhitt committed Jan 11, 2022
1 parent 25dc7a6 commit bb6290a
Show file tree
Hide file tree
Showing 13 changed files with 554 additions and 15 deletions.
8 changes: 8 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module github.com/pauldotknopf/goidevice

go 1.16

require (
github.com/mattn/go-pointer v0.0.1
github.com/olebedev/emitter v0.0.0-20190110104742-e8d1457e6aee
)
4 changes: 4 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0=
github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc=
github.com/olebedev/emitter v0.0.0-20190110104742-e8d1457e6aee h1:IquUs3fIykn10zWDIyddanhpTqBvAHMaPnFhQuyYw5U=
github.com/olebedev/emitter v0.0.0-20190110104742-e8d1457e6aee/go.mod h1:eT2/Pcsim3XBjbvldGiJBvvgiqZkAFyiOJJsDKXs/ts=
132 changes: 132 additions & 0 deletions idevice/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,72 @@ var (
ErrBadHeader = errors.New("bad header")
// ErrSslError .
ErrSslError = errors.New("ssl error")
// ErrReceiveTimeout .
ErrReceiveTimeout = errors.New("receive timeout")
// ErrMuxError .
ErrMuxError = errors.New("mux error")
// ErrNoRunningSession .
ErrNoRunningSession = errors.New("no running session")
// ErrInvalidResponse .
ErrInvalidResponse = errors.New("invalid response")
// ErrMissingKey .
ErrMissingKey = errors.New("missing key")
// ErrMissingValue .
ErrMissingValue = errors.New("missing value")
// ErrGetProhibited .
ErrGetProhibited = errors.New("get prohibited")
// ErrSetProhibited .
ErrSetProhibited = errors.New("set prohibited")
// ErrRemoveProhibited .
ErrRemoveProhibited = errors.New("remove prohibited")
// ErrImmutableValue .
ErrImmutableValue = errors.New("immutable value")
// ErrPasswordProtected .
ErrPasswordProtected = errors.New("password protected")
// ErrUserDeniedPairing .
ErrUserDeniedPairing = errors.New("user denied pairing")
// ErrPairingDialogResponsePending .
ErrPairingDialogResponsePending = errors.New("pairing dialog response pending")
// ErrMissingHostID .
ErrMissingHostID = errors.New("missing host id")
// ErrInvalidHostID .
ErrInvalidHostID = errors.New("invalid host id")
// ErrSessionActive .
ErrSessionActive = errors.New("session active")
// ErrSessionInactive .
ErrSessionInactive = errors.New("session inactive")
// ErrMissingSessionID .
ErrMissingSessionID = errors.New("missing session id")
// ErrInvalidSessionID .
ErrInvalidSessionID = errors.New("invalid session id")
// ErrMissingService .
ErrMissingService = errors.New("missing service")
// ErrInvalidService .
ErrInvalidService = errors.New("invalid service")
// ErrServiceLimit .
ErrServiceLimit = errors.New("service limit")
// ErrMissingPairRecord .
ErrMissingPairRecord = errors.New("missing pair record")
// ErrSavePairRecordFailed .
ErrSavePairRecordFailed = errors.New("save pair record failed")
// ErrInvalidPairRecord .
ErrInvalidPairRecord = errors.New("invalid pair record")
// ErrInvalidActivationPeriod .
ErrInvalidActivationPeriod = errors.New("invalid activation period")
// ErrMissingActivationPeriod .
ErrMissingActivationPeriod = errors.New("missing activation period")
// ErrServiceProhibited .
ErrServiceProhibited = errors.New("service prohibited")
// ErrEscrowLocked .
ErrEscrowLocked = errors.New("escrow locked")
// ErrPairingProhibitedOverThisConnection .
ErrPairingProhibitedOverThisConnection = errors.New("pairing prohibited over this connection")
// ErrFMIPProtected .
ErrFMIPProtected = errors.New("FMIP protected")
// ErrMCProtected .
ErrMCProtected = errors.New("MC Protected")
// ErrMCChallengeRequired .
ErrMCChallengeRequired = errors.New("mc challenge required")
)

func resultToError(result C.idevice_error_t) error {
Expand All @@ -39,6 +105,72 @@ func resultToError(result C.idevice_error_t) error {
return ErrBadHeader
case -6:
return ErrSslError
case -7:
return ErrReceiveTimeout
case -8:
return ErrMuxError
case -9:
return ErrNoRunningSession
case -10:
return ErrInvalidResponse
case -11:
return ErrMissingKey
case -12:
return ErrMissingValue
case -13:
return ErrGetProhibited
case -14:
return ErrSetProhibited
case -15:
return ErrRemoveProhibited
case -16:
return ErrImmutableValue
case -17:
return ErrPasswordProtected
case -18:
return ErrUserDeniedPairing
case -19:
return ErrPairingDialogResponsePending
case -20:
return ErrMissingHostID
case -21:
return ErrInvalidHostID
case -22:
return ErrSessionActive
case -23:
return ErrSessionInactive
case -24:
return ErrMissingSessionID
case -25:
return ErrInvalidSessionID
case -26:
return ErrMissingService
case -27:
return ErrInvalidService
case -28:
return ErrServiceLimit
case -29:
return ErrMissingPairRecord
case -30:
return ErrSavePairRecordFailed
case -31:
return ErrInvalidPairRecord
case -32:
return ErrInvalidActivationPeriod
case -33:
return ErrMissingActivationPeriod
case -34:
return ErrServiceProhibited
case -35:
return ErrEscrowLocked
case -36:
return ErrPairingProhibitedOverThisConnection
case -37:
return ErrFMIPProtected
case -38:
return ErrMCProtected
case -39:
return ErrMCChallengeRequired
default:
return ErrUnknown
}
Expand Down
162 changes: 157 additions & 5 deletions installation/errors.go
Original file line number Diff line number Diff line change
@@ -1,24 +1,176 @@
package installation

import (
"errors"
)

// #cgo pkg-config: libimobiledevice-1.0
// #include <stdlib.h>
// #include <libimobiledevice/installation_proxy.h>
import "C"
import (
"errors"
)

var (
// ErrInvalidArgs .
ErrInvalidArgs = errors.New("invalid args")
// ErrUnknown .
ErrUnknown = errors.New("unknown")
// TODO: Add the rest of the errors
// ErrNoDevice .
ErrNoDevice = errors.New("no device")
// ErrNotEnoughData .
ErrNotEnoughData = errors.New("not enough data")
// ErrBadHeader .
ErrBadHeader = errors.New("bad header")
// ErrSslError .
ErrSslError = errors.New("ssl error")
// ErrReceiveTimeout .
ErrReceiveTimeout = errors.New("receive timeout")
// ErrMuxError .
ErrMuxError = errors.New("mux error")
// ErrNoRunningSession .
ErrNoRunningSession = errors.New("no running session")
// ErrInvalidResponse .
ErrInvalidResponse = errors.New("invalid response")
// ErrMissingKey .
ErrMissingKey = errors.New("missing key")
// ErrMissingValue .
ErrMissingValue = errors.New("missing value")
// ErrGetProhibited .
ErrGetProhibited = errors.New("get prohibited")
// ErrSetProhibited .
ErrSetProhibited = errors.New("set prohibited")
// ErrRemoveProhibited .
ErrRemoveProhibited = errors.New("remove prohibited")
// ErrImmutableValue .
ErrImmutableValue = errors.New("immutable value")
// ErrPasswordProtected .
ErrPasswordProtected = errors.New("password protected")
// ErrUserDeniedPairing .
ErrUserDeniedPairing = errors.New("user denied pairing")
// ErrPairingDialogResponsePending .
ErrPairingDialogResponsePending = errors.New("pairing dialog response pending")
// ErrMissingHostID .
ErrMissingHostID = errors.New("missing host id")
// ErrInvalidHostID .
ErrInvalidHostID = errors.New("invalid host id")
// ErrSessionActive .
ErrSessionActive = errors.New("session active")
// ErrSessionInactive .
ErrSessionInactive = errors.New("session inactive")
// ErrMissingSessionID .
ErrMissingSessionID = errors.New("missing session id")
// ErrInvalidSessionID .
ErrInvalidSessionID = errors.New("invalid session id")
// ErrMissingService .
ErrMissingService = errors.New("missing service")
// ErrInvalidService .
ErrInvalidService = errors.New("invalid service")
// ErrServiceLimit .
ErrServiceLimit = errors.New("service limit")
// ErrMissingPairRecord .
ErrMissingPairRecord = errors.New("missing pair record")
// ErrSavePairRecordFailed .
ErrSavePairRecordFailed = errors.New("save pair record failed")
// ErrInvalidPairRecord .
ErrInvalidPairRecord = errors.New("invalid pair record")
// ErrInvalidActivationPeriod .
ErrInvalidActivationPeriod = errors.New("invalid activation period")
// ErrMissingActivationPeriod .
ErrMissingActivationPeriod = errors.New("missing activation period")
// ErrServiceProhibited .
ErrServiceProhibited = errors.New("service prohibited")
// ErrEscrowLocked .
ErrEscrowLocked = errors.New("escrow locked")
// ErrPairingProhibitedOverThisConnection .
ErrPairingProhibitedOverThisConnection = errors.New("pairing prohibited over this connection")
// ErrFMIPProtected .
ErrFMIPProtected = errors.New("FMIP protected")
// ErrMCProtected .
ErrMCProtected = errors.New("MC Protected")
// ErrMCChallengeRequired .
ErrMCChallengeRequired = errors.New("mc challenge required")
)

func resultToError(result C.instproxy_error_t) error {
switch result {
case 0:
return nil
case -1:
return ErrInvalidArgs
case -2:
return ErrUnknown
case -3:
return ErrNoDevice
case -4:
return ErrNotEnoughData
case -5:
return ErrBadHeader
case -6:
return ErrSslError
case -7:
return ErrReceiveTimeout
case -8:
return ErrMuxError
case -9:
return ErrNoRunningSession
case -10:
return ErrInvalidResponse
case -11:
return ErrMissingKey
case -12:
return ErrMissingValue
case -13:
return ErrGetProhibited
case -14:
return ErrSetProhibited
case -15:
return ErrRemoveProhibited
case -16:
return ErrImmutableValue
case -17:
return ErrPasswordProtected
case -18:
return ErrUserDeniedPairing
case -19:
return ErrPairingDialogResponsePending
case -20:
return ErrMissingHostID
case -21:
return ErrInvalidHostID
case -22:
return ErrSessionActive
case -23:
return ErrSessionInactive
case -24:
return ErrMissingSessionID
case -25:
return ErrInvalidSessionID
case -26:
return ErrMissingService
case -27:
return ErrInvalidService
case -28:
return ErrServiceLimit
case -29:
return ErrMissingPairRecord
case -30:
return ErrSavePairRecordFailed
case -31:
return ErrInvalidPairRecord
case -32:
return ErrInvalidActivationPeriod
case -33:
return ErrMissingActivationPeriod
case -34:
return ErrServiceProhibited
case -35:
return ErrEscrowLocked
case -36:
return ErrPairingProhibitedOverThisConnection
case -37:
return ErrFMIPProtected
case -38:
return ErrMCProtected
case -39:
return ErrMCChallengeRequired
default:
return ErrUnknown
}
Expand Down
Loading

0 comments on commit bb6290a

Please sign in to comment.