diff --git a/Gopkg.lock b/Gopkg.lock index 0cb9d0ac..180f564d 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -101,7 +101,7 @@ name = "github.com/chebyrash/promise" packages = ["."] pruneopts = "NUT" - revision = "9bd9ee08fbd8aadcee03d46c927ff33b4fdcc96e" + revision = "9132bc6bc4fb155a673b52f530470522421b6826" [[projects]] digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" @@ -146,7 +146,7 @@ version = "v1.3.1" [[projects]] - digest = "1:a06187c7498a14ab96bb909e09af9ce1687678f355b775bcf1dc84729e2a2100" + digest = "1:908cb57711c23bbf6b770d8669d51cadf3b53bb1e307176e17d8c9cd4dbe5e06" name = "github.com/golang/protobuf" packages = [ "proto", @@ -156,8 +156,8 @@ "ptypes/timestamp", ] pruneopts = "NUT" - revision = "d23c5127dc24889085f8ccea5c9d560a57a879d8" - version = "v1.3.3" + revision = "5d5b4c10bd43f85e63bd9e4a3fa9b1ea2ef88af2" + version = "v1.3.4" [[projects]] digest = "1:406338ad39ab2e37b7f4452906442a3dbf0eb3379dd1f06aafb5c07e769a5fbb" @@ -255,8 +255,8 @@ "internal/util", ] pruneopts = "NUT" - revision = "584181f8e7015e8fbd319be9a5a9341d8f3d64df" - version = "v0.0.9" + revision = "4850c197847aa06aecc37570077fc16e9215d565" + version = "v0.0.10" [[projects]] digest = "1:c109c5d92f0de1ceeea77ae0d13a20bf0f8e4ef5d3b0e69a40a6d7ac470836bc" @@ -298,12 +298,12 @@ revision = "d7e4b2f3e31ea96bdcaba595507fde42baa156b9" [[projects]] - digest = "1:d3533ee568fc00a971617ec09dc0f0b3eddfb4adbc1275f8f6332553d67506b4" + digest = "1:30e2ca04703e6939567efd97f381f0ff5b11880cbb53dad256773bd8e2064e0a" name = "github.com/spf13/cobra" packages = ["."] pruneopts = "NUT" - revision = "f2b07da1e2c38d5f12845a4f607e2e1018cbb1f5" - version = "v0.0.5" + revision = "0da06874266c88228b8f14615396a1f6bfc90ed7" + version = "v0.0.6" [[projects]] digest = "1:d115708a27806831d1babbc6f28a7478ddf8e32a7095507c816e2515fb03a810" @@ -357,7 +357,7 @@ "ssh/terminal", ] pruneopts = "NUT" - revision = "1d94cc7ab1c630336ab82ccb9c9cda72a875c382" + revision = "2aa609cf4a9d7d1126360de73b55b6002f9e052a" [[projects]] branch = "master" @@ -365,18 +365,18 @@ name = "golang.org/x/net" packages = ["context"] pruneopts = "NUT" - revision = "16171245cfb220d5317888b716d69c1fb4e7992b" + revision = "0de0cce0169b09b364e001f108dc0399ea8630b3" [[projects]] branch = "master" - digest = "1:4e1eac2eb79906608c99a7c513b8a48a0b95ca5478b808eac95abed09bc7860d" + digest = "1:5f86e3e3284436db57ab1c70ff6c0e048095fd77661fc31bde8fba1e5e3a7346" name = "golang.org/x/sys" packages = [ "unix", "windows", ] pruneopts = "NUT" - revision = "12a6c2dcc1e4cb348b57847c73987099e261714b" + revision = "d5e6a3e2c0ae16fc7480523ebcb7fd4dd3215489" [solve-meta] analyzer-name = "dep" diff --git a/vendor/github.com/SkycoinProject/skycoin/src/wallet/wallet.go b/vendor/github.com/SkycoinProject/skycoin/src/wallet/wallet.go index 9546b9be..b61148eb 100644 --- a/vendor/github.com/SkycoinProject/skycoin/src/wallet/wallet.go +++ b/vendor/github.com/SkycoinProject/skycoin/src/wallet/wallet.go @@ -628,16 +628,16 @@ func Load(filename string) (Wallet, error) { var err error switch m.Meta.Type { case WalletTypeDeterministic: - logger.WithField("filename", filename).Info("LoadReadableDeterministicWallet") + //logger.WithField("filename", filename).Info("LoadReadableDeterministicWallet") rw, err = LoadReadableDeterministicWallet(filename) case WalletTypeCollection: - logger.WithField("filename", filename).Info("LoadReadableCollectionWallet") + //logger.WithField("filename", filename).Info("LoadReadableCollectionWallet") rw, err = LoadReadableCollectionWallet(filename) case WalletTypeBip44: - logger.WithField("filename", filename).Info("LoadReadableBip44Wallet") + //logger.WithField("filename", filename).Info("LoadReadableBip44Wallet") rw, err = LoadReadableBip44Wallet(filename) case WalletTypeXPub: - logger.WithField("filename", filename).Info("LoadReadableXPubWallet") + //logger.WithField("filename", filename).Info("LoadReadableXPubWallet") rw, err = LoadReadableXPubWallet(filename) default: err := errors.New("unhandled wallet type") diff --git a/vendor/github.com/fibercrypto/skywallet-go/src/cli/firmware_update.go b/vendor/github.com/fibercrypto/skywallet-go/src/cli/firmware_update.go index a09c822a..d692d979 100644 --- a/vendor/github.com/fibercrypto/skywallet-go/src/cli/firmware_update.go +++ b/vendor/github.com/fibercrypto/skywallet-go/src/cli/firmware_update.go @@ -3,6 +3,8 @@ package cli import ( "crypto/sha256" "fmt" + "github.com/fibercrypto/skywallet-go/src/skywallet" + messages "github.com/fibercrypto/skywallet-protob/go" "io/ioutil" gcli "github.com/urfave/cli" @@ -29,11 +31,12 @@ func firmwareUpdate() gcli.Command { panic(err) } fmt.Printf("Hash: %x\n", sha256.Sum256(firmware[0x100:])) - sq, err := createDevice(c.String("deviceType")) + sq, err := createDevice(skywallet.DeviceTypeUSB.String()) if err != nil { return } - err = sq.FirmwareUpload(firmware, sha256.Sum256(firmware[0x100:])) + msg, err := sq.UploadFirmware(firmware, sha256.Sum256(firmware[0x100:])) + handleFinalResponse(msg, err, "unable to update firmware", messages.MessageType_MessageType_Success) if err != nil { log.Error(err) return diff --git a/vendor/github.com/fibercrypto/skywallet-go/src/cli/utils.go b/vendor/github.com/fibercrypto/skywallet-go/src/cli/utils.go index e89602a4..33dd37ec 100644 --- a/vendor/github.com/fibercrypto/skywallet-go/src/cli/utils.go +++ b/vendor/github.com/fibercrypto/skywallet-go/src/cli/utils.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/fibercrypto/fibercryptowallet/src/util/logging" "github.com/sirupsen/logrus" "github.com/fibercrypto/skywallet-go/src/integration/proxy" "github.com/fibercrypto/skywallet-go/src/skywallet" @@ -41,10 +42,19 @@ func createDevice(devType string) (skywallet.Devicer, error) { return nil, err } } - return proxy.NewSequencer(device, false, func() string{ - var line string - fmt.Scanln(&line) - return line + return proxy.NewSequencer(device, false, func(kind skywallet.InputRequestKind, title, message string) (string, error) { + if kind != skywallet.RequestInformUserOnlyOk && kind != skywallet.RequestInformUserOnlyCancel && kind != skywallet.RequestInformUserOkAndCancel { + var line string + if kind == skywallet.RequestKindWord { + logging.NewMasterLogger().Printf("Word:") + fmt.Scan(&line) + } else { + logging.NewMasterLogger().Printf(title) + fmt.Scanln(&line) + } + return line, nil + } + return "", nil }), nil } diff --git a/vendor/github.com/fibercrypto/skywallet-go/src/integration/proxy/sequencer.go b/vendor/github.com/fibercrypto/skywallet-go/src/integration/proxy/sequencer.go index 2f522181..8939359c 100644 --- a/vendor/github.com/fibercrypto/skywallet-go/src/integration/proxy/sequencer.go +++ b/vendor/github.com/fibercrypto/skywallet-go/src/integration/proxy/sequencer.go @@ -2,7 +2,6 @@ package proxy //nolint goimports import ( "errors" - "fmt" "github.com/gogo/protobuf/proto" "io/ioutil" "sync" @@ -20,11 +19,48 @@ type Sequencer struct { log *logging.MasterLogger logCli *logging.MasterLogger dev skywallet.Devicer - scan func()string + scan func(requestKind skywallet.InputRequestKind, title, message string) (string, error) +} + +// ActionCancelableFrom is used for masking options, for example: +// 00000000 ActionConfirmNone +// 00000001 ActionConfirmOkFromDevButton +// 00000010 ActionConfirmCancelFromDevButton +type ActionConfirmFrom uint8 +var ActionConfirmNone ActionConfirmFrom = 0x0 +var ActionConfirmOkFromDevButton ActionConfirmFrom = 0x1 +var ActionConfirmCancelFromDevButton ActionConfirmFrom = 0x2 +var ActionConfirmOkAndCancelFromDevButton ActionConfirmFrom = 0x4 +var ActionConfirmOkFromWireProtocol ActionConfirmFrom = 0x8 +var ActionConfirmCancelFromWireProtocol ActionConfirmFrom = 0x16 +var ActionConfirmOkAndCancelFromWireProtocol ActionConfirmFrom = 0x32 +var ActionWordRequest ActionConfirmFrom = 0x64 + +// mixActionConfirmFrom create a merged value from all the masks +func mixActionConfirmFrom(masks ...ActionConfirmFrom) ActionConfirmFrom { + result := ActionConfirmNone + for _, mask := range masks { + result |= mask + } + if matchAcf(result, ActionConfirmOkFromDevButton) && matchAcf(result, ActionConfirmCancelFromDevButton) { + result |= ActionConfirmOkAndCancelFromDevButton + } + if matchAcf(result, ActionConfirmOkFromWireProtocol) && matchAcf(result, ActionConfirmCancelFromWireProtocol) { + result |= ActionConfirmOkAndCancelFromWireProtocol + } + if matchAcf(result, ActionWordRequest) { + result |= ActionConfirmOkAndCancelFromWireProtocol + } + return result +} + +// matchAcf verify if current have matching enabled by masking +func matchAcf(current, matching ActionConfirmFrom) bool { + return current & matching == matching } // NewSequencer create a new sequencer instance -func NewSequencer(dev skywallet.Devicer, cliSpeechless bool, scanner func()string) skywallet.Devicer { +func NewSequencer(dev skywallet.Devicer, cliSpeechless bool, scanner func(requestKind skywallet.InputRequestKind, title, message string) (string, error)) skywallet.Devicer { sq := &Sequencer{ log: logging.NewMasterLogger(), logCli: logging.NewMasterLogger(), @@ -37,7 +73,37 @@ func NewSequencer(dev skywallet.Devicer, cliSpeechless bool, scanner func()strin return sq } -func (sq *Sequencer) handleInputInteraction(msg wire.Message) (wire.Message, error) { +func (sq *Sequencer) handleInputReaderResponse(err error) error { + if err == skywallet.ErrUserCancelledWithDeviceButton { + sq.log.WithError(err).Warningln("action canceled") + return err + } + if err == skywallet.ErrUserCancelledFromInputReader { + if err := sq.handleInputReaderCanceled(err); err != nil { + sq.log.WithError(err).Infoln("invalid state") + return err + } + return err + } + return err +} + +func (sq *Sequencer) handleInputReaderCanceled(err error) error { + msg, err := sq.dev.Cancel() + if err != nil { + sq.log.WithError(err).Errorln("unable to cancel command") + return err + } + msgStr, err := skywallet.DecodeFailMsg(msg) + if err != nil { + sq.log.WithError(err).Errorln("unable to decode response") + return err + } + sq.log.Infoln("device response: " + msgStr) + return nil +} + +func (sq *Sequencer) handleInputInteraction(cf ActionConfirmFrom, msg wire.Message) (wire.Message, error) { var err error handleResponse := func(scopedMsg wire.Message, err error) (string, error) { if err != nil { @@ -71,27 +137,36 @@ func (sq *Sequencer) handleInputInteraction(msg wire.Message) (wire.Message, err sq.log.Errorln("pmr.Type should not be null") return wire.Message{}, errors.New("unexpected null object") } - switch *pmr.Type { - case messages.PinMatrixRequestType_PinMatrixRequestType_Current: - sq.log.Infoln("enter current pin:") - case messages.PinMatrixRequestType_PinMatrixRequestType_NewFirst: - sq.log.Infoln("enter new pin:") - case messages.PinMatrixRequestType_PinMatrixRequestType_NewSecond: - sq.log.Infoln("confirm new pin:") - default: - errStr := "unexpected PinMatrixRequestType" - sq.log.WithField("type", *pmr.Type).Errorln(errStr) - return wire.Message{}, errors.New(errStr) + str4PinType, err := func(t messages.PinMatrixRequestType) (string, error) { + switch t { + case messages.PinMatrixRequestType_PinMatrixRequestType_Current: + return "enter current pin:", nil + case messages.PinMatrixRequestType_PinMatrixRequestType_NewFirst: + return "enter new pin:", nil + case messages.PinMatrixRequestType_PinMatrixRequestType_NewSecond: + return "confirm new pin:", nil + default: + return "", errors.New("unexpected PinMatrixRequestType") + } + }(*pmr.Type) + if err != nil { + sq.log.WithField("type", *pmr.Type).Errorln(err.Error()) + return wire.Message{}, err + } + pinEnc, err := sq.scan(skywallet.RequestKindPinMatrix, str4PinType, "") + if err = sq.handleInputReaderResponse(err); err != nil { + return wire.Message{}, err } - pinEnc := sq.scan() if msg, err = sq.dev.PinMatrixAck(pinEnc); err != nil { sq.log.WithError(err).Errorln("pin matrixAck ack: sending message failed") return wire.Message{}, err } - return sq.handleInputInteraction(msg) + return sq.handleInputInteraction(cf, msg) } else if msg.Kind == uint16(messages.MessageType_MessageType_PassphraseRequest) { - sq.log.Println("PassphraseRequest request:") - passphrase := sq.scan() + passphrase, err := sq.scan(skywallet.RequestKindPassphrase, "PassphraseRequest request:", "passprase TODO chnageit") + if err = sq.handleInputReaderResponse(err); err != nil { + return wire.Message{}, err + } msg, err = sq.dev.PassphraseAck(passphrase) msgStr, err := handleResponse(msg, err) if err != nil { @@ -100,13 +175,38 @@ func (sq *Sequencer) handleInputInteraction(msg wire.Message) (wire.Message, err } sq.logCli.Infof("PassphraseAck response:", msgStr) } else if msg.Kind == uint16(messages.MessageType_MessageType_WordRequest) { - fmt.Printf("Word: ") - word := sq.scan() + cancelableFrom2InputKind := func(cf ActionConfirmFrom) skywallet.InputRequestKind { + return skywallet.RequestKindWord + } + word, err := sq.scan( + cancelableFrom2InputKind(cf), + "Word required from device", + "Look at the device screen and follow the instructions for the required word.") + if err = sq.handleInputReaderResponse(err); err != nil { + return wire.Message{}, err + } if msg, err = sq.dev.WordAck(word); err != nil { sq.log.WithError(err).Errorln("word ack: sending message failed") return msg, err } } else if msg.Kind == uint16(messages.MessageType_MessageType_ButtonRequest) { + cancelableFrom2InputKind := func(cf ActionConfirmFrom) skywallet.InputRequestKind { + if matchAcf(cf, ActionConfirmOkAndCancelFromWireProtocol) { + return skywallet.RequestInformUserOkAndCancel + } + if matchAcf(cf, ActionConfirmCancelFromWireProtocol) { + return skywallet.RequestInformUserOnlyCancel + } + return skywallet.RequestInformUserOnlyOk + } + _, err := sq.scan( + cancelableFrom2InputKind(cf), + "Verify the information in the device", + "Be careful on checking all the details in the device screen, if all this" + + " is right, then take the required action to continue...") + if err = sq.handleInputReaderResponse(err); err != nil { + return wire.Message{}, err + } if msg, err = sq.dev.ButtonAck(); err != nil { sq.log.WithError(err).Errorln("handling message failed") return msg, err @@ -115,15 +215,17 @@ func (sq *Sequencer) handleInputInteraction(msg wire.Message) (wire.Message, err return msg, nil } -func (sq *Sequencer) handleFirstCommandResponse(successMsgKind messages.MessageType, commandName string, err error, msg wire.Message) (wire.Message, error) { +func (sq *Sequencer) handleFirstCommandResponse(cf ActionConfirmFrom, successMsgKind messages.MessageType, commandName string, err error, msg wire.Message) (wire.Message, error) { if err != nil { sq.log.WithError(err).Errorln(commandName + ": sending message failed") return wire.Message{}, err } for msg.Kind != uint16(successMsgKind) && msg.Kind != uint16(messages.MessageType_MessageType_Failure) { if msg.Kind == uint16(messages.MessageType_MessageType_PinMatrixRequest) || msg.Kind == uint16(messages.MessageType_MessageType_PassphraseRequest) || msg.Kind == uint16(messages.MessageType_MessageType_ButtonRequest) { - if msg, err = sq.handleInputInteraction(msg); err != nil { - sq.log.WithError(err).Errorln("error handling interaction") + if msg, err = sq.handleInputInteraction(cf, msg); err != nil { + if err != skywallet.ErrUserCancelledFromInputReader && err != skywallet.ErrUserCancelledWithDeviceButton { + sq.log.WithError(err).Errorln("error handling interaction") + } return wire.Message{}, err } } @@ -140,9 +242,13 @@ func (sq *Sequencer) handleFinalResponse(msg wire.Message, expectedMsgKind mess sq.log.WithError(err).Errorln("unable to decode response") return wire.Message{}, err } - sq.log.Errorln(failMsg) + sq.log.WithField("msg", failMsg).Errorln("error handling final response") return wire.Message{}, errors.New(failMsg) } + if msg.Kind == uint16(messages.MessageType_MessageType_Cancel) { + sq.log.Warningln("action canceled") + return wire.Message{}, skywallet.ErrUserCancelledWithDeviceButton + } sq.log.Errorln("unexpected message") return wire.Message{}, errors.New("unexpected message") } @@ -153,7 +259,8 @@ func (sq *Sequencer) AddressGen(addressN, startIndex uint32, confirmAddress bool sq.Lock() defer sq.Unlock() msg, err := sq.dev.AddressGen(uint32(addressN), uint32(startIndex), confirmAddress, walletType) - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_ResponseSkycoinAddress, "address gen", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmNone) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_ResponseSkycoinAddress, "address gen", err, msg) if err != nil { return wire.Message{}, err } @@ -166,7 +273,8 @@ func (sq *Sequencer) ApplySettings(usePassphrase *bool, label string, language s sq.Lock() defer sq.Unlock() msg, err := sq.dev.ApplySettings(usePassphrase, label, language) - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_Success, "apply settings", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmNone) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_Success, "apply settings", err, msg) if err != nil { return wire.Message{}, err } @@ -179,7 +287,8 @@ func (sq *Sequencer) Backup() (wire.Message, error) { sq.Lock() defer sq.Unlock() msg, err := sq.dev.Backup() - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_Success, "backup", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmOkFromDevButton, ActionConfirmCancelFromDevButton, ActionConfirmCancelFromWireProtocol) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_Success, "backup", err, msg) if err != nil { return wire.Message{}, err } @@ -188,8 +297,6 @@ func (sq *Sequencer) Backup() (wire.Message, error) { // Cancel forward the call to Device func (sq *Sequencer) Cancel() (wire.Message, error) { - sq.Lock() - defer sq.Unlock() return sq.dev.Cancel() } @@ -206,7 +313,8 @@ func (sq *Sequencer) ChangePin(removePin *bool) (wire.Message, error) { sq.Lock() defer sq.Unlock() msg, err := sq.dev.ChangePin(removePin) - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_Success, "change pin", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmOkAndCancelFromWireProtocol, ActionConfirmOkAndCancelFromDevButton) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_Success, "change pin", err, msg) if err != nil { return wire.Message{}, err } @@ -227,11 +335,33 @@ func (sq *Sequencer) Available() bool { return sq.dev.Available() } -// FirmwareUpload forward the call to Device -func (sq *Sequencer) FirmwareUpload(payload []byte, hash [32]byte) error { +// EraseFirmware erases length bytes in the firmware section in the device +func (sq *Sequencer) EraseFirmware(length uint32) (wire.Message, error) { + msg, err := sq.dev.EraseFirmware(length) + confirm := mixActionConfirmFrom(ActionConfirmOkAndCancelFromDevButton, ActionConfirmOkFromWireProtocol) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_Success, "erase firmware", err, msg) + if err != nil { + return wire.Message{}, err + } + return sq.handleFinalResponse(msg, messages.MessageType_MessageType_Success) +} + +// UploadFirmware upload a new firmware to the device +// erase the old one +func (sq *Sequencer) UploadFirmware(payload []byte, hash [32]byte) (wire.Message, error) { sq.Lock() defer sq.Unlock() - return sq.dev.FirmwareUpload(payload, hash) + sq.logCli.Infoln("Length of firmware %d", len(payload)) + if msg, err := sq.EraseFirmware(uint32(len(payload))); err != nil { + return msg, err + } + msg, err := sq.dev.UploadFirmware(payload, hash) + confirm := mixActionConfirmFrom(ActionConfirmOkAndCancelFromDevButton, ActionConfirmOkFromWireProtocol) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_Success, "upload new firmware", err, msg) + if err != nil { + return wire.Message{}, err + } + return sq.handleFinalResponse(msg, messages.MessageType_MessageType_Success) } // GetFeatures forward the call to Device and handle all the consecutive command as an @@ -240,7 +370,8 @@ func (sq *Sequencer) GetFeatures() (wire.Message, error) { sq.Lock() defer sq.Unlock() msg, err := sq.dev.GetFeatures() - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_Features, "features", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmNone) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_Features, "features", err, msg) if err != nil { return wire.Message{}, err } @@ -253,7 +384,8 @@ func (sq *Sequencer) GenerateMnemonic(wordCount uint32, usePassphrase bool) (wir sq.Lock() defer sq.Unlock() msg, err := sq.dev.GenerateMnemonic(wordCount, usePassphrase) - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_Success, "generate mnemonic", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmNone) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_Success, "generate mnemonic", err, msg) if err != nil { return wire.Message{}, err } @@ -276,10 +408,13 @@ func (sq *Sequencer) Recovery(wordCount uint32, usePassphrase *bool, dryRun bool return wire.Message{}, err } } + confirm := mixActionConfirmFrom(ActionWordRequest, ActionConfirmOkAndCancelFromWireProtocol) for msg.Kind != uint16(messages.MessageType_MessageType_Success) && msg.Kind != uint16(messages.MessageType_MessageType_Failure) { if msg.Kind == uint16(messages.MessageType_MessageType_PinMatrixRequest) || msg.Kind == uint16(messages.MessageType_MessageType_PassphraseRequest) || msg.Kind == uint16(messages.MessageType_MessageType_ButtonRequest) || msg.Kind == uint16(messages.MessageType_MessageType_WordRequest) { - if msg, err = sq.handleInputInteraction(msg); err != nil { - sq.log.WithError(err).Errorln("error handling interaction") + if msg, err = sq.handleInputInteraction(confirm, msg); err != nil { + if err != skywallet.ErrUserCancelledFromInputReader && err != skywallet.ErrUserCancelledWithDeviceButton { + sq.log.WithError(err).Errorln("error handling interaction") + } return wire.Message{}, err } } @@ -293,7 +428,8 @@ func (sq *Sequencer) SetMnemonic(mnemonic string) (wire.Message, error) { sq.Lock() defer sq.Unlock() msg, err := sq.dev.SetMnemonic(mnemonic) - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_Success, "set mnemonic", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmNone) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_Success, "set mnemonic", err, msg) if err != nil { return wire.Message{}, err } @@ -315,7 +451,8 @@ func (sq *Sequencer) TransactionSign(inputs []*messages.SkycoinTransactionInput, // return //} msg, err := sq.dev.TransactionSign(inputs, outputs, walletType) - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_ResponseTransactionSign, "sign transaction", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmNone) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_ResponseTransactionSign, "sign transaction", err, msg) if err != nil { return wire.Message{}, err } @@ -328,7 +465,8 @@ func (sq *Sequencer) SignMessage(addressN, addressIndex int, message string, wal sq.Lock() defer sq.Unlock() msg, err := sq.dev.SignMessage(1, addressIndex, message, walletType) - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_ResponseSkycoinSignMessage, "sign message", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmNone) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_ResponseSkycoinSignMessage, "sign message", err, msg) if err != nil { return wire.Message{}, err } @@ -341,7 +479,8 @@ func (sq *Sequencer) Wipe() (wire.Message, error) { sq.Lock() defer sq.Unlock() msg, err := sq.dev.Wipe() - msg, err = sq.handleFirstCommandResponse(messages.MessageType_MessageType_Success, "wipe", err, msg) + confirm := mixActionConfirmFrom(ActionConfirmNone) + msg, err = sq.handleFirstCommandResponse(confirm, messages.MessageType_MessageType_Success, "wipe", err, msg) if err != nil { return wire.Message{}, err } diff --git a/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/helper.go b/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/helper.go index c2347a6f..e56cff51 100644 --- a/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/helper.go +++ b/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/helper.go @@ -102,7 +102,7 @@ func NewDriver(deviceType DeviceType, emulatorAddress ...string) (*Driver, error if len(emulatorAddress) == 0 { emulatorAddress = []string{"127.0.0.1"} } else if len(emulatorAddress) > 1 { - return nil, ErrInvalidArgCountForEmulatorIPAddress + return nil, ErrInvalidArgCountForEmulatorIpAddress } udpBus, err := usb.InitUDP([]int{EmulatorPort}, emulatorAddress[0]) if err != nil { diff --git a/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/messages.go b/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/messages.go index e5dfbdb0..cbae55dd 100644 --- a/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/messages.go +++ b/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/messages.go @@ -201,9 +201,9 @@ func MessageConnected() ([][64]byte, error) { } // MessageFirmwareErase prepare MessageFirmwareErase request -func MessageFirmwareErase(payload []byte) ([][64]byte, error) { +func MessageFirmwareErase(length uint32) ([][64]byte, error) { deviceFirmwareErase := &messages.FirmwareErase{ - Length: proto.Uint32(uint32(len(payload))), + Length: proto.Uint32(length), } erasedata, err := proto.Marshal(deviceFirmwareErase) diff --git a/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/skywallet.go b/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/skywallet.go index e36ba8f5..862f7db6 100644 --- a/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/skywallet.go +++ b/vendor/github.com/fibercrypto/skywallet-go/src/skywallet/skywallet.go @@ -46,12 +46,16 @@ var ( ErrDeviceTypeEmulator = errors.New("device type cannot be emulator") // ErrInvalidWordCount is returned if word count is not valid mnemonic word length ErrInvalidWordCount = errors.New("word count must be 12 or 24") - // ErrInvalidArgCountForEmulatorIPAddress emulator ip address is the only one expected argument for emulatorAddress - ErrInvalidArgCountForEmulatorIPAddress = errors.New("emulator ip address is the only one expected argument for emulatorAddress") + // ErrInvalidArgCountForEmulatorIpAddress emulator ip address is the only one expected argument for emulatorAddress + ErrInvalidArgCountForEmulatorIpAddress = errors.New("emulator ip address is the only one expected argument for emulatorAddress") // ErrNoDeviceConnected is returned if no device is connected to the system ErrNoDeviceConnected = errors.New("no device connected") // ErrInvalidWalletType a valid wallet type should be specified ErrInvalidWalletType = errors.New("invalid wallet type, options are: " + WalletTypeDeterministic + " or " + WalletTypeBip44) + // ErrUserCancelledWithDeviceButton the requested operation has been cancelled from the device input button + ErrUserCancelledWithDeviceButton = errors.New("the requested operation has been cancelled from the device input button") + // ErrUserCancelledFromInputReader the requested operation has been cancelled from the device input button + ErrUserCancelledFromInputReader = errors.New("the requested operation has been cancelled from the user interaction") ) const ( @@ -66,6 +70,16 @@ const ( firstHardenedChild = uint32(0x80000000) ) +type InputRequestKind uint32 +const ( + RequestKindPinMatrix InputRequestKind = iota + RequestKindPassphrase + RequestKindWord + RequestInformUserOnlyOk + RequestInformUserOnlyCancel + RequestInformUserOkAndCancel +) + //go:generate mockery -name Devicer -case underscore -inpkg -testonly // Devicer provides api for the hw wallet functions @@ -78,7 +92,8 @@ type Devicer interface { ChangePin(removePin *bool) (wire.Message, error) Connected() bool Available() bool - FirmwareUpload(payload []byte, hash [32]byte) error + EraseFirmware(length uint32) (wire.Message, error) + UploadFirmware(payload []byte, hash [32]byte) (wire.Message, error) GetFeatures() (wire.Message, error) GenerateMnemonic(wordCount uint32, usePassphrase bool) (wire.Message, error) Recovery(wordCount uint32, usePassphrase *bool, dryRun bool) (wire.Message, error) @@ -581,91 +596,37 @@ func (d *Device) Available() bool { return true } -// FirmwareUpload Updates device's firmware -func (d *Device) FirmwareUpload(payload []byte, hash [32]byte) error { +func (d *Device) EraseFirmware(length uint32) (wire.Message, error) { if d.Driver.DeviceType() != DeviceTypeUSB { - return ErrDeviceTypeEmulator + return wire.Message{}, ErrDeviceTypeEmulator } - if err := d.Connect(); err != nil { - return err + return wire.Message{}, err } defer d.Disconnect() - if err := Initialize(d.dev); err != nil { - return err - } - - log.Printf("Length of firmware %d", uint32(len(payload))) - - chunks, err := MessageFirmwareErase(payload) - if err != nil { - return err + return wire.Message{}, err } - erasemsg, err := d.Driver.SendToDevice(d.dev, chunks) + eraseFirmwareChunks, err := MessageFirmwareErase(length) if err != nil { - return err + return wire.Message{}, err } + return d.Driver.SendToDevice(d.dev, eraseFirmwareChunks) +} - switch erasemsg.Kind { - case uint16(messages.MessageType_MessageType_Success): - log.Printf("Success %d! FirmwareErase %s\n", erasemsg.Kind, erasemsg.Data) - case uint16(messages.MessageType_MessageType_Failure): - msg, err := DecodeFailMsg(erasemsg) - if err != nil { - return err - } - - return errors.New(msg) - default: - return fmt.Errorf("received unexpected message type: %s", messages.MessageType(erasemsg.Kind)) +func (d *Device) UploadFirmware(payload []byte, hash [32]byte) (wire.Message, error) { + if d.Driver.DeviceType() != DeviceTypeUSB { + return wire.Message{}, ErrDeviceTypeEmulator } - - log.Printf("Hash: %x\n", hash) - - chunks, err = MessageFirmwareUpload(payload, hash) - if err != nil { - return err + if err := d.Connect(); err != nil { + return wire.Message{}, err } - uploadmsg, err := d.Driver.SendToDevice(d.dev, chunks) + defer d.Disconnect() + uploadFirmwareChunks, err := MessageFirmwareUpload(payload, hash) if err != nil { - return err - } - - switch uploadmsg.Kind { - case uint16(messages.MessageType_MessageType_ButtonRequest): - log.Println("Please confirm in the device if fingerprints match") - // Send ButtonAck - chunks, err = MessageButtonAck() - if err != nil { - return err - } - resp, err := d.Driver.SendToDevice(d.dev, chunks) - if err != nil { - return err - } - switch resp.Kind { - case uint16(messages.MessageType_MessageType_Success): - return nil - case uint16(messages.MessageType_MessageType_Failure): - var msgStr string - if msgStr, err = DecodeFailMsg(resp); err != nil { - return err - } - return errors.New(msgStr) - default: - return errors.New("unknown response") - } - case uint16(messages.MessageType_MessageType_Failure): - msg, err := DecodeFailMsg(erasemsg) - if err != nil { - return err - } - - return errors.New(msg) - default: - return fmt.Errorf("received unexpected message type: %s", messages.MessageType(erasemsg.Kind)) + return wire.Message{}, err } + return d.Driver.SendToDevice(d.dev, uploadFirmwareChunks) } // GetFeatures send Features message to the device diff --git a/vendor/github.com/spf13/cobra/bash_completions.go b/vendor/github.com/spf13/cobra/bash_completions.go index 57bb8e1b..1e0e25cf 100644 --- a/vendor/github.com/spf13/cobra/bash_completions.go +++ b/vendor/github.com/spf13/cobra/bash_completions.go @@ -61,6 +61,7 @@ __%[1]s_contains_word() __%[1]s_handle_reply() { __%[1]s_debug "${FUNCNAME[0]}" + local comp case $cur in -*) if [[ $(type -t compopt) = "builtin" ]]; then @@ -72,7 +73,9 @@ __%[1]s_handle_reply() else allflags=("${flags[*]} ${two_word_flags[*]}") fi - COMPREPLY=( $(compgen -W "${allflags[*]}" -- "$cur") ) + while IFS='' read -r comp; do + COMPREPLY+=("$comp") + done < <(compgen -W "${allflags[*]}" -- "$cur") if [[ $(type -t compopt) = "builtin" ]]; then [[ "${COMPREPLY[0]}" == *= ]] || compopt +o nospace fi @@ -122,10 +125,14 @@ __%[1]s_handle_reply() if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then completions+=("${must_have_one_flag[@]}") fi - COMPREPLY=( $(compgen -W "${completions[*]}" -- "$cur") ) + while IFS='' read -r comp; do + COMPREPLY+=("$comp") + done < <(compgen -W "${completions[*]}" -- "$cur") if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then - COMPREPLY=( $(compgen -W "${noun_aliases[*]}" -- "$cur") ) + while IFS='' read -r comp; do + COMPREPLY+=("$comp") + done < <(compgen -W "${noun_aliases[*]}" -- "$cur") fi if [[ ${#COMPREPLY[@]} -eq 0 ]]; then @@ -160,7 +167,7 @@ __%[1]s_handle_filename_extension_flag() __%[1]s_handle_subdirs_in_dir_flag() { local dir="$1" - pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 + pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return } __%[1]s_handle_flag() diff --git a/vendor/github.com/spf13/cobra/cobra.go b/vendor/github.com/spf13/cobra/cobra.go index 6505c070..d01becc8 100644 --- a/vendor/github.com/spf13/cobra/cobra.go +++ b/vendor/github.com/spf13/cobra/cobra.go @@ -52,7 +52,7 @@ var EnableCommandSorting = true // if the CLI is started from explorer.exe. // To disable the mousetrap, just set this variable to blank string (""). // Works only on Microsoft Windows. -var MousetrapHelpText string = `This is a command line tool. +var MousetrapHelpText = `This is a command line tool. You need to open cmd.exe and run it from there. ` @@ -61,7 +61,7 @@ You need to open cmd.exe and run it from there. // if the CLI is started from explorer.exe. Set to 0 to wait for the return key to be pressed. // To disable the mousetrap, just set MousetrapHelpText to blank string (""). // Works only on Microsoft Windows. -var MousetrapDisplayDuration time.Duration = 5 * time.Second +var MousetrapDisplayDuration = 5 * time.Second // AddTemplateFunc adds a template function that's available to Usage and Help // template generation. diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go index c7e89830..fb60ebd9 100644 --- a/vendor/github.com/spf13/cobra/command.go +++ b/vendor/github.com/spf13/cobra/command.go @@ -17,6 +17,8 @@ package cobra import ( "bytes" + "context" + "errors" "fmt" "io" "os" @@ -27,6 +29,8 @@ import ( flag "github.com/spf13/pflag" ) +var ErrSubCommandRequired = errors.New("subcommand is required") + // FParseErrWhitelist configures Flag parse errors to be ignored type FParseErrWhitelist flag.ParseErrorsWhitelist @@ -140,9 +144,11 @@ type Command struct { // TraverseChildren parses flags on all parents before executing child command. TraverseChildren bool - //FParseErrWhitelist flag parse errors to be ignored + // FParseErrWhitelist flag parse errors to be ignored FParseErrWhitelist FParseErrWhitelist + ctx context.Context + // commands is the list of commands supported by this program. commands []*Command // parent is a parent command for this command. @@ -202,6 +208,12 @@ type Command struct { errWriter io.Writer } +// Context returns underlying command context. If command wasn't +// executed with ExecuteContext Context returns Background context. +func (c *Command) Context() context.Context { + return c.ctx +} + // SetArgs sets arguments for the command. It is set to os.Args[1:] by default, if desired, can be overridden // particularly useful when testing. func (c *Command) SetArgs(a []string) { @@ -228,7 +240,7 @@ func (c *Command) SetErr(newErr io.Writer) { c.errWriter = newErr } -// SetOut sets the source for input data +// SetIn sets the source for input data // If newIn is nil, os.Stdin is used. func (c *Command) SetIn(newIn io.Reader) { c.inReader = newIn @@ -297,7 +309,7 @@ func (c *Command) ErrOrStderr() io.Writer { return c.getErr(os.Stderr) } -// ErrOrStderr returns output to stderr +// InOrStdin returns output to stderr func (c *Command) InOrStdin() io.Reader { return c.getIn(os.Stdin) } @@ -369,6 +381,8 @@ func (c *Command) HelpFunc() func(*Command, []string) { } return func(c *Command, a []string) { c.mergePersistentFlags() + // The help should be sent to stdout + // See https://github.com/spf13/cobra/issues/1002 err := tmpl(c.OutOrStdout(), c.HelpTemplate(), c) if err != nil { c.Println(err) @@ -786,7 +800,7 @@ func (c *Command) execute(a []string) (err error) { } if !c.Runnable() { - return flag.ErrHelp + return ErrSubCommandRequired } c.preRun() @@ -857,6 +871,13 @@ func (c *Command) preRun() { } } +// ExecuteContext is the same as Execute(), but sets the ctx on the command. +// Retrieve ctx by calling cmd.Context() inside your *Run lifecycle functions. +func (c *Command) ExecuteContext(ctx context.Context) error { + c.ctx = ctx + return c.Execute() +} + // Execute uses the args (os.Args[1:] by default) // and run through the command tree finding appropriate matches // for commands and then corresponding flags. @@ -867,6 +888,10 @@ func (c *Command) Execute() error { // ExecuteC executes the command. func (c *Command) ExecuteC() (cmd *Command, err error) { + if c.ctx == nil { + c.ctx = context.Background() + } + // Regardless of what command execute is called on, run on Root only if c.HasParent() { return c.Root().ExecuteC() @@ -911,6 +936,12 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { cmd.commandCalledAs.name = cmd.Name() } + // We have to pass global context to children command + // if context is present on the parent command. + if cmd.ctx == nil { + cmd.ctx = c.ctx + } + err = cmd.execute(flags) if err != nil { // Always show help if requested, even if SilenceErrors is in @@ -920,6 +951,14 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { return cmd, nil } + // If command wasn't runnable, show full help, but do return the error. + // This will result in apps by default returning a non-success exit code, but also gives them the option to + // handle specially. + if err == ErrSubCommandRequired { + cmd.HelpFunc()(cmd, args) + return cmd, err + } + // If root command has SilentErrors flagged, // all subcommands should respect it if !cmd.SilenceErrors && !c.SilenceErrors { @@ -1547,7 +1586,7 @@ func (c *Command) ParseFlags(args []string) error { beforeErrorBufLen := c.flagErrorBuf.Len() c.mergePersistentFlags() - //do it here after merging all flags and just before parse + // do it here after merging all flags and just before parse c.Flags().ParseErrorsWhitelist = flag.ParseErrorsWhitelist(c.FParseErrWhitelist) err := c.Flags().Parse(args) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 0efe45ae..95f7a159 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -1555,8 +1555,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Acct(path string) (err error) //sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) //sys Adjtimex(buf *Timex) (state int, err error) -//sys Capget(hdr *CapUserHeader, data *CapUserData) (err error) -//sys Capset(hdr *CapUserHeader, data *CapUserData) (err error) +//sysnb Capget(hdr *CapUserHeader, data *CapUserData) (err error) +//sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error) //sys Chdir(path string) (err error) //sys Chroot(path string) (err error) //sys ClockGetres(clockid int32, res *Timespec) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go index 85a872d6..af77e6e2 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -216,6 +216,10 @@ func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } +func InotifyInit() (fd int, err error) { + return InotifyInit1(0) +} + //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) func Poll(fds []PollFd, timeout int) (n int, err error) { @@ -224,8 +228,3 @@ func Poll(fds []PollFd, timeout int) (n int, err error) { } return poll(&fds[0], len(fds), timeout) } - -func InotifyInit() (fd int, err error) { - return InotifyInit1(0) -} - diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index e65b02f2..72066f80 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -1938,6 +1938,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index b26659e6..ea6bb88d 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -1939,6 +1939,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index c69ddf6f..76b3d3b0 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -1945,6 +1945,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index 4a14044f..1405ea57 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -1931,6 +1931,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index 1bbc52c7..a6cd090e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -1938,6 +1938,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 2b339ef5..9152b5f1 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -1938,6 +1938,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index 1c697f34..e1aa146b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -1938,6 +1938,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index 264898ce..d23b3a94 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -1938,6 +1938,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 7afa93ae..ab6134eb 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -1997,6 +1997,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index 7e684404..dc8cafff 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -1997,6 +1997,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index 30afa576..5d964445 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -1926,6 +1926,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 5dc08e9e..7d64d6e7 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -1999,6 +1999,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index cf1c386a..084d55be 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -1992,6 +1992,21 @@ const ( RTF_UP = 0x1 RTF_WINDOW = 0x80 RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 RTM_BASE = 0x10 RTM_DELACTION = 0x31 RTM_DELADDR = 0x15 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go index 0e68c146..a536d9a6 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go index c038e52e..fb5db364 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go index 333683d9..591d120c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go index 838bbdba..afd54470 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go index 7da49ae2..054b2189 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go index f22f83fd..bbd48bf2 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go index 307c430d..9c6bee91 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go index 0997b6ed..676088fa 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go index a601e725..7ee0b80d 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go index 6e4cb194..8eaa7c9e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go index e690f193..b8f212bf 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go index f4cd0860..a7191cdb 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go index 2447f2a7..9abdbde7 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -439,7 +439,7 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } @@ -449,7 +449,7 @@ func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index d8089584..5d835d08 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int32 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index 88c76390..55a9902a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int64 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index 0c0f24c7..91cbbb74 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int32 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index 6065d2d5..ea231fa9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int64 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index 29d4408d..a577a5ae 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int32 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index 9cac9ff8..efbf921d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int64 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index dbc21cf3..4d961479 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int64 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index a2662370..e7127c23 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int32 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index e93b73cd..515c1d7d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int64 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index 1f431b6f..82a35862 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int64 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index 81a5dc14..826523f9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int64 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index ae765d47..a715285b 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -55,6 +55,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int64 type Tms struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index 63685ca8..1755c0c2 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -56,6 +56,16 @@ type Timex struct { _ [44]byte } +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + type Time_t int64 type Tms struct {