mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-21 18:22:00 -08:00
Update vendor (#1498)
This commit is contained in:
parent
766f35554e
commit
4091b6f6b4
18
go.mod
18
go.mod
@ -5,13 +5,17 @@ require (
|
|||||||
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f
|
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f
|
||||||
github.com/Jeffail/gabs v1.4.0 // indirect
|
github.com/Jeffail/gabs v1.4.0 // indirect
|
||||||
github.com/Philipp15b/go-steam v1.0.1-0.20200727090957-6ae9b3c0a560
|
github.com/Philipp15b/go-steam v1.0.1-0.20200727090957-6ae9b3c0a560
|
||||||
github.com/Rhymen/go-whatsapp v0.1.2-0.20210126174449-3c094ebae0ce
|
github.com/Rhymen/go-whatsapp v0.1.2-0.20210407153411-c58e164e05b8
|
||||||
github.com/SevereCloud/vksdk/v2 v2.9.1
|
github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d // indirect
|
||||||
|
github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d // indirect
|
||||||
|
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d // indirect
|
||||||
|
github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d // indirect
|
||||||
|
github.com/SevereCloud/vksdk/v2 v2.9.2
|
||||||
github.com/d5/tengo/v2 v2.7.0
|
github.com/d5/tengo/v2 v2.7.0
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/fsnotify/fsnotify v1.4.9
|
github.com/fsnotify/fsnotify v1.4.9
|
||||||
github.com/go-telegram-bot-api/telegram-bot-api v1.0.1-0.20200524105306-7434b0456e81
|
github.com/go-telegram-bot-api/telegram-bot-api v1.0.1-0.20200524105306-7434b0456e81
|
||||||
github.com/gomarkdown/markdown v0.0.0-20210408062403-ad838ccf8cdd
|
github.com/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7
|
||||||
github.com/google/gops v0.3.18
|
github.com/google/gops v0.3.18
|
||||||
github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4 // indirect
|
github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4 // indirect
|
||||||
github.com/gorilla/schema v1.2.0
|
github.com/gorilla/schema v1.2.0
|
||||||
@ -20,7 +24,7 @@ require (
|
|||||||
github.com/jpillora/backoff v1.0.0
|
github.com/jpillora/backoff v1.0.0
|
||||||
github.com/keybase/go-keybase-chat-bot v0.0.0-20200505163032-5cacf52379da
|
github.com/keybase/go-keybase-chat-bot v0.0.0-20200505163032-5cacf52379da
|
||||||
github.com/kyokomi/emoji/v2 v2.2.8
|
github.com/kyokomi/emoji/v2 v2.2.8
|
||||||
github.com/labstack/echo/v4 v4.2.2
|
github.com/labstack/echo/v4 v4.3.0
|
||||||
github.com/lrstanley/girc v0.0.0-20190801035559-4fc93959e1a7
|
github.com/lrstanley/girc v0.0.0-20190801035559-4fc93959e1a7
|
||||||
github.com/matrix-org/gomatrix v0.0.0-20210324163249-be2af5ef2e16
|
github.com/matrix-org/gomatrix v0.0.0-20210324163249-be2af5ef2e16
|
||||||
github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20210403163225-761e8622445d
|
github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20210403163225-761e8622445d
|
||||||
@ -41,7 +45,7 @@ require (
|
|||||||
github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca
|
github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca
|
||||||
github.com/shazow/ssh-chat v1.10.1
|
github.com/shazow/ssh-chat v1.10.1
|
||||||
github.com/sirupsen/logrus v1.8.1
|
github.com/sirupsen/logrus v1.8.1
|
||||||
github.com/slack-go/slack v0.9.0
|
github.com/slack-go/slack v0.9.1
|
||||||
github.com/spf13/afero v1.3.4 // indirect
|
github.com/spf13/afero v1.3.4 // indirect
|
||||||
github.com/spf13/cast v1.3.1 // indirect
|
github.com/spf13/cast v1.3.1 // indirect
|
||||||
github.com/spf13/viper v1.7.1
|
github.com/spf13/viper v1.7.1
|
||||||
@ -51,8 +55,8 @@ require (
|
|||||||
github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect
|
github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect
|
||||||
github.com/yaegashi/msgraph.go v0.1.4
|
github.com/yaegashi/msgraph.go v0.1.4
|
||||||
github.com/zfjagann/golang-ring v0.0.0-20210116075443-7c86fdb43134
|
github.com/zfjagann/golang-ring v0.0.0-20210116075443-7c86fdb43134
|
||||||
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb
|
golang.org/x/image v0.0.0-20210504121937-7319ad40d33e
|
||||||
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c
|
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c
|
||||||
gomod.garykim.dev/nc-talk v0.1.7
|
gomod.garykim.dev/nc-talk v0.1.7
|
||||||
gopkg.in/olahol/melody.v1 v1.0.0-20170518105555-d52139073376
|
gopkg.in/olahol/melody.v1 v1.0.0-20170518105555-d52139073376
|
||||||
layeh.com/gumble v0.0.0-20200818122324-146f9205029b
|
layeh.com/gumble v0.0.0-20200818122324-146f9205029b
|
||||||
|
36
go.sum
36
go.sum
@ -79,6 +79,8 @@ github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBK
|
|||||||
github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA=
|
github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA=
|
||||||
github.com/Rhymen/go-whatsapp v0.1.2-0.20210126174449-3c094ebae0ce h1:qitALaMtz6i05smexphqLty1gGc7Viwhn8bdSRmp4UM=
|
github.com/Rhymen/go-whatsapp v0.1.2-0.20210126174449-3c094ebae0ce h1:qitALaMtz6i05smexphqLty1gGc7Viwhn8bdSRmp4UM=
|
||||||
github.com/Rhymen/go-whatsapp v0.1.2-0.20210126174449-3c094ebae0ce/go.mod h1:o7jjkvKnigfu432dMbQ/w4PH0Yp5u4Y6ysCNjUlcYCk=
|
github.com/Rhymen/go-whatsapp v0.1.2-0.20210126174449-3c094ebae0ce/go.mod h1:o7jjkvKnigfu432dMbQ/w4PH0Yp5u4Y6ysCNjUlcYCk=
|
||||||
|
github.com/Rhymen/go-whatsapp v0.1.2-0.20210407153411-c58e164e05b8 h1:jqbWlca7CrvFdc3NygtKVCILnssbRkE7J9gRmY+Olc4=
|
||||||
|
github.com/Rhymen/go-whatsapp v0.1.2-0.20210407153411-c58e164e05b8/go.mod h1:DNSFRLFDFIqm2+0aJzSOVfn25020vldM4SRqz6YtLgI=
|
||||||
github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:zgCiQtBtZ4P4gFWvwl9aashsdwOcbb/EHOGRmSzM8ME=
|
github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:zgCiQtBtZ4P4gFWvwl9aashsdwOcbb/EHOGRmSzM8ME=
|
||||||
github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:5sCUSpG616ZoSJhlt9iBNI/KXBqrVLcNUJqg7J9+8pU=
|
github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:5sCUSpG616ZoSJhlt9iBNI/KXBqrVLcNUJqg7J9+8pU=
|
||||||
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:RdiyhanVEGXTam+mZ3k6Y3VDCCvXYCwReOoxGozqhHw=
|
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:RdiyhanVEGXTam+mZ3k6Y3VDCCvXYCwReOoxGozqhHw=
|
||||||
@ -87,9 +89,12 @@ github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06
|
|||||||
github.com/RoaringBitmap/roaring v0.5.1/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
|
github.com/RoaringBitmap/roaring v0.5.1/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
|
||||||
github.com/SevereCloud/vksdk/v2 v2.9.1 h1:5+8feQenzF21UJFVE3UVu3EfLJWWiWo47LKNjpg4VqY=
|
github.com/SevereCloud/vksdk/v2 v2.9.1 h1:5+8feQenzF21UJFVE3UVu3EfLJWWiWo47LKNjpg4VqY=
|
||||||
github.com/SevereCloud/vksdk/v2 v2.9.1/go.mod h1:jCicWsIOXu4bfbGGuvVw4dM/EbrC8dOyA+0ccvhiFEo=
|
github.com/SevereCloud/vksdk/v2 v2.9.1/go.mod h1:jCicWsIOXu4bfbGGuvVw4dM/EbrC8dOyA+0ccvhiFEo=
|
||||||
|
github.com/SevereCloud/vksdk/v2 v2.9.2 h1:+6s5w18VtWeGzsad8tRcraDGRPxgvuMtEPlRg7NrDM4=
|
||||||
|
github.com/SevereCloud/vksdk/v2 v2.9.2/go.mod h1:jCicWsIOXu4bfbGGuvVw4dM/EbrC8dOyA+0ccvhiFEo=
|
||||||
github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0=
|
github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0=
|
||||||
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
|
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
|
||||||
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
|
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
|
||||||
|
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d h1:G0m3OIz70MZUWq3EgK3CesDbo8upS2Vm9/P3FtgI+Jk=
|
||||||
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
||||||
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
|
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
|
||||||
github.com/advancedlogic/GoOse v0.0.0-20191112112754-e742535969c1/go.mod h1:f3HCSN1fBWjcpGtXyM119MJgeQl838v6so/PQOqvE1w=
|
github.com/advancedlogic/GoOse v0.0.0-20191112112754-e742535969c1/go.mod h1:f3HCSN1fBWjcpGtXyM119MJgeQl838v6so/PQOqvE1w=
|
||||||
@ -101,6 +106,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy
|
|||||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
||||||
|
github.com/alexcesaro/log v0.0.0-20150915221235-61e686294e58 h1:MkpmYfld/S8kXqTYI68DfL8/hHXjHogL120Dy00TIxc=
|
||||||
github.com/alexcesaro/log v0.0.0-20150915221235-61e686294e58/go.mod h1:YNfsMyWSs+h+PaYkxGeMVmVCX75Zj/pqdjbu12ciCYE=
|
github.com/alexcesaro/log v0.0.0-20150915221235-61e686294e58/go.mod h1:YNfsMyWSs+h+PaYkxGeMVmVCX75Zj/pqdjbu12ciCYE=
|
||||||
github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
|
github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
|
||||||
github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
|
github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
|
||||||
@ -269,6 +275,7 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9
|
|||||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
||||||
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
||||||
github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=
|
github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=
|
||||||
|
github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI=
|
||||||
github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
|
github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
|
||||||
github.com/go-redis/redis/v8 v8.0.0/go.mod h1:isLoQT/NFSP7V67lyvM9GmdvLdyZ7pEhsXvvyQtnQTo=
|
github.com/go-redis/redis/v8 v8.0.0/go.mod h1:isLoQT/NFSP7V67lyvM9GmdvLdyZ7pEhsXvvyQtnQTo=
|
||||||
github.com/go-resty/resty/v2 v2.0.0/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8=
|
github.com/go-resty/resty/v2 v2.0.0/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8=
|
||||||
@ -322,6 +329,8 @@ github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW
|
|||||||
github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/gomarkdown/markdown v0.0.0-20210408062403-ad838ccf8cdd h1:0b8AqsWQb6A0jjx80UXLG/uMTXQkGD0IGuXWqsrNz1M=
|
github.com/gomarkdown/markdown v0.0.0-20210408062403-ad838ccf8cdd h1:0b8AqsWQb6A0jjx80UXLG/uMTXQkGD0IGuXWqsrNz1M=
|
||||||
github.com/gomarkdown/markdown v0.0.0-20210408062403-ad838ccf8cdd/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU=
|
github.com/gomarkdown/markdown v0.0.0-20210408062403-ad838ccf8cdd/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU=
|
||||||
|
github.com/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7 h1:oKYOfNR7Hp6XpZ4JqolL5u642Js5Z0n7psPVl+S5heo=
|
||||||
|
github.com/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU=
|
||||||
github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
||||||
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
@ -480,6 +489,7 @@ github.com/kataras/neffos v0.0.10/go.mod h1:ZYmJC07hQPW67eKuzlfY7SO3bC0mw83A3j6i
|
|||||||
github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0=
|
github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0=
|
||||||
github.com/keybase/go-keybase-chat-bot v0.0.0-20200505163032-5cacf52379da h1:LK+8uBG3kNikj664cjFt88RBmuGmonxkXv2rUVfbqz4=
|
github.com/keybase/go-keybase-chat-bot v0.0.0-20200505163032-5cacf52379da h1:LK+8uBG3kNikj664cjFt88RBmuGmonxkXv2rUVfbqz4=
|
||||||
github.com/keybase/go-keybase-chat-bot v0.0.0-20200505163032-5cacf52379da/go.mod h1:xJA+X9ZVyT/irGldcb7q1XnJBq5F9s5H9h2L44Y+poY=
|
github.com/keybase/go-keybase-chat-bot v0.0.0-20200505163032-5cacf52379da/go.mod h1:xJA+X9ZVyT/irGldcb7q1XnJBq5F9s5H9h2L44Y+poY=
|
||||||
|
github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 h1:WjT3fLi9n8YWh/Ih8Q1LHAPsTqGddPcHqscN+PJ3i68=
|
||||||
github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19/go.mod h1:hY+WOq6m2FpbvyrI93sMaypsttvaIL5nhVR92dTMUcQ=
|
github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19/go.mod h1:hY+WOq6m2FpbvyrI93sMaypsttvaIL5nhVR92dTMUcQ=
|
||||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
@ -511,6 +521,8 @@ github.com/kyokomi/emoji/v2 v2.2.8/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5Cqkmo
|
|||||||
github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g=
|
github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g=
|
||||||
github.com/labstack/echo/v4 v4.2.2 h1:bq2fdZCionY1jck8rzUpQEu2YSmI8QbX6LHrCa60IVs=
|
github.com/labstack/echo/v4 v4.2.2 h1:bq2fdZCionY1jck8rzUpQEu2YSmI8QbX6LHrCa60IVs=
|
||||||
github.com/labstack/echo/v4 v4.2.2/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg=
|
github.com/labstack/echo/v4 v4.2.2/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg=
|
||||||
|
github.com/labstack/echo/v4 v4.3.0 h1:DCP6cbtT+Zu++K6evHOJzSgA2115cPMuCx0xg55q1EQ=
|
||||||
|
github.com/labstack/echo/v4 v4.3.0/go.mod h1:PvmtTvhVqKDzDQy4d3bWzPjZLzom4iQbAZy2sgZ/qI8=
|
||||||
github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0=
|
github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0=
|
||||||
github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
|
github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
|
||||||
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
|
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
|
||||||
@ -783,6 +795,7 @@ github.com/shazow/rateio v0.0.0-20200113175441-4461efc8bdc4 h1:zwQ1HBo5FYwn1ksMd
|
|||||||
github.com/shazow/rateio v0.0.0-20200113175441-4461efc8bdc4/go.mod h1:vt2jWY/3Qw1bIzle5thrJWucsLuuX9iUNnp20CqCciI=
|
github.com/shazow/rateio v0.0.0-20200113175441-4461efc8bdc4/go.mod h1:vt2jWY/3Qw1bIzle5thrJWucsLuuX9iUNnp20CqCciI=
|
||||||
github.com/shazow/ssh-chat v1.10.1 h1:ePS+ngEYqm+yUuXegDPutysqLV2WoI22XDOeRgI6CE0=
|
github.com/shazow/ssh-chat v1.10.1 h1:ePS+ngEYqm+yUuXegDPutysqLV2WoI22XDOeRgI6CE0=
|
||||||
github.com/shazow/ssh-chat v1.10.1/go.mod h1:0+7szsKylcre0vljkVnbuI6q7Odtc+QCDHxa+fFNV54=
|
github.com/shazow/ssh-chat v1.10.1/go.mod h1:0+7szsKylcre0vljkVnbuI6q7Odtc+QCDHxa+fFNV54=
|
||||||
|
github.com/shirou/gopsutil/v3 v3.21.2 h1:fIOk3hyqV1oGKogfGNjUZa0lUbtlkx3+ZT0IoJth2uM=
|
||||||
github.com/shirou/gopsutil/v3 v3.21.2/go.mod h1:ghfMypLDrFSWN2c9cDYFLHyynQ+QUht0cv/18ZqVczw=
|
github.com/shirou/gopsutil/v3 v3.21.2/go.mod h1:ghfMypLDrFSWN2c9cDYFLHyynQ+QUht0cv/18ZqVczw=
|
||||||
github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=
|
github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=
|
||||||
github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM=
|
github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM=
|
||||||
@ -818,6 +831,8 @@ github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9 h1:lpEzuenPuO1XNTe
|
|||||||
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo=
|
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo=
|
||||||
github.com/slack-go/slack v0.9.0 h1:C4VCefOTthLSHlq2g+Stww33TdW+P+ewk7VDYXCHT/o=
|
github.com/slack-go/slack v0.9.0 h1:C4VCefOTthLSHlq2g+Stww33TdW+P+ewk7VDYXCHT/o=
|
||||||
github.com/slack-go/slack v0.9.0/go.mod h1:wWL//kk0ho+FcQXcBTmEafUI5dz4qz5f4mMk8oIkioQ=
|
github.com/slack-go/slack v0.9.0/go.mod h1:wWL//kk0ho+FcQXcBTmEafUI5dz4qz5f4mMk8oIkioQ=
|
||||||
|
github.com/slack-go/slack v0.9.1 h1:pekQBs0RmrdAgoqzcMCzUCWSyIkhzUU3F83ExAdZrKo=
|
||||||
|
github.com/slack-go/slack v0.9.1/go.mod h1:wWL//kk0ho+FcQXcBTmEafUI5dz4qz5f4mMk8oIkioQ=
|
||||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||||
github.com/smartystreets/assertions v1.0.0 h1:UVQPSSmc3qtTi+zPPkCXvZX9VvW/xT/NsRvKfwY81a8=
|
github.com/smartystreets/assertions v1.0.0 h1:UVQPSSmc3qtTi+zPPkCXvZX9VvW/xT/NsRvKfwY81a8=
|
||||||
github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM=
|
github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM=
|
||||||
@ -877,7 +892,9 @@ github.com/throttled/throttled v2.2.5+incompatible/go.mod h1:0BjlrEGQmvxps+HuXLs
|
|||||||
github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
|
github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
|
||||||
github.com/tinylib/msgp v1.1.2 h1:gWmO7n0Ys2RBEb7GPYB9Ujq8Mk5p2U08lRnmMcGy6BQ=
|
github.com/tinylib/msgp v1.1.2 h1:gWmO7n0Ys2RBEb7GPYB9Ujq8Mk5p2U08lRnmMcGy6BQ=
|
||||||
github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
|
github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
|
||||||
|
github.com/tklauser/go-sysconf v0.3.4 h1:HT8SVixZd3IzLdfs/xlpq0jeSfTX57g1v6wB1EuzV7M=
|
||||||
github.com/tklauser/go-sysconf v0.3.4/go.mod h1:Cl2c8ZRWfHD5IrfHo9VN+FX9kCFjIOyVklgXycLB6ek=
|
github.com/tklauser/go-sysconf v0.3.4/go.mod h1:Cl2c8ZRWfHD5IrfHo9VN+FX9kCFjIOyVklgXycLB6ek=
|
||||||
|
github.com/tklauser/numcpus v0.2.1 h1:ct88eFm+Q7m2ZfXJdan1xYoXKlmwsfP+k88q05KvlZc=
|
||||||
github.com/tklauser/numcpus v0.2.1/go.mod h1:9aU+wOc6WjUIZEwWMP62PL/41d65P+iks1gBkr4QyP8=
|
github.com/tklauser/numcpus v0.2.1/go.mod h1:9aU+wOc6WjUIZEwWMP62PL/41d65P+iks1gBkr4QyP8=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
@ -926,6 +943,7 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:
|
|||||||
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
||||||
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos=
|
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos=
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||||
|
github.com/xlab/treeprint v1.0.0 h1:J0TkWtiuYgtdlrkkrDLISYBQ92M+X5m4LrIIMKrbDTs=
|
||||||
github.com/xlab/treeprint v1.0.0/go.mod h1:IoImgRak9i3zJyuxOKUP1v4UZd1tMoKkq/Cimt1uhCg=
|
github.com/xlab/treeprint v1.0.0/go.mod h1:IoImgRak9i3zJyuxOKUP1v4UZd1tMoKkq/Cimt1uhCg=
|
||||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
||||||
github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c/go.mod h1:UrdRz5enIKZ63MEE3IF9l2/ebyx59GyGgPi+tICQdmM=
|
github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c/go.mod h1:UrdRz5enIKZ63MEE3IF9l2/ebyx59GyGgPi+tICQdmM=
|
||||||
@ -997,6 +1015,8 @@ golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPh
|
|||||||
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 h1:pLI5jrR7OSLijeIDcmRxNmw2api+jEfxLoykJVice/E=
|
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 h1:pLI5jrR7OSLijeIDcmRxNmw2api+jEfxLoykJVice/E=
|
||||||
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w=
|
||||||
|
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
@ -1016,6 +1036,8 @@ golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+o
|
|||||||
golang.org/x/image v0.0.0-20200927104501-e162460cd6b5/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20200927104501-e162460cd6b5/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb h1:fqpd0EBDzlHRCjiphRR5Zo/RSWWQlWv34418dnEixWk=
|
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb h1:fqpd0EBDzlHRCjiphRR5Zo/RSWWQlWv34418dnEixWk=
|
||||||
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
|
golang.org/x/image v0.0.0-20210504121937-7319ad40d33e h1:PzJMNfFQx+QO9hrC1GwZ4BoPGeNGhfeQEgcQFArEjPk=
|
||||||
|
golang.org/x/image v0.0.0-20210504121937-7319ad40d33e/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
@ -1086,6 +1108,9 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R
|
|||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 h1:wBouT66WTYFXdxfVdz9sVWARVd/2vfGcmI45D2gj45M=
|
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 h1:wBouT66WTYFXdxfVdz9sVWARVd/2vfGcmI45D2gj45M=
|
||||||
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
|
||||||
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
@ -1096,6 +1121,8 @@ golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4Iltr
|
|||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c h1:SgVl/sCtkicsS7psKkje4H9YtjdEl3xsYh7N+5TDHqY=
|
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c h1:SgVl/sCtkicsS7psKkje4H9YtjdEl3xsYh7N+5TDHqY=
|
||||||
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
|
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
@ -1164,8 +1191,14 @@ golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201007165808-a893ed343c85/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201007165808-a893ed343c85/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201110211018-35f3e6cf4a65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201110211018-35f3e6cf4a65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210217105451-b926d437f341 h1:2/QtM1mL37YmcsT8HaDNHDgTqqFVw+zr8UzMiBVLzYU=
|
golang.org/x/sys v0.0.0-20210217105451-b926d437f341 h1:2/QtM1mL37YmcsT8HaDNHDgTqqFVw+zr8UzMiBVLzYU=
|
||||||
golang.org/x/sys v0.0.0-20210217105451-b926d437f341/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210217105451-b926d437f341/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57 h1:F5Gozwx4I1xtr/sr/8CFbb57iKi3297KFs0QDbGN60A=
|
||||||
|
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
|
||||||
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
@ -1174,6 +1207,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|||||||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ=
|
golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ=
|
||||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
|
||||||
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
@ -1402,6 +1437,7 @@ layeh.com/gopus v0.0.0-20161224163843-0ebf989153aa/go.mod h1:AOef7vHz0+v4sWwJnr0
|
|||||||
layeh.com/gumble v0.0.0-20200818122324-146f9205029b h1:Kne6wkHqbqrygRsqs5XUNhSs84DFG5TYMeCkCbM56sY=
|
layeh.com/gumble v0.0.0-20200818122324-146f9205029b h1:Kne6wkHqbqrygRsqs5XUNhSs84DFG5TYMeCkCbM56sY=
|
||||||
layeh.com/gumble v0.0.0-20200818122324-146f9205029b/go.mod h1:tWPVA9ZAfImNwabjcd9uDE+Mtz0Hfs7a7G3vxrnrwyc=
|
layeh.com/gumble v0.0.0-20200818122324-146f9205029b/go.mod h1:tWPVA9ZAfImNwabjcd9uDE+Mtz0Hfs7a7G3vxrnrwyc=
|
||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
|
rsc.io/goversion v1.2.0 h1:SPn+NLTiAG7w30IRK/DKp1BjvpWabYgxlLp/+kx5J8w=
|
||||||
rsc.io/goversion v1.2.0/go.mod h1:Eih9y/uIBS3ulggl7KNJ09xGSLcuNaLgmvvqa07sgfo=
|
rsc.io/goversion v1.2.0/go.mod h1:Eih9y/uIBS3ulggl7KNJ09xGSLcuNaLgmvvqa07sgfo=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
|
13492
vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go
generated
vendored
13492
vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
443
vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto
generated
vendored
443
vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto
generated
vendored
@ -1,6 +1,12 @@
|
|||||||
syntax = "proto2";
|
syntax = "proto2";
|
||||||
package proto;
|
package proto;
|
||||||
|
|
||||||
|
message PaymentMoney {
|
||||||
|
optional int64 value = 1;
|
||||||
|
optional uint32 offset = 2;
|
||||||
|
optional string currencyCode = 3;
|
||||||
|
}
|
||||||
|
|
||||||
message HydratedQuickReplyButton {
|
message HydratedQuickReplyButton {
|
||||||
optional string displayText = 1;
|
optional string displayText = 1;
|
||||||
optional string id = 2;
|
optional string id = 2;
|
||||||
@ -69,18 +75,46 @@ message InteractiveAnnotation {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message DeviceListMetadata {
|
||||||
|
optional bytes senderKeyHash = 1;
|
||||||
|
optional uint64 senderTimestamp = 2;
|
||||||
|
optional bytes recipientKeyHash = 8;
|
||||||
|
optional uint64 recipientTimestamp = 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MessageContextInfo {
|
||||||
|
optional DeviceListMetadata deviceListMetadata = 1;
|
||||||
|
}
|
||||||
|
|
||||||
message AdReplyInfo {
|
message AdReplyInfo {
|
||||||
optional string advertiserName = 1;
|
optional string advertiserName = 1;
|
||||||
enum AD_REPLY_INFO_MEDIATYPE {
|
enum AdReplyInfoMediaType {
|
||||||
NONE = 0;
|
NONE = 0;
|
||||||
IMAGE = 1;
|
IMAGE = 1;
|
||||||
VIDEO = 2;
|
VIDEO = 2;
|
||||||
}
|
}
|
||||||
optional AD_REPLY_INFO_MEDIATYPE mediaType = 2;
|
optional AdReplyInfoMediaType mediaType = 2;
|
||||||
optional bytes jpegThumbnail = 16;
|
optional bytes jpegThumbnail = 16;
|
||||||
optional string caption = 17;
|
optional string caption = 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message ExternalAdReplyInfo {
|
||||||
|
optional string title = 1;
|
||||||
|
optional string body = 2;
|
||||||
|
enum ExternalAdReplyInfoMediaType {
|
||||||
|
NONE = 0;
|
||||||
|
IMAGE = 1;
|
||||||
|
VIDEO = 2;
|
||||||
|
}
|
||||||
|
optional ExternalAdReplyInfoMediaType mediaType = 3;
|
||||||
|
optional string thumbnailUrl = 4;
|
||||||
|
optional string mediaUrl = 5;
|
||||||
|
optional bytes thumbnail = 6;
|
||||||
|
optional string sourceType = 7;
|
||||||
|
optional string sourceId = 8;
|
||||||
|
optional string sourceUrl = 9;
|
||||||
|
}
|
||||||
|
|
||||||
message ContextInfo {
|
message ContextInfo {
|
||||||
optional string stanzaId = 1;
|
optional string stanzaId = 1;
|
||||||
optional string participant = 2;
|
optional string participant = 2;
|
||||||
@ -96,6 +130,8 @@ message ContextInfo {
|
|||||||
optional MessageKey placeholderKey = 24;
|
optional MessageKey placeholderKey = 24;
|
||||||
optional uint32 expiration = 25;
|
optional uint32 expiration = 25;
|
||||||
optional int64 ephemeralSettingTimestamp = 26;
|
optional int64 ephemeralSettingTimestamp = 26;
|
||||||
|
optional bytes ephemeralSharedSecret = 27;
|
||||||
|
optional ExternalAdReplyInfo externalAdReply = 28;
|
||||||
}
|
}
|
||||||
|
|
||||||
message SenderKeyDistributionMessage {
|
message SenderKeyDistributionMessage {
|
||||||
@ -125,6 +161,27 @@ message ImageMessage {
|
|||||||
repeated uint32 scanLengths = 22;
|
repeated uint32 scanLengths = 22;
|
||||||
optional bytes midQualityFileSha256 = 23;
|
optional bytes midQualityFileSha256 = 23;
|
||||||
optional bytes midQualityFileEncSha256 = 24;
|
optional bytes midQualityFileEncSha256 = 24;
|
||||||
|
optional bool viewOnce = 25;
|
||||||
|
optional string thumbnailDirectPath = 26;
|
||||||
|
optional bytes thumbnailSha256 = 27;
|
||||||
|
optional bytes thumbnailEncSha256 = 28;
|
||||||
|
}
|
||||||
|
|
||||||
|
message InvoiceMessage {
|
||||||
|
optional string note = 1;
|
||||||
|
optional string token = 2;
|
||||||
|
enum InvoiceMessageAttachmentType {
|
||||||
|
IMAGE = 0;
|
||||||
|
PDF = 1;
|
||||||
|
}
|
||||||
|
optional InvoiceMessageAttachmentType attachmentType = 3;
|
||||||
|
optional string attachmentMimetype = 4;
|
||||||
|
optional bytes attachmentMediaKey = 5;
|
||||||
|
optional int64 attachmentMediaKeyTimestamp = 6;
|
||||||
|
optional bytes attachmentFileSha256 = 7;
|
||||||
|
optional bytes attachmentFileEncSha256 = 8;
|
||||||
|
optional string attachmentDirectPath = 9;
|
||||||
|
optional bytes attachmentJpegThumbnail = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ContactMessage {
|
message ContactMessage {
|
||||||
@ -156,7 +213,7 @@ message ExtendedTextMessage {
|
|||||||
optional string title = 6;
|
optional string title = 6;
|
||||||
optional fixed32 textArgb = 7;
|
optional fixed32 textArgb = 7;
|
||||||
optional fixed32 backgroundArgb = 8;
|
optional fixed32 backgroundArgb = 8;
|
||||||
enum EXTENDED_TEXT_MESSAGE_FONTTYPE {
|
enum ExtendedTextMessageFontType {
|
||||||
SANS_SERIF = 0;
|
SANS_SERIF = 0;
|
||||||
SERIF = 1;
|
SERIF = 1;
|
||||||
NORICAN_REGULAR = 2;
|
NORICAN_REGULAR = 2;
|
||||||
@ -164,12 +221,12 @@ message ExtendedTextMessage {
|
|||||||
BEBASNEUE_REGULAR = 4;
|
BEBASNEUE_REGULAR = 4;
|
||||||
OSWALD_HEAVY = 5;
|
OSWALD_HEAVY = 5;
|
||||||
}
|
}
|
||||||
optional EXTENDED_TEXT_MESSAGE_FONTTYPE font = 9;
|
optional ExtendedTextMessageFontType font = 9;
|
||||||
enum EXTENDED_TEXT_MESSAGE_PREVIEWTYPE {
|
enum ExtendedTextMessagePreviewType {
|
||||||
NONE = 0;
|
NONE = 0;
|
||||||
VIDEO = 1;
|
VIDEO = 1;
|
||||||
}
|
}
|
||||||
optional EXTENDED_TEXT_MESSAGE_PREVIEWTYPE previewType = 10;
|
optional ExtendedTextMessagePreviewType previewType = 10;
|
||||||
optional bytes jpegThumbnail = 16;
|
optional bytes jpegThumbnail = 16;
|
||||||
optional ContextInfo contextInfo = 17;
|
optional ContextInfo contextInfo = 17;
|
||||||
optional bool doNotPlayInline = 18;
|
optional bool doNotPlayInline = 18;
|
||||||
@ -187,8 +244,14 @@ message DocumentMessage {
|
|||||||
optional bytes fileEncSha256 = 9;
|
optional bytes fileEncSha256 = 9;
|
||||||
optional string directPath = 10;
|
optional string directPath = 10;
|
||||||
optional int64 mediaKeyTimestamp = 11;
|
optional int64 mediaKeyTimestamp = 11;
|
||||||
|
optional bool contactVcard = 12;
|
||||||
|
optional string thumbnailDirectPath = 13;
|
||||||
|
optional bytes thumbnailSha256 = 14;
|
||||||
|
optional bytes thumbnailEncSha256 = 15;
|
||||||
optional bytes jpegThumbnail = 16;
|
optional bytes jpegThumbnail = 16;
|
||||||
optional ContextInfo contextInfo = 17;
|
optional ContextInfo contextInfo = 17;
|
||||||
|
optional uint32 thumbnailHeight = 18;
|
||||||
|
optional uint32 thumbnailWidth = 19;
|
||||||
}
|
}
|
||||||
|
|
||||||
message AudioMessage {
|
message AudioMessage {
|
||||||
@ -224,12 +287,16 @@ message VideoMessage {
|
|||||||
optional bytes jpegThumbnail = 16;
|
optional bytes jpegThumbnail = 16;
|
||||||
optional ContextInfo contextInfo = 17;
|
optional ContextInfo contextInfo = 17;
|
||||||
optional bytes streamingSidecar = 18;
|
optional bytes streamingSidecar = 18;
|
||||||
enum VIDEO_MESSAGE_ATTRIBUTION {
|
enum VideoMessageAttribution {
|
||||||
NONE = 0;
|
NONE = 0;
|
||||||
GIPHY = 1;
|
GIPHY = 1;
|
||||||
TENOR = 2;
|
TENOR = 2;
|
||||||
}
|
}
|
||||||
optional VIDEO_MESSAGE_ATTRIBUTION gifAttribution = 19;
|
optional VideoMessageAttribution gifAttribution = 19;
|
||||||
|
optional bool viewOnce = 20;
|
||||||
|
optional string thumbnailDirectPath = 21;
|
||||||
|
optional bytes thumbnailSha256 = 22;
|
||||||
|
optional bytes thumbnailEncSha256 = 23;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Call {
|
message Call {
|
||||||
@ -243,16 +310,25 @@ message Chat {
|
|||||||
|
|
||||||
message ProtocolMessage {
|
message ProtocolMessage {
|
||||||
optional MessageKey key = 1;
|
optional MessageKey key = 1;
|
||||||
enum PROTOCOL_MESSAGE_TYPE {
|
enum ProtocolMessageType {
|
||||||
REVOKE = 0;
|
REVOKE = 0;
|
||||||
EPHEMERAL_SETTING = 3;
|
EPHEMERAL_SETTING = 3;
|
||||||
EPHEMERAL_SYNC_RESPONSE = 4;
|
EPHEMERAL_SYNC_RESPONSE = 4;
|
||||||
HISTORY_SYNC_NOTIFICATION = 5;
|
HISTORY_SYNC_NOTIFICATION = 5;
|
||||||
|
APP_STATE_SYNC_KEY_SHARE = 6;
|
||||||
|
APP_STATE_SYNC_KEY_REQUEST = 7;
|
||||||
|
MSG_FANOUT_BACKFILL_REQUEST = 8;
|
||||||
|
INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC = 9;
|
||||||
|
APP_STATE_FATAL_EXCEPTION_NOTIFICATION = 10;
|
||||||
}
|
}
|
||||||
optional PROTOCOL_MESSAGE_TYPE type = 2;
|
optional ProtocolMessageType type = 2;
|
||||||
optional uint32 ephemeralExpiration = 4;
|
optional uint32 ephemeralExpiration = 4;
|
||||||
optional int64 ephemeralSettingTimestamp = 5;
|
optional int64 ephemeralSettingTimestamp = 5;
|
||||||
optional HistorySyncNotification historySyncNotification = 6;
|
optional HistorySyncNotification historySyncNotification = 6;
|
||||||
|
optional AppStateSyncKeyShare appStateSyncKeyShare = 7;
|
||||||
|
optional AppStateSyncKeyRequest appStateSyncKeyRequest = 8;
|
||||||
|
optional InitialSecurityNotificationSettingSync initialSecurityNotificationSettingSync = 9;
|
||||||
|
optional AppStateFatalExceptionNotification appStateFatalExceptionNotification = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
message HistorySyncNotification {
|
message HistorySyncNotification {
|
||||||
@ -261,14 +337,54 @@ message HistorySyncNotification {
|
|||||||
optional bytes mediaKey = 3;
|
optional bytes mediaKey = 3;
|
||||||
optional bytes fileEncSha256 = 4;
|
optional bytes fileEncSha256 = 4;
|
||||||
optional string directPath = 5;
|
optional string directPath = 5;
|
||||||
enum HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE {
|
enum HistorySyncNotificationHistorySyncType {
|
||||||
INITIAL_BOOTSTRAP = 0;
|
INITIAL_BOOTSTRAP = 0;
|
||||||
INITIAL_STATUS_V3 = 1;
|
INITIAL_STATUS_V3 = 1;
|
||||||
FULL = 2;
|
FULL = 2;
|
||||||
RECENT = 3;
|
RECENT = 3;
|
||||||
|
PUSH_NAME = 4;
|
||||||
}
|
}
|
||||||
optional HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE syncType = 6;
|
optional HistorySyncNotificationHistorySyncType syncType = 6;
|
||||||
optional uint32 chunkOrder = 7;
|
optional uint32 chunkOrder = 7;
|
||||||
|
optional string originalMessageId = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AppStateSyncKey {
|
||||||
|
optional AppStateSyncKeyId keyId = 1;
|
||||||
|
optional AppStateSyncKeyData keyData = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AppStateSyncKeyId {
|
||||||
|
optional bytes keyId = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AppStateSyncKeyFingerprint {
|
||||||
|
optional uint32 rawId = 1;
|
||||||
|
optional uint32 currentIndex = 2;
|
||||||
|
repeated uint32 deviceIndexes = 3 [packed=true];
|
||||||
|
}
|
||||||
|
|
||||||
|
message AppStateSyncKeyData {
|
||||||
|
optional bytes keyData = 1;
|
||||||
|
optional AppStateSyncKeyFingerprint fingerprint = 2;
|
||||||
|
optional int64 timestamp = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AppStateSyncKeyShare {
|
||||||
|
repeated AppStateSyncKey keys = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AppStateSyncKeyRequest {
|
||||||
|
repeated AppStateSyncKeyId keyIds = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AppStateFatalExceptionNotification {
|
||||||
|
repeated string collectionNames = 1;
|
||||||
|
optional int64 timestamp = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message InitialSecurityNotificationSettingSync {
|
||||||
|
optional bool securityNotificationEnabled = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ContactsArrayMessage {
|
message ContactsArrayMessage {
|
||||||
@ -283,7 +399,7 @@ message HSMCurrency {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message HSMDateTimeComponent {
|
message HSMDateTimeComponent {
|
||||||
enum HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE {
|
enum HSMDateTimeComponentDayOfWeekType {
|
||||||
MONDAY = 1;
|
MONDAY = 1;
|
||||||
TUESDAY = 2;
|
TUESDAY = 2;
|
||||||
WEDNESDAY = 3;
|
WEDNESDAY = 3;
|
||||||
@ -292,17 +408,17 @@ message HSMDateTimeComponent {
|
|||||||
SATURDAY = 6;
|
SATURDAY = 6;
|
||||||
SUNDAY = 7;
|
SUNDAY = 7;
|
||||||
}
|
}
|
||||||
optional HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE dayOfWeek = 1;
|
optional HSMDateTimeComponentDayOfWeekType dayOfWeek = 1;
|
||||||
optional uint32 year = 2;
|
optional uint32 year = 2;
|
||||||
optional uint32 month = 3;
|
optional uint32 month = 3;
|
||||||
optional uint32 dayOfMonth = 4;
|
optional uint32 dayOfMonth = 4;
|
||||||
optional uint32 hour = 5;
|
optional uint32 hour = 5;
|
||||||
optional uint32 minute = 6;
|
optional uint32 minute = 6;
|
||||||
enum HSM_DATE_TIME_COMPONENT_CALENDARTYPE {
|
enum HSMDateTimeComponentCalendarType {
|
||||||
GREGORIAN = 1;
|
GREGORIAN = 1;
|
||||||
SOLAR_HIJRI = 2;
|
SOLAR_HIJRI = 2;
|
||||||
}
|
}
|
||||||
optional HSM_DATE_TIME_COMPONENT_CALENDARTYPE calendar = 7;
|
optional HSMDateTimeComponentCalendarType calendar = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message HSMDateTimeUnixEpoch {
|
message HSMDateTimeUnixEpoch {
|
||||||
@ -347,6 +463,7 @@ message RequestPaymentMessage {
|
|||||||
optional uint64 amount1000 = 2;
|
optional uint64 amount1000 = 2;
|
||||||
optional string requestFrom = 3;
|
optional string requestFrom = 3;
|
||||||
optional int64 expiryTimestamp = 5;
|
optional int64 expiryTimestamp = 5;
|
||||||
|
optional PaymentMoney amount = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message DeclinePaymentRequestMessage {
|
message DeclinePaymentRequestMessage {
|
||||||
@ -457,6 +574,66 @@ message ProductMessage {
|
|||||||
optional ContextInfo contextInfo = 17;
|
optional ContextInfo contextInfo = 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message OrderMessage {
|
||||||
|
optional string orderId = 1;
|
||||||
|
optional bytes thumbnail = 2;
|
||||||
|
optional int32 itemCount = 3;
|
||||||
|
enum OrderMessageOrderStatus {
|
||||||
|
INQUIRY = 1;
|
||||||
|
}
|
||||||
|
optional OrderMessageOrderStatus status = 4;
|
||||||
|
enum OrderMessageOrderSurface {
|
||||||
|
CATALOG = 1;
|
||||||
|
}
|
||||||
|
optional OrderMessageOrderSurface surface = 5;
|
||||||
|
optional string message = 6;
|
||||||
|
optional string orderTitle = 7;
|
||||||
|
optional string sellerJid = 8;
|
||||||
|
optional string token = 9;
|
||||||
|
optional int64 totalAmount1000 = 10;
|
||||||
|
optional string totalCurrencyCode = 11;
|
||||||
|
optional ContextInfo contextInfo = 17;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Row {
|
||||||
|
optional string title = 1;
|
||||||
|
optional string description = 2;
|
||||||
|
optional string rowId = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Section {
|
||||||
|
optional string title = 1;
|
||||||
|
repeated Row rows = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListMessage {
|
||||||
|
optional string title = 1;
|
||||||
|
optional string description = 2;
|
||||||
|
optional string buttonText = 3;
|
||||||
|
enum ListMessageListType {
|
||||||
|
UNKNOWN = 0;
|
||||||
|
SINGLE_SELECT = 1;
|
||||||
|
}
|
||||||
|
optional ListMessageListType listType = 4;
|
||||||
|
repeated Section sections = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SingleSelectReply {
|
||||||
|
optional string selectedRowId = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListResponseMessage {
|
||||||
|
optional string title = 1;
|
||||||
|
enum ListResponseMessageListType {
|
||||||
|
UNKNOWN = 0;
|
||||||
|
SINGLE_SELECT = 1;
|
||||||
|
}
|
||||||
|
optional ListResponseMessageListType listType = 2;
|
||||||
|
optional SingleSelectReply singleSelectReply = 3;
|
||||||
|
optional ContextInfo contextInfo = 4;
|
||||||
|
optional string description = 5;
|
||||||
|
}
|
||||||
|
|
||||||
message GroupInviteMessage {
|
message GroupInviteMessage {
|
||||||
optional string groupJid = 1;
|
optional string groupJid = 1;
|
||||||
optional string inviteCode = 2;
|
optional string inviteCode = 2;
|
||||||
@ -467,13 +644,72 @@ message GroupInviteMessage {
|
|||||||
optional ContextInfo contextInfo = 7;
|
optional ContextInfo contextInfo = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message EphemeralSetting {
|
||||||
|
optional string chatJid = 1;
|
||||||
|
optional uint32 ephemeralExpiration = 2;
|
||||||
|
optional int64 ephemeralSettingTimestamp = 3;
|
||||||
|
}
|
||||||
|
|
||||||
message DeviceSentMessage {
|
message DeviceSentMessage {
|
||||||
optional string destinationJid = 1;
|
optional string destinationJid = 1;
|
||||||
optional Message message = 2;
|
optional Message message = 2;
|
||||||
|
optional string phash = 3;
|
||||||
|
repeated EphemeralSetting broadcastEphemeralSettings = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message DeviceSyncMessage {
|
message FutureProofMessage {
|
||||||
optional bytes serializedXmlBytes = 1;
|
optional Message message = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ButtonText {
|
||||||
|
optional string displayText = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Button {
|
||||||
|
optional string buttonId = 1;
|
||||||
|
optional ButtonText buttonText = 2;
|
||||||
|
enum ButtonType {
|
||||||
|
UNKNOWN = 0;
|
||||||
|
RESPONSE = 1;
|
||||||
|
}
|
||||||
|
optional ButtonType type = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ButtonsMessage {
|
||||||
|
optional string contentText = 6;
|
||||||
|
optional string footerText = 7;
|
||||||
|
optional ContextInfo contextInfo = 8;
|
||||||
|
repeated Button buttons = 9;
|
||||||
|
enum ButtonsMessageHeaderType {
|
||||||
|
UNKNOWN = 0;
|
||||||
|
EMPTY = 1;
|
||||||
|
TEXT = 2;
|
||||||
|
DOCUMENT = 3;
|
||||||
|
IMAGE = 4;
|
||||||
|
VIDEO = 5;
|
||||||
|
LOCATION = 6;
|
||||||
|
}
|
||||||
|
optional ButtonsMessageHeaderType headerType = 10;
|
||||||
|
oneof header {
|
||||||
|
string text = 1;
|
||||||
|
DocumentMessage documentMessage = 2;
|
||||||
|
ImageMessage imageMessage = 3;
|
||||||
|
VideoMessage videoMessage = 4;
|
||||||
|
LocationMessage locationMessage = 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
message ButtonsResponseMessage {
|
||||||
|
optional string selectedButtonId = 1;
|
||||||
|
optional ContextInfo contextInfo = 3;
|
||||||
|
enum ButtonsResponseMessageType {
|
||||||
|
UNKNOWN = 0;
|
||||||
|
DISPLAY_TEXT = 1;
|
||||||
|
}
|
||||||
|
optional ButtonsResponseMessageType type = 4;
|
||||||
|
oneof response {
|
||||||
|
string selectedDisplayText = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
message Message {
|
message Message {
|
||||||
@ -503,7 +739,15 @@ message Message {
|
|||||||
optional TemplateButtonReplyMessage templateButtonReplyMessage = 29;
|
optional TemplateButtonReplyMessage templateButtonReplyMessage = 29;
|
||||||
optional ProductMessage productMessage = 30;
|
optional ProductMessage productMessage = 30;
|
||||||
optional DeviceSentMessage deviceSentMessage = 31;
|
optional DeviceSentMessage deviceSentMessage = 31;
|
||||||
optional DeviceSyncMessage deviceSyncMessage = 32;
|
optional MessageContextInfo messageContextInfo = 35;
|
||||||
|
optional ListMessage listMessage = 36;
|
||||||
|
optional FutureProofMessage viewOnceMessage = 37;
|
||||||
|
optional OrderMessage orderMessage = 38;
|
||||||
|
optional ListResponseMessage listResponseMessage = 39;
|
||||||
|
optional FutureProofMessage ephemeralMessage = 40;
|
||||||
|
optional InvoiceMessage invoiceMessage = 41;
|
||||||
|
optional ButtonsMessage buttonsMessage = 42;
|
||||||
|
optional ButtonsResponseMessage buttonsResponseMessage = 43;
|
||||||
}
|
}
|
||||||
|
|
||||||
message MessageKey {
|
message MessageKey {
|
||||||
@ -514,51 +758,52 @@ message MessageKey {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message WebFeatures {
|
message WebFeatures {
|
||||||
enum WEB_FEATURES_FLAG {
|
enum WebFeaturesFlag {
|
||||||
NOT_STARTED = 0;
|
NOT_STARTED = 0;
|
||||||
FORCE_UPGRADE = 1;
|
FORCE_UPGRADE = 1;
|
||||||
DEVELOPMENT = 2;
|
DEVELOPMENT = 2;
|
||||||
PRODUCTION = 3;
|
PRODUCTION = 3;
|
||||||
}
|
}
|
||||||
optional WEB_FEATURES_FLAG labelsDisplay = 1;
|
optional WebFeaturesFlag labelsDisplay = 1;
|
||||||
optional WEB_FEATURES_FLAG voipIndividualOutgoing = 2;
|
optional WebFeaturesFlag voipIndividualOutgoing = 2;
|
||||||
optional WEB_FEATURES_FLAG groupsV3 = 3;
|
optional WebFeaturesFlag groupsV3 = 3;
|
||||||
optional WEB_FEATURES_FLAG groupsV3Create = 4;
|
optional WebFeaturesFlag groupsV3Create = 4;
|
||||||
optional WEB_FEATURES_FLAG changeNumberV2 = 5;
|
optional WebFeaturesFlag changeNumberV2 = 5;
|
||||||
optional WEB_FEATURES_FLAG queryStatusV3Thumbnail = 6;
|
optional WebFeaturesFlag queryStatusV3Thumbnail = 6;
|
||||||
optional WEB_FEATURES_FLAG liveLocations = 7;
|
optional WebFeaturesFlag liveLocations = 7;
|
||||||
optional WEB_FEATURES_FLAG queryVname = 8;
|
optional WebFeaturesFlag queryVname = 8;
|
||||||
optional WEB_FEATURES_FLAG voipIndividualIncoming = 9;
|
optional WebFeaturesFlag voipIndividualIncoming = 9;
|
||||||
optional WEB_FEATURES_FLAG quickRepliesQuery = 10;
|
optional WebFeaturesFlag quickRepliesQuery = 10;
|
||||||
optional WEB_FEATURES_FLAG payments = 11;
|
optional WebFeaturesFlag payments = 11;
|
||||||
optional WEB_FEATURES_FLAG stickerPackQuery = 12;
|
optional WebFeaturesFlag stickerPackQuery = 12;
|
||||||
optional WEB_FEATURES_FLAG liveLocationsFinal = 13;
|
optional WebFeaturesFlag liveLocationsFinal = 13;
|
||||||
optional WEB_FEATURES_FLAG labelsEdit = 14;
|
optional WebFeaturesFlag labelsEdit = 14;
|
||||||
optional WEB_FEATURES_FLAG mediaUpload = 15;
|
optional WebFeaturesFlag mediaUpload = 15;
|
||||||
optional WEB_FEATURES_FLAG mediaUploadRichQuickReplies = 18;
|
optional WebFeaturesFlag mediaUploadRichQuickReplies = 18;
|
||||||
optional WEB_FEATURES_FLAG vnameV2 = 19;
|
optional WebFeaturesFlag vnameV2 = 19;
|
||||||
optional WEB_FEATURES_FLAG videoPlaybackUrl = 20;
|
optional WebFeaturesFlag videoPlaybackUrl = 20;
|
||||||
optional WEB_FEATURES_FLAG statusRanking = 21;
|
optional WebFeaturesFlag statusRanking = 21;
|
||||||
optional WEB_FEATURES_FLAG voipIndividualVideo = 22;
|
optional WebFeaturesFlag voipIndividualVideo = 22;
|
||||||
optional WEB_FEATURES_FLAG thirdPartyStickers = 23;
|
optional WebFeaturesFlag thirdPartyStickers = 23;
|
||||||
optional WEB_FEATURES_FLAG frequentlyForwardedSetting = 24;
|
optional WebFeaturesFlag frequentlyForwardedSetting = 24;
|
||||||
optional WEB_FEATURES_FLAG groupsV4JoinPermission = 25;
|
optional WebFeaturesFlag groupsV4JoinPermission = 25;
|
||||||
optional WEB_FEATURES_FLAG recentStickers = 26;
|
optional WebFeaturesFlag recentStickers = 26;
|
||||||
optional WEB_FEATURES_FLAG catalog = 27;
|
optional WebFeaturesFlag catalog = 27;
|
||||||
optional WEB_FEATURES_FLAG starredStickers = 28;
|
optional WebFeaturesFlag starredStickers = 28;
|
||||||
optional WEB_FEATURES_FLAG voipGroupCall = 29;
|
optional WebFeaturesFlag voipGroupCall = 29;
|
||||||
optional WEB_FEATURES_FLAG templateMessage = 30;
|
optional WebFeaturesFlag templateMessage = 30;
|
||||||
optional WEB_FEATURES_FLAG templateMessageInteractivity = 31;
|
optional WebFeaturesFlag templateMessageInteractivity = 31;
|
||||||
optional WEB_FEATURES_FLAG ephemeralMessages = 32;
|
optional WebFeaturesFlag ephemeralMessages = 32;
|
||||||
optional WEB_FEATURES_FLAG e2ENotificationSync = 33;
|
optional WebFeaturesFlag e2ENotificationSync = 33;
|
||||||
optional WEB_FEATURES_FLAG recentStickersV2 = 34;
|
optional WebFeaturesFlag recentStickersV2 = 34;
|
||||||
}
|
optional WebFeaturesFlag syncdRelease1 = 35;
|
||||||
|
optional WebFeaturesFlag recentStickersV3 = 36;
|
||||||
message TabletNotificationsInfo {
|
optional WebFeaturesFlag userNotice = 37;
|
||||||
optional uint64 timestamp = 2;
|
optional WebFeaturesFlag syncdRelease11 = 38;
|
||||||
optional uint32 unreadChats = 3;
|
optional WebFeaturesFlag support = 39;
|
||||||
optional uint32 notifyMessageCount = 4;
|
optional WebFeaturesFlag groupUiiCleanup = 40;
|
||||||
repeated NotificationMessageInfo notifyMessage = 5;
|
optional WebFeaturesFlag groupDogfoodingInternalOnly = 41;
|
||||||
|
optional WebFeaturesFlag settingsSync = 42;
|
||||||
}
|
}
|
||||||
|
|
||||||
message NotificationMessageInfo {
|
message NotificationMessageInfo {
|
||||||
@ -576,14 +821,14 @@ message WebNotificationsInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message PaymentInfo {
|
message PaymentInfo {
|
||||||
enum PAYMENT_INFO_CURRENCY {
|
enum PaymentInfoCurrency {
|
||||||
UNKNOWN_CURRENCY = 0;
|
UNKNOWN_CURRENCY = 0;
|
||||||
INR = 1;
|
INR = 1;
|
||||||
}
|
}
|
||||||
optional PAYMENT_INFO_CURRENCY currencyDeprecated = 1;
|
optional PaymentInfoCurrency currencyDeprecated = 1;
|
||||||
optional uint64 amount1000 = 2;
|
optional uint64 amount1000 = 2;
|
||||||
optional string receiverJid = 3;
|
optional string receiverJid = 3;
|
||||||
enum PAYMENT_INFO_STATUS {
|
enum PaymentInfoStatus {
|
||||||
UNKNOWN_STATUS = 0;
|
UNKNOWN_STATUS = 0;
|
||||||
PROCESSING = 1;
|
PROCESSING = 1;
|
||||||
SENT = 2;
|
SENT = 2;
|
||||||
@ -597,13 +842,13 @@ message PaymentInfo {
|
|||||||
WAITING_FOR_PAYER = 10;
|
WAITING_FOR_PAYER = 10;
|
||||||
WAITING = 11;
|
WAITING = 11;
|
||||||
}
|
}
|
||||||
optional PAYMENT_INFO_STATUS status = 4;
|
optional PaymentInfoStatus status = 4;
|
||||||
optional uint64 transactionTimestamp = 5;
|
optional uint64 transactionTimestamp = 5;
|
||||||
optional MessageKey requestMessageKey = 6;
|
optional MessageKey requestMessageKey = 6;
|
||||||
optional uint64 expiryTimestamp = 7;
|
optional uint64 expiryTimestamp = 7;
|
||||||
optional bool futureproofed = 8;
|
optional bool futureproofed = 8;
|
||||||
optional string currency = 9;
|
optional string currency = 9;
|
||||||
enum PAYMENT_INFO_TXNSTATUS {
|
enum PaymentInfoTxnStatus {
|
||||||
UNKNOWN = 0;
|
UNKNOWN = 0;
|
||||||
PENDING_SETUP = 1;
|
PENDING_SETUP = 1;
|
||||||
PENDING_RECEIVER_SETUP = 2;
|
PENDING_RECEIVER_SETUP = 2;
|
||||||
@ -633,14 +878,17 @@ message PaymentInfo {
|
|||||||
COLLECT_CANCELED = 26;
|
COLLECT_CANCELED = 26;
|
||||||
COLLECT_CANCELLING = 27;
|
COLLECT_CANCELLING = 27;
|
||||||
}
|
}
|
||||||
optional PAYMENT_INFO_TXNSTATUS txnStatus = 10;
|
optional PaymentInfoTxnStatus txnStatus = 10;
|
||||||
|
optional bool useNoviFiatFormat = 11;
|
||||||
|
optional PaymentMoney primaryAmount = 12;
|
||||||
|
optional PaymentMoney exchangeAmount = 13;
|
||||||
}
|
}
|
||||||
|
|
||||||
message WebMessageInfo {
|
message WebMessageInfo {
|
||||||
required MessageKey key = 1;
|
required MessageKey key = 1;
|
||||||
optional Message message = 2;
|
optional Message message = 2;
|
||||||
optional uint64 messageTimestamp = 3;
|
optional uint64 messageTimestamp = 3;
|
||||||
enum WEB_MESSAGE_INFO_STATUS {
|
enum WebMessageInfoStatus {
|
||||||
ERROR = 0;
|
ERROR = 0;
|
||||||
PENDING = 1;
|
PENDING = 1;
|
||||||
SERVER_ACK = 2;
|
SERVER_ACK = 2;
|
||||||
@ -648,7 +896,7 @@ message WebMessageInfo {
|
|||||||
READ = 4;
|
READ = 4;
|
||||||
PLAYED = 5;
|
PLAYED = 5;
|
||||||
}
|
}
|
||||||
optional WEB_MESSAGE_INFO_STATUS status = 4;
|
optional WebMessageInfoStatus status = 4;
|
||||||
optional string participant = 5;
|
optional string participant = 5;
|
||||||
optional bool ignore = 16;
|
optional bool ignore = 16;
|
||||||
optional bool starred = 17;
|
optional bool starred = 17;
|
||||||
@ -658,7 +906,7 @@ message WebMessageInfo {
|
|||||||
optional bool multicast = 21;
|
optional bool multicast = 21;
|
||||||
optional bool urlText = 22;
|
optional bool urlText = 22;
|
||||||
optional bool urlNumber = 23;
|
optional bool urlNumber = 23;
|
||||||
enum WEB_MESSAGE_INFO_STUBTYPE {
|
enum WebMessageInfoStubType {
|
||||||
UNKNOWN = 0;
|
UNKNOWN = 0;
|
||||||
REVOKE = 1;
|
REVOKE = 1;
|
||||||
CIPHERTEXT = 2;
|
CIPHERTEXT = 2;
|
||||||
@ -732,8 +980,54 @@ message WebMessageInfo {
|
|||||||
GROUP_V4_ADD_INVITE_SENT = 70;
|
GROUP_V4_ADD_INVITE_SENT = 70;
|
||||||
GROUP_PARTICIPANT_ADD_REQUEST_JOIN = 71;
|
GROUP_PARTICIPANT_ADD_REQUEST_JOIN = 71;
|
||||||
CHANGE_EPHEMERAL_SETTING = 72;
|
CHANGE_EPHEMERAL_SETTING = 72;
|
||||||
|
E2E_DEVICE_CHANGED = 73;
|
||||||
|
VIEWED_ONCE = 74;
|
||||||
|
E2E_ENCRYPTED_NOW = 75;
|
||||||
|
BLUE_MSG_BSP_FB_TO_BSP_PREMISE = 76;
|
||||||
|
BLUE_MSG_BSP_FB_TO_SELF_FB = 77;
|
||||||
|
BLUE_MSG_BSP_FB_TO_SELF_PREMISE = 78;
|
||||||
|
BLUE_MSG_BSP_FB_UNVERIFIED = 79;
|
||||||
|
BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 80;
|
||||||
|
BLUE_MSG_BSP_FB_VERIFIED = 81;
|
||||||
|
BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 82;
|
||||||
|
BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE = 83;
|
||||||
|
BLUE_MSG_BSP_PREMISE_UNVERIFIED = 84;
|
||||||
|
BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 85;
|
||||||
|
BLUE_MSG_BSP_PREMISE_VERIFIED = 86;
|
||||||
|
BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 87;
|
||||||
|
BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED = 88;
|
||||||
|
BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED = 89;
|
||||||
|
BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED = 90;
|
||||||
|
BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED = 91;
|
||||||
|
BLUE_MSG_SELF_FB_TO_BSP_PREMISE = 92;
|
||||||
|
BLUE_MSG_SELF_FB_TO_SELF_PREMISE = 93;
|
||||||
|
BLUE_MSG_SELF_FB_UNVERIFIED = 94;
|
||||||
|
BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 95;
|
||||||
|
BLUE_MSG_SELF_FB_VERIFIED = 96;
|
||||||
|
BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 97;
|
||||||
|
BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE = 98;
|
||||||
|
BLUE_MSG_SELF_PREMISE_UNVERIFIED = 99;
|
||||||
|
BLUE_MSG_SELF_PREMISE_VERIFIED = 100;
|
||||||
|
BLUE_MSG_TO_BSP_FB = 101;
|
||||||
|
BLUE_MSG_TO_CONSUMER = 102;
|
||||||
|
BLUE_MSG_TO_SELF_FB = 103;
|
||||||
|
BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED = 104;
|
||||||
|
BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 105;
|
||||||
|
BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED = 106;
|
||||||
|
BLUE_MSG_UNVERIFIED_TO_VERIFIED = 107;
|
||||||
|
BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED = 108;
|
||||||
|
BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 109;
|
||||||
|
BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED = 110;
|
||||||
|
BLUE_MSG_VERIFIED_TO_UNVERIFIED = 111;
|
||||||
|
BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 112;
|
||||||
|
BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED = 113;
|
||||||
|
BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 114;
|
||||||
|
BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED = 115;
|
||||||
|
BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 116;
|
||||||
|
BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 117;
|
||||||
|
E2E_IDENTITY_UNAVAILABLE = 118;
|
||||||
}
|
}
|
||||||
optional WEB_MESSAGE_INFO_STUBTYPE messageStubType = 24;
|
optional WebMessageInfoStubType messageStubType = 24;
|
||||||
optional bool clearMedia = 25;
|
optional bool clearMedia = 25;
|
||||||
repeated string messageStubParameters = 26;
|
repeated string messageStubParameters = 26;
|
||||||
optional uint32 duration = 27;
|
optional uint32 duration = 27;
|
||||||
@ -743,5 +1037,14 @@ message WebMessageInfo {
|
|||||||
optional PaymentInfo quotedPaymentInfo = 31;
|
optional PaymentInfo quotedPaymentInfo = 31;
|
||||||
optional uint64 ephemeralStartTimestamp = 32;
|
optional uint64 ephemeralStartTimestamp = 32;
|
||||||
optional uint32 ephemeralDuration = 33;
|
optional uint32 ephemeralDuration = 33;
|
||||||
|
optional bool ephemeralOffToOn = 34;
|
||||||
|
optional bool ephemeralOutOfSync = 35;
|
||||||
|
enum WebMessageInfoBizPrivacyStatus {
|
||||||
|
E2EE = 0;
|
||||||
|
FB = 2;
|
||||||
|
BSP = 1;
|
||||||
|
BSP_AND_FB = 3;
|
||||||
|
}
|
||||||
|
optional WebMessageInfoBizPrivacyStatus bizPrivacyStatus = 36;
|
||||||
|
optional string verifiedBizName = 37;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
34
vendor/github.com/Rhymen/go-whatsapp/contact.go
generated
vendored
34
vendor/github.com/Rhymen/go-whatsapp/contact.go
generated
vendored
@ -286,3 +286,37 @@ func (wac *Conn) handleBlockContact(action, jid string) (<-chan string, error) {
|
|||||||
|
|
||||||
return wac.writeBinary(n, contact, ignore, tag)
|
return wac.writeBinary(n, contact, ignore, tag)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Search product details on order
|
||||||
|
func (wac *Conn) SearchProductDetails(id, orderId, token string) (<-chan string, error) {
|
||||||
|
data := []interface{}{"query", "order", map[string]string{
|
||||||
|
"id": id,
|
||||||
|
"orderId": orderId,
|
||||||
|
"imageHeight": strconv.Itoa(80),
|
||||||
|
"imageWidth": strconv.Itoa(80),
|
||||||
|
"token": token,
|
||||||
|
}}
|
||||||
|
return wac.writeJson(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Order search and get product catalog reh
|
||||||
|
func (wac *Conn) SearchOrder(catalogWid, stanzaId string) (<-chan string, error) {
|
||||||
|
data := []interface{}{"query", "bizCatalog", map[string]string{
|
||||||
|
"catalogWid": catalogWid,
|
||||||
|
"limit": strconv.Itoa(10),
|
||||||
|
"height": strconv.Itoa(100),
|
||||||
|
"width": strconv.Itoa(100),
|
||||||
|
"stanza_id": stanzaId,
|
||||||
|
"type": "get_product_catalog_reh",
|
||||||
|
}}
|
||||||
|
return wac.writeJson(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Company details for Whatsapp Business
|
||||||
|
func (wac *Conn) BusinessProfile(wid string) (<-chan string, error) {
|
||||||
|
query := map[string]string{
|
||||||
|
"wid": wid,
|
||||||
|
}
|
||||||
|
data := []interface{}{"query", "businessProfile", []map[string]string{query}}
|
||||||
|
return wac.writeJson(data)
|
||||||
|
}
|
||||||
|
7
vendor/github.com/Rhymen/go-whatsapp/go.mod
generated
vendored
7
vendor/github.com/Rhymen/go-whatsapp/go.mod
generated
vendored
@ -1,14 +1,11 @@
|
|||||||
module github.com/Rhymen/go-whatsapp
|
module github.com/Rhymen/go-whatsapp
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d // indirect
|
github.com/golang/protobuf v1.4.1
|
||||||
github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d // indirect
|
|
||||||
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d // indirect
|
|
||||||
github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d // indirect
|
|
||||||
github.com/golang/protobuf v1.3.0
|
|
||||||
github.com/gorilla/websocket v1.4.1
|
github.com/gorilla/websocket v1.4.1
|
||||||
github.com/pkg/errors v0.8.1
|
github.com/pkg/errors v0.8.1
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
|
||||||
|
google.golang.org/protobuf v1.25.0
|
||||||
)
|
)
|
||||||
|
|
||||||
go 1.13
|
go 1.13
|
||||||
|
88
vendor/github.com/Rhymen/go-whatsapp/go.sum
generated
vendored
88
vendor/github.com/Rhymen/go-whatsapp/go.sum
generated
vendored
@ -1,37 +1,71 @@
|
|||||||
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f h1:2dk3eOnYllh+wUOuDhOoC2vUVoJF/5z478ryJ+wzEII=
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f/go.mod h1:4a58ifQTEe2uwwsaqbh3i2un5/CBPg+At/qHpt18Tmk=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d h1:m3wkrunHupL9XzzM+JZu1pgoDV1d9LFtD0gedNTHVDU=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:zgCiQtBtZ4P4gFWvwl9aashsdwOcbb/EHOGRmSzM8ME=
|
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d h1:muQlzqfZxjptOBjPdv+UoxVMr8Y1rPx7VMGPJIAFc5w=
|
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:5sCUSpG616ZoSJhlt9iBNI/KXBqrVLcNUJqg7J9+8pU=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d h1:xP//3V77YvHd1cj2Z3ttuQWAvs5WmIwBbjKe/t0g/tM=
|
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||||
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:RdiyhanVEGXTam+mZ3k6Y3VDCCvXYCwReOoxGozqhHw=
|
|
||||||
github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d h1:IRmRE0SPMByczwE2dhnTcVojje3w2TCSKwFrboLUbDg=
|
|
||||||
github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:suwzklatySS3Q0+NCxCDh5hYfgXdQUWU1DNcxwAxStM=
|
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk=
|
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0=
|
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
||||||
|
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
||||||
|
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
||||||
|
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
||||||
|
github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0=
|
||||||
|
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
||||||
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
|
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
|
||||||
|
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
|
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
|
||||||
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg=
|
|
||||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
|
||||||
github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw=
|
|
||||||
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
|
||||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9 h1:lpEzuenPuO1XNTeikEmvqYFcU37GVLl8SRNblzyvGBE=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo=
|
|
||||||
golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd h1:nTDtHvHSdCn1m6ITfMRqtOd/9+7a3s8RBNOZ3eYZzJA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
|
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||||
|
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||||
|
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||||
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
|
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||||
|
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||||
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
||||||
|
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||||
|
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
|
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
|
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
|
||||||
|
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||||
|
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
38
vendor/github.com/Rhymen/go-whatsapp/handler.go
generated
vendored
38
vendor/github.com/Rhymen/go-whatsapp/handler.go
generated
vendored
@ -97,6 +97,22 @@ type ContactMessageHandler interface {
|
|||||||
HandleContactMessage(message ContactMessage)
|
HandleContactMessage(message ContactMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
The ProductMessageHandler interface needs to be implemented to receive product messages dispatched by the dispatcher.
|
||||||
|
*/
|
||||||
|
type ProductMessageHandler interface {
|
||||||
|
Handler
|
||||||
|
HandleProductMessage(message ProductMessage)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
The OrderMessageHandler interface needs to be implemented to receive order messages dispatched by the dispatcher.
|
||||||
|
*/
|
||||||
|
type OrderMessageHandler interface {
|
||||||
|
Handler
|
||||||
|
HandleOrderMessage(message OrderMessage)
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The JsonMessageHandler interface needs to be implemented to receive json messages dispatched by the dispatcher.
|
The JsonMessageHandler interface needs to be implemented to receive json messages dispatched by the dispatcher.
|
||||||
These json messages contain status updates of every kind sent by WhatsAppWeb servers. WhatsAppWeb uses these messages
|
These json messages contain status updates of every kind sent by WhatsAppWeb servers. WhatsAppWeb uses these messages
|
||||||
@ -324,6 +340,28 @@ func (wac *Conn) handleWithCustomHandlers(message interface{}, handlers []Handle
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case ProductMessage:
|
||||||
|
for _, h := range handlers {
|
||||||
|
if x, ok := h.(ProductMessageHandler); ok {
|
||||||
|
if wac.shouldCallSynchronously(h) {
|
||||||
|
x.HandleProductMessage(m)
|
||||||
|
} else {
|
||||||
|
go x.HandleProductMessage(m)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case OrderMessage:
|
||||||
|
for _, h := range handlers {
|
||||||
|
if x, ok := h.(OrderMessageHandler); ok {
|
||||||
|
if wac.shouldCallSynchronously(h) {
|
||||||
|
x.HandleOrderMessage(m)
|
||||||
|
} else {
|
||||||
|
go x.HandleOrderMessage(m)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
case *proto.WebMessageInfo:
|
case *proto.WebMessageInfo:
|
||||||
for _, h := range handlers {
|
for _, h := range handlers {
|
||||||
if x, ok := h.(RawMessageHandler); ok {
|
if x, ok := h.(RawMessageHandler); ok {
|
||||||
|
119
vendor/github.com/Rhymen/go-whatsapp/message.go
generated
vendored
119
vendor/github.com/Rhymen/go-whatsapp/message.go
generated
vendored
@ -65,6 +65,10 @@ func (wac *Conn) Send(msg interface{}) (string, error) {
|
|||||||
msgProto = GetLiveLocationProto(m)
|
msgProto = GetLiveLocationProto(m)
|
||||||
case ContactMessage:
|
case ContactMessage:
|
||||||
msgProto = getContactMessageProto(m)
|
msgProto = getContactMessageProto(m)
|
||||||
|
case ProductMessage:
|
||||||
|
msgProto = getProductMessageProto(m)
|
||||||
|
case OrderMessage:
|
||||||
|
msgProto = getOrderMessageProto(m)
|
||||||
default:
|
default:
|
||||||
return "ERROR", fmt.Errorf("cannot match type %T, use message types declared in the package", msg)
|
return "ERROR", fmt.Errorf("cannot match type %T, use message types declared in the package", msg)
|
||||||
}
|
}
|
||||||
@ -258,7 +262,7 @@ func getInfoProto(info *MessageInfo) *proto.WebMessageInfo {
|
|||||||
}
|
}
|
||||||
info.FromMe = true
|
info.FromMe = true
|
||||||
|
|
||||||
status := proto.WebMessageInfo_WEB_MESSAGE_INFO_STATUS(info.Status)
|
status := proto.WebMessageInfo_WebMessageInfoStatus(info.Status)
|
||||||
|
|
||||||
return &proto.WebMessageInfo{
|
return &proto.WebMessageInfo{
|
||||||
Key: &proto.MessageKey{
|
Key: &proto.MessageKey{
|
||||||
@ -802,6 +806,113 @@ func getContactMessageProto(msg ContactMessage) *proto.WebMessageInfo {
|
|||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
OrderMessage represents a order message.
|
||||||
|
*/
|
||||||
|
|
||||||
|
type OrderMessage struct {
|
||||||
|
Info MessageInfo
|
||||||
|
OrderId string
|
||||||
|
Thumbnail []byte
|
||||||
|
ItemCount int32
|
||||||
|
Status proto.OrderMessage_OrderMessageOrderStatus
|
||||||
|
Surface proto.OrderMessage_OrderMessageOrderSurface
|
||||||
|
Message string
|
||||||
|
OrderTitle string
|
||||||
|
SellerJid string
|
||||||
|
Token string
|
||||||
|
TotalAmount1000 int64
|
||||||
|
TotalCurrencyCode string
|
||||||
|
ContextInfo ContextInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
func getOrderMessage(msg *proto.WebMessageInfo) OrderMessage {
|
||||||
|
order := msg.GetMessage().GetOrderMessage()
|
||||||
|
|
||||||
|
orderMessage := OrderMessage{
|
||||||
|
Info: getMessageInfo(msg),
|
||||||
|
OrderId: order.GetOrderId(),
|
||||||
|
Thumbnail: order.GetThumbnail(),
|
||||||
|
ItemCount: order.GetItemCount(),
|
||||||
|
Status: order.GetStatus(),
|
||||||
|
Surface: order.GetSurface(),
|
||||||
|
Message: order.GetMessage(),
|
||||||
|
OrderTitle: order.GetOrderTitle(),
|
||||||
|
SellerJid: order.GetSellerJid(),
|
||||||
|
Token: order.GetToken(),
|
||||||
|
TotalAmount1000: order.GetTotalAmount1000(),
|
||||||
|
TotalCurrencyCode: order.GetTotalCurrencyCode(),
|
||||||
|
ContextInfo: getMessageContext(order.GetContextInfo()),
|
||||||
|
}
|
||||||
|
|
||||||
|
return orderMessage
|
||||||
|
}
|
||||||
|
|
||||||
|
func getOrderMessageProto(msg OrderMessage) *proto.WebMessageInfo {
|
||||||
|
p := getInfoProto(&msg.Info)
|
||||||
|
contextInfo := getContextInfoProto(&msg.ContextInfo)
|
||||||
|
|
||||||
|
p.Message = &proto.Message{
|
||||||
|
OrderMessage: &proto.OrderMessage{
|
||||||
|
Thumbnail: msg.Thumbnail,
|
||||||
|
ItemCount: &msg.ItemCount,
|
||||||
|
Status: &msg.Status,
|
||||||
|
Surface: &msg.Surface,
|
||||||
|
Message: &msg.Message,
|
||||||
|
OrderTitle: &msg.OrderTitle,
|
||||||
|
SellerJid: &msg.SellerJid,
|
||||||
|
Token: &msg.Token,
|
||||||
|
TotalAmount1000: &msg.TotalAmount1000,
|
||||||
|
TotalCurrencyCode: &msg.TotalCurrencyCode,
|
||||||
|
ContextInfo: contextInfo,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
ProductMessage represents a product message.
|
||||||
|
*/
|
||||||
|
|
||||||
|
type ProductMessage struct {
|
||||||
|
Info MessageInfo
|
||||||
|
Product *proto.ProductSnapshot
|
||||||
|
BusinessOwnerJid string
|
||||||
|
Catalog *proto.CatalogSnapshot
|
||||||
|
ContextInfo ContextInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
func getProductMessage(msg *proto.WebMessageInfo) ProductMessage {
|
||||||
|
prod := msg.GetMessage().GetProductMessage()
|
||||||
|
|
||||||
|
productMessage := ProductMessage{
|
||||||
|
Info: getMessageInfo(msg),
|
||||||
|
Product: prod.GetProduct(),
|
||||||
|
BusinessOwnerJid: prod.GetBusinessOwnerJid(),
|
||||||
|
Catalog: prod.GetCatalog(),
|
||||||
|
ContextInfo: getMessageContext(prod.GetContextInfo()),
|
||||||
|
}
|
||||||
|
|
||||||
|
return productMessage
|
||||||
|
}
|
||||||
|
|
||||||
|
func getProductMessageProto(msg ProductMessage) *proto.WebMessageInfo {
|
||||||
|
p := getInfoProto(&msg.Info)
|
||||||
|
contextInfo := getContextInfoProto(&msg.ContextInfo)
|
||||||
|
|
||||||
|
p.Message = &proto.Message{
|
||||||
|
ProductMessage: &proto.ProductMessage{
|
||||||
|
Product: msg.Product,
|
||||||
|
BusinessOwnerJid: &msg.BusinessOwnerJid,
|
||||||
|
Catalog: msg.Catalog,
|
||||||
|
ContextInfo: contextInfo,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
func ParseProtoMessage(msg *proto.WebMessageInfo) interface{} {
|
func ParseProtoMessage(msg *proto.WebMessageInfo) interface{} {
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
@ -836,6 +947,12 @@ func ParseProtoMessage(msg *proto.WebMessageInfo) interface{} {
|
|||||||
case msg.GetMessage().GetContactMessage() != nil:
|
case msg.GetMessage().GetContactMessage() != nil:
|
||||||
return getContactMessage(msg)
|
return getContactMessage(msg)
|
||||||
|
|
||||||
|
case msg.GetMessage().GetProductMessage() != nil:
|
||||||
|
return getProductMessage(msg)
|
||||||
|
|
||||||
|
case msg.GetMessage().GetOrderMessage() != nil:
|
||||||
|
return getOrderMessage(msg)
|
||||||
|
|
||||||
default:
|
default:
|
||||||
//cannot match message
|
//cannot match message
|
||||||
return ErrMessageTypeNotImplemented
|
return ErrMessageTypeNotImplemented
|
||||||
|
24
vendor/github.com/Rhymen/go-whatsapp/profile.go
generated
vendored
24
vendor/github.com/Rhymen/go-whatsapp/profile.go
generated
vendored
@ -2,9 +2,10 @@ package whatsapp
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/Rhymen/go-whatsapp/binary"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/Rhymen/go-whatsapp/binary"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Pictures must be JPG 640x640 and 96x96, respectively
|
// Pictures must be JPG 640x640 and 96x96, respectively
|
||||||
@ -41,3 +42,24 @@ func (wac *Conn) UploadProfilePic(image, preview []byte) (<-chan string, error)
|
|||||||
}
|
}
|
||||||
return wac.writeBinary(n, profile, 136, tag)
|
return wac.writeBinary(n, profile, 136, tag)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (wac *Conn) UpdateProfileName(name string) (<-chan string, error) {
|
||||||
|
tag := fmt.Sprintf("%d.--%d", time.Now().Unix(), wac.msgCount*19)
|
||||||
|
n := binary.Node{
|
||||||
|
Description: "action",
|
||||||
|
Attributes: map[string]string{
|
||||||
|
"type": "set",
|
||||||
|
"epoch": strconv.Itoa(wac.msgCount),
|
||||||
|
},
|
||||||
|
Content: []interface{}{
|
||||||
|
binary.Node{
|
||||||
|
Description: "profile",
|
||||||
|
Attributes: map[string]string{
|
||||||
|
"name": name,
|
||||||
|
},
|
||||||
|
Content: []binary.Node{},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return wac.writeBinary(n, profile, ignore, tag)
|
||||||
|
}
|
||||||
|
2
vendor/github.com/Rhymen/go-whatsapp/session.go
generated
vendored
2
vendor/github.com/Rhymen/go-whatsapp/session.go
generated
vendored
@ -18,7 +18,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
//represents the WhatsAppWeb client version
|
//represents the WhatsAppWeb client version
|
||||||
var waVersion = []int{2, 2039, 9}
|
var waVersion = []int{2, 2110, 10}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Session contains session individual information. To be able to resume the connection without scanning the qr code
|
Session contains session individual information. To be able to resume the connection without scanning the qr code
|
||||||
|
16
vendor/github.com/SevereCloud/vksdk/v2/.golangci.yml
generated
vendored
16
vendor/github.com/SevereCloud/vksdk/v2/.golangci.yml
generated
vendored
@ -10,14 +10,11 @@ linters:
|
|||||||
- gocritic
|
- gocritic
|
||||||
- gofmt
|
- gofmt
|
||||||
- goimports
|
- goimports
|
||||||
- golint
|
|
||||||
- goprintffuncname
|
- goprintffuncname
|
||||||
- gosec
|
- gosec
|
||||||
- gosimple
|
- gosimple
|
||||||
- govet
|
- govet
|
||||||
- ineffassign
|
- ineffassign
|
||||||
- interfacer
|
|
||||||
- maligned
|
|
||||||
- misspell
|
- misspell
|
||||||
- nakedret
|
- nakedret
|
||||||
- prealloc
|
- prealloc
|
||||||
@ -46,10 +43,16 @@ linters:
|
|||||||
- ifshort
|
- ifshort
|
||||||
- revive
|
- revive
|
||||||
- durationcheck
|
- durationcheck
|
||||||
|
- gomoddirectives
|
||||||
|
- importas
|
||||||
|
- nilerr
|
||||||
|
- revive
|
||||||
|
- wastedassign
|
||||||
|
|
||||||
# - wrapcheck # TODO: v3 Fix
|
# - wrapcheck # TODO: v3 Fix
|
||||||
# - testpackage # TODO: Fix testpackage
|
# - testpackage # TODO: Fix testpackage
|
||||||
# - nestif # TODO: Fix nestif
|
# - nestif # TODO: Fix nestif
|
||||||
|
# - noctx # TODO: Fix noctx
|
||||||
|
|
||||||
# don't enable:
|
# don't enable:
|
||||||
# - depguard
|
# - depguard
|
||||||
@ -70,6 +73,13 @@ linters:
|
|||||||
# - gci
|
# - gci
|
||||||
# - exhaustivestruct
|
# - exhaustivestruct
|
||||||
# - cyclop
|
# - cyclop
|
||||||
|
# - promlinter
|
||||||
|
# - tagliatelle
|
||||||
|
|
||||||
|
# depricated
|
||||||
|
# - maligned
|
||||||
|
# - interfacer
|
||||||
|
# - golint
|
||||||
|
|
||||||
issues:
|
issues:
|
||||||
exclude-rules:
|
exclude-rules:
|
||||||
|
2
vendor/github.com/SevereCloud/vksdk/v2/doc.go
generated
vendored
2
vendor/github.com/SevereCloud/vksdk/v2/doc.go
generated
vendored
@ -7,6 +7,6 @@ package vksdk
|
|||||||
|
|
||||||
// Module constants.
|
// Module constants.
|
||||||
const (
|
const (
|
||||||
Version = "2.9.1"
|
Version = "2.9.2"
|
||||||
API = "5.126"
|
API = "5.126"
|
||||||
)
|
)
|
||||||
|
3
vendor/github.com/SevereCloud/vksdk/v2/longpoll-bot/longpoll.go
generated
vendored
3
vendor/github.com/SevereCloud/vksdk/v2/longpoll-bot/longpoll.go
generated
vendored
@ -173,8 +173,7 @@ func (lp *LongPoll) RunWithContext(ctx context.Context) error {
|
|||||||
func (lp *LongPoll) run(ctx context.Context) error {
|
func (lp *LongPoll) run(ctx context.Context) error {
|
||||||
ctx, lp.cancel = context.WithCancel(ctx)
|
ctx, lp.cancel = context.WithCancel(ctx)
|
||||||
|
|
||||||
err := lp.autoSetting(ctx)
|
if err := lp.autoSetting(ctx); err != nil {
|
||||||
if err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
vendor/github.com/SevereCloud/vksdk/v2/object/photos.go
generated
vendored
4
vendor/github.com/SevereCloud/vksdk/v2/object/photos.go
generated
vendored
@ -134,7 +134,7 @@ type PhotosOwnerUploadResponse struct {
|
|||||||
type PhotosPhotoAlbum struct {
|
type PhotosPhotoAlbum struct {
|
||||||
Created int `json:"created"` // Date when the album has been created in Unixtime
|
Created int `json:"created"` // Date when the album has been created in Unixtime
|
||||||
Description string `json:"description"` // Photo album description
|
Description string `json:"description"` // Photo album description
|
||||||
ID string `json:"id"` // BUG(VK): Photo album ID
|
ID int `json:"id"` // Photo album ID
|
||||||
OwnerID int `json:"owner_id"` // Album owner's ID
|
OwnerID int `json:"owner_id"` // Album owner's ID
|
||||||
Size int `json:"size"` // Photos number
|
Size int `json:"size"` // Photos number
|
||||||
Thumb PhotosPhoto `json:"thumb"`
|
Thumb PhotosPhoto `json:"thumb"`
|
||||||
@ -144,7 +144,7 @@ type PhotosPhotoAlbum struct {
|
|||||||
|
|
||||||
// ToAttachment return attachment format.
|
// ToAttachment return attachment format.
|
||||||
func (album PhotosPhotoAlbum) ToAttachment() string {
|
func (album PhotosPhotoAlbum) ToAttachment() string {
|
||||||
return fmt.Sprintf("album%d_%s", album.OwnerID, album.ID)
|
return fmt.Sprintf("album%d_%d", album.OwnerID, album.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// PhotosPhotoAlbumFull struct.
|
// PhotosPhotoAlbumFull struct.
|
||||||
|
24
vendor/github.com/SevereCloud/vksdk/v2/object/users.go
generated
vendored
24
vendor/github.com/SevereCloud/vksdk/v2/object/users.go
generated
vendored
@ -1,6 +1,8 @@
|
|||||||
package object // import "github.com/SevereCloud/vksdk/v2/object"
|
package object // import "github.com/SevereCloud/vksdk/v2/object"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -233,6 +235,28 @@ type UsersPersonal struct {
|
|||||||
ReligionID int `json:"religion_id"`
|
ReligionID int `json:"religion_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnmarshalJSON UsersPersonal.
|
||||||
|
//
|
||||||
|
// BUG(VK): UsersPersonal return [].
|
||||||
|
func (personal *UsersPersonal) UnmarshalJSON(data []byte) error {
|
||||||
|
if bytes.Equal(data, []byte("[]")) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type renamedUsersPersonal UsersPersonal
|
||||||
|
|
||||||
|
var r renamedUsersPersonal
|
||||||
|
|
||||||
|
err := json.Unmarshal(data, &r)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*personal = UsersPersonal(r)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// UsersRelative struct.
|
// UsersRelative struct.
|
||||||
type UsersRelative struct {
|
type UsersRelative struct {
|
||||||
BirthDate string `json:"birth_date"` // Date of child birthday (format dd.mm.yyyy)
|
BirthDate string `json:"birth_date"` // Date of child birthday (format dd.mm.yyyy)
|
||||||
|
2
vendor/github.com/SevereCloud/vksdk/v2/object/video.go
generated
vendored
2
vendor/github.com/SevereCloud/vksdk/v2/object/video.go
generated
vendored
@ -35,7 +35,7 @@ type VideoVideo struct {
|
|||||||
IsPrivate BaseBoolInt `json:"is_private"`
|
IsPrivate BaseBoolInt `json:"is_private"`
|
||||||
Added BaseBoolInt `json:"added"`
|
Added BaseBoolInt `json:"added"`
|
||||||
Repeat BaseBoolInt `json:"repeat"` // Information whether the video is repeated
|
Repeat BaseBoolInt `json:"repeat"` // Information whether the video is repeated
|
||||||
ContentRestricted BaseBoolInt `json:"content_restricted"`
|
ContentRestricted int `json:"content_restricted"`
|
||||||
Live BaseBoolInt `json:"live"` // Returns if the video is a live stream
|
Live BaseBoolInt `json:"live"` // Returns if the video is a live stream
|
||||||
Upcoming BaseBoolInt `json:"upcoming"`
|
Upcoming BaseBoolInt `json:"upcoming"`
|
||||||
Comments int `json:"comments"` // Number of comments
|
Comments int `json:"comments"` // Number of comments
|
||||||
|
2
vendor/github.com/gomarkdown/markdown/parser/block.go
generated
vendored
2
vendor/github.com/gomarkdown/markdown/parser/block.go
generated
vendored
@ -1221,7 +1221,7 @@ func (p *Parser) tableRow(data []byte, columns []ast.CellAlignFlags, header bool
|
|||||||
|
|
||||||
// skip the end-of-cell marker, possibly taking us past end of buffer
|
// skip the end-of-cell marker, possibly taking us past end of buffer
|
||||||
// each _extra_ | means a colspan
|
// each _extra_ | means a colspan
|
||||||
for data[i] == '|' && !isBackslashEscaped(data, i) {
|
for i < len(data) && data[i] == '|' && !isBackslashEscaped(data, i) {
|
||||||
i++
|
i++
|
||||||
colspan++
|
colspan++
|
||||||
}
|
}
|
||||||
|
30
vendor/github.com/labstack/echo/v4/CHANGELOG.md
generated
vendored
30
vendor/github.com/labstack/echo/v4/CHANGELOG.md
generated
vendored
@ -1,6 +1,30 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## v4.2.2 - 2020-04-07
|
## v4.3.0 - 2021-05-08
|
||||||
|
|
||||||
|
**Important notes**
|
||||||
|
|
||||||
|
* Route matching has improvements for following cases:
|
||||||
|
1. Correctly match routes with parameter part as last part of route (with trailing backslash)
|
||||||
|
2. Considering handlers when resolving routes and search for matching http method handler
|
||||||
|
* Echo minimal Go version is now 1.13.
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
|
||||||
|
* When url ends with slash first param route is the match [#1804](https://github.com/labstack/echo/pull/1812)
|
||||||
|
* Router should check if node is suitable as matching route by path+method and if not then continue search in tree [#1808](https://github.com/labstack/echo/issues/1808)
|
||||||
|
* Fix timeout middleware not writing response correctly when handler panics [#1864](https://github.com/labstack/echo/pull/1864)
|
||||||
|
* Fix binder not working with embedded pointer structs [#1861](https://github.com/labstack/echo/pull/1861)
|
||||||
|
* Add Go 1.16 to CI and drop 1.12 specific code [#1850](https://github.com/labstack/echo/pull/1850)
|
||||||
|
|
||||||
|
**Enhancements**
|
||||||
|
|
||||||
|
* Make KeyFunc public in JWT middleware [#1756](https://github.com/labstack/echo/pull/1756)
|
||||||
|
* Add support for optional filesystem to the static middleware [#1797](https://github.com/labstack/echo/pull/1797)
|
||||||
|
* Add a custom error handler to key-auth middleware [#1847](https://github.com/labstack/echo/pull/1847)
|
||||||
|
* Allow JWT token to be looked up from multiple sources [#1845](https://github.com/labstack/echo/pull/1845)
|
||||||
|
|
||||||
|
## v4.2.2 - 2021-04-07
|
||||||
|
|
||||||
**Fixes**
|
**Fixes**
|
||||||
|
|
||||||
@ -10,7 +34,7 @@
|
|||||||
* Fix panic in redirect middleware on short host name (#1813)
|
* Fix panic in redirect middleware on short host name (#1813)
|
||||||
* Fix timeout middleware docs (#1836)
|
* Fix timeout middleware docs (#1836)
|
||||||
|
|
||||||
## v4.2.1 - 2020-03-08
|
## v4.2.1 - 2021-03-08
|
||||||
|
|
||||||
**Important notes**
|
**Important notes**
|
||||||
|
|
||||||
@ -32,7 +56,7 @@ A performance regression has been fixed, even bringing better performance than b
|
|||||||
This release was made possible by our **contributors**:
|
This release was made possible by our **contributors**:
|
||||||
aldas, clwluvw, lammel, Le0tk0k, maciej-jezierski, rkilingr, stffabi, withshubh
|
aldas, clwluvw, lammel, Le0tk0k, maciej-jezierski, rkilingr, stffabi, withshubh
|
||||||
|
|
||||||
## v4.2.0 - 2020-02-11
|
## v4.2.0 - 2021-02-11
|
||||||
|
|
||||||
**Important notes**
|
**Important notes**
|
||||||
|
|
||||||
|
2
vendor/github.com/labstack/echo/v4/LICENSE
generated
vendored
2
vendor/github.com/labstack/echo/v4/LICENSE
generated
vendored
@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2017 LabStack
|
Copyright (c) 2021 LabStack
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
9
vendor/github.com/labstack/echo/v4/bind.go
generated
vendored
9
vendor/github.com/labstack/echo/v4/bind.go
generated
vendored
@ -144,11 +144,20 @@ func (b *DefaultBinder) bindData(destination interface{}, data map[string][]stri
|
|||||||
for i := 0; i < typ.NumField(); i++ {
|
for i := 0; i < typ.NumField(); i++ {
|
||||||
typeField := typ.Field(i)
|
typeField := typ.Field(i)
|
||||||
structField := val.Field(i)
|
structField := val.Field(i)
|
||||||
|
if typeField.Anonymous {
|
||||||
|
if structField.Kind() == reflect.Ptr {
|
||||||
|
structField = structField.Elem()
|
||||||
|
}
|
||||||
|
}
|
||||||
if !structField.CanSet() {
|
if !structField.CanSet() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
structFieldKind := structField.Kind()
|
structFieldKind := structField.Kind()
|
||||||
inputFieldName := typeField.Tag.Get(tag)
|
inputFieldName := typeField.Tag.Get(tag)
|
||||||
|
if typeField.Anonymous && structField.Kind() == reflect.Struct && inputFieldName != "" {
|
||||||
|
// if anonymous struct with query/param/form tags, report an error
|
||||||
|
return errors.New("query/param/form tags are not allowed with anonymous struct field")
|
||||||
|
}
|
||||||
|
|
||||||
if inputFieldName == "" {
|
if inputFieldName == "" {
|
||||||
// If tag is nil, we inspect if the field is a not BindUnmarshaler struct and try to bind data into it (might contains fields with tags).
|
// If tag is nil, we inspect if the field is a not BindUnmarshaler struct and try to bind data into it (might contains fields with tags).
|
||||||
|
2
vendor/github.com/labstack/echo/v4/echo.go
generated
vendored
2
vendor/github.com/labstack/echo/v4/echo.go
generated
vendored
@ -234,7 +234,7 @@ const (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
// Version of Echo
|
// Version of Echo
|
||||||
Version = "4.2.2"
|
Version = "4.3.0"
|
||||||
website = "https://echo.labstack.com"
|
website = "https://echo.labstack.com"
|
||||||
// http://patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Echo
|
// http://patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Echo
|
||||||
banner = `
|
banner = `
|
||||||
|
10
vendor/github.com/labstack/echo/v4/go.mod
generated
vendored
10
vendor/github.com/labstack/echo/v4/go.mod
generated
vendored
@ -5,12 +5,12 @@ go 1.15
|
|||||||
require (
|
require (
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
||||||
github.com/labstack/gommon v0.3.0
|
github.com/labstack/gommon v0.3.0
|
||||||
github.com/mattn/go-colorable v0.1.7 // indirect
|
github.com/mattn/go-colorable v0.1.8 // indirect
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
github.com/valyala/fasttemplate v1.2.1
|
github.com/valyala/fasttemplate v1.2.1
|
||||||
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a
|
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
|
||||||
golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 // indirect
|
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57 // indirect
|
||||||
golang.org/x/text v0.3.3 // indirect
|
golang.org/x/text v0.3.6 // indirect
|
||||||
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324
|
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324
|
||||||
)
|
)
|
||||||
|
36
vendor/github.com/labstack/echo/v4/go.sum
generated
vendored
36
vendor/github.com/labstack/echo/v4/go.sum
generated
vendored
@ -4,12 +4,10 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumC
|
|||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0=
|
github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0=
|
||||||
github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
|
github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
|
||||||
github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU=
|
|
||||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||||
github.com/mattn/go-colorable v0.1.7 h1:bQGKb3vps/j0E9GfJQ03JyhRuxsvdAanXlT9BTw3mdw=
|
github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
|
||||||
github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||||
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
github.com/mattn/go-isatty v0.0.9 h1:d5US/mDsogSGW37IV293h//ZFaeajb69h+EHFsv2xGg=
|
|
||||||
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
|
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
|
||||||
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
|
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
|
||||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||||
@ -20,32 +18,26 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy
|
|||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
||||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||||
github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8=
|
|
||||||
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
|
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
|
||||||
github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4=
|
github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4=
|
||||||
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
|
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||||
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM=
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA=
|
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO9UxmJRx8K0gsfABByQ=
|
|
||||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8=
|
|
||||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 h1:DvY3Zkh7KabQE/kfzMvYvKirSiguP9Q/veMtkYyf0o8=
|
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57 h1:F5Gozwx4I1xtr/sr/8CFbb57iKi3297KFs0QDbGN60A=
|
||||||
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
|
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
|
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
|
||||||
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE=
|
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE=
|
||||||
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
2
vendor/github.com/labstack/echo/v4/middleware/csrf.go
generated
vendored
2
vendor/github.com/labstack/echo/v4/middleware/csrf.go
generated
vendored
@ -110,7 +110,7 @@ func CSRFWithConfig(config CSRFConfig) echo.MiddlewareFunc {
|
|||||||
if config.CookieMaxAge == 0 {
|
if config.CookieMaxAge == 0 {
|
||||||
config.CookieMaxAge = DefaultCSRFConfig.CookieMaxAge
|
config.CookieMaxAge = DefaultCSRFConfig.CookieMaxAge
|
||||||
}
|
}
|
||||||
if config.CookieSameSite == SameSiteNoneMode {
|
if config.CookieSameSite == http.SameSiteNoneMode {
|
||||||
config.CookieSecure = true
|
config.CookieSecure = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
vendor/github.com/labstack/echo/v4/middleware/csrf_samesite.go
generated
vendored
12
vendor/github.com/labstack/echo/v4/middleware/csrf_samesite.go
generated
vendored
@ -1,12 +0,0 @@
|
|||||||
// +build go1.13
|
|
||||||
|
|
||||||
package middleware
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
// SameSiteNoneMode required to be redefined for Go 1.12 support (see #1524)
|
|
||||||
SameSiteNoneMode http.SameSite = http.SameSiteNoneMode
|
|
||||||
)
|
|
12
vendor/github.com/labstack/echo/v4/middleware/csrf_samesite_1.12.go
generated
vendored
12
vendor/github.com/labstack/echo/v4/middleware/csrf_samesite_1.12.go
generated
vendored
@ -1,12 +0,0 @@
|
|||||||
// +build !go1.13
|
|
||||||
|
|
||||||
package middleware
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
// SameSiteNoneMode required to be redefined for Go 1.12 support (see #1524)
|
|
||||||
SameSiteNoneMode http.SameSite = 4
|
|
||||||
)
|
|
98
vendor/github.com/labstack/echo/v4/middleware/jwt.go
generated
vendored
98
vendor/github.com/labstack/echo/v4/middleware/jwt.go
generated
vendored
@ -29,15 +29,19 @@ type (
|
|||||||
// ErrorHandlerWithContext is almost identical to ErrorHandler, but it's passed the current context.
|
// ErrorHandlerWithContext is almost identical to ErrorHandler, but it's passed the current context.
|
||||||
ErrorHandlerWithContext JWTErrorHandlerWithContext
|
ErrorHandlerWithContext JWTErrorHandlerWithContext
|
||||||
|
|
||||||
// Signing key to validate token. Used as fallback if SigningKeys has length 0.
|
// Signing key to validate token.
|
||||||
// Required. This or SigningKeys.
|
// This is one of the three options to provide a token validation key.
|
||||||
|
// The order of precedence is a user-defined KeyFunc, SigningKeys and SigningKey.
|
||||||
|
// Required if neither user-defined KeyFunc nor SigningKeys is provided.
|
||||||
SigningKey interface{}
|
SigningKey interface{}
|
||||||
|
|
||||||
// Map of signing keys to validate token with kid field usage.
|
// Map of signing keys to validate token with kid field usage.
|
||||||
// Required. This or SigningKey.
|
// This is one of the three options to provide a token validation key.
|
||||||
|
// The order of precedence is a user-defined KeyFunc, SigningKeys and SigningKey.
|
||||||
|
// Required if neither user-defined KeyFunc nor SigningKey is provided.
|
||||||
SigningKeys map[string]interface{}
|
SigningKeys map[string]interface{}
|
||||||
|
|
||||||
// Signing method, used to check token signing method.
|
// Signing method used to check the token's signing algorithm.
|
||||||
// Optional. Default value HS256.
|
// Optional. Default value HS256.
|
||||||
SigningMethod string
|
SigningMethod string
|
||||||
|
|
||||||
@ -64,7 +68,16 @@ type (
|
|||||||
// Optional. Default value "Bearer".
|
// Optional. Default value "Bearer".
|
||||||
AuthScheme string
|
AuthScheme string
|
||||||
|
|
||||||
keyFunc jwt.Keyfunc
|
// KeyFunc defines a user-defined function that supplies the public key for a token validation.
|
||||||
|
// The function shall take care of verifying the signing algorithm and selecting the proper key.
|
||||||
|
// A user-defined KeyFunc can be useful if tokens are issued by an external party.
|
||||||
|
//
|
||||||
|
// When a user-defined KeyFunc is provided, SigningKey, SigningKeys, and SigningMethod are ignored.
|
||||||
|
// This is one of the three options to provide a token validation key.
|
||||||
|
// The order of precedence is a user-defined KeyFunc, SigningKeys and SigningKey.
|
||||||
|
// Required if neither SigningKeys nor SigningKey is provided.
|
||||||
|
// Default to an internal implementation verifying the signing algorithm and selecting the proper key.
|
||||||
|
KeyFunc jwt.Keyfunc
|
||||||
}
|
}
|
||||||
|
|
||||||
// JWTSuccessHandler defines a function which is executed for a valid token.
|
// JWTSuccessHandler defines a function which is executed for a valid token.
|
||||||
@ -99,6 +112,7 @@ var (
|
|||||||
TokenLookup: "header:" + echo.HeaderAuthorization,
|
TokenLookup: "header:" + echo.HeaderAuthorization,
|
||||||
AuthScheme: "Bearer",
|
AuthScheme: "Bearer",
|
||||||
Claims: jwt.MapClaims{},
|
Claims: jwt.MapClaims{},
|
||||||
|
KeyFunc: nil,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -123,7 +137,7 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc {
|
|||||||
if config.Skipper == nil {
|
if config.Skipper == nil {
|
||||||
config.Skipper = DefaultJWTConfig.Skipper
|
config.Skipper = DefaultJWTConfig.Skipper
|
||||||
}
|
}
|
||||||
if config.SigningKey == nil && len(config.SigningKeys) == 0 {
|
if config.SigningKey == nil && len(config.SigningKeys) == 0 && config.KeyFunc == nil {
|
||||||
panic("echo: jwt middleware requires signing key")
|
panic("echo: jwt middleware requires signing key")
|
||||||
}
|
}
|
||||||
if config.SigningMethod == "" {
|
if config.SigningMethod == "" {
|
||||||
@ -141,35 +155,29 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc {
|
|||||||
if config.AuthScheme == "" {
|
if config.AuthScheme == "" {
|
||||||
config.AuthScheme = DefaultJWTConfig.AuthScheme
|
config.AuthScheme = DefaultJWTConfig.AuthScheme
|
||||||
}
|
}
|
||||||
config.keyFunc = func(t *jwt.Token) (interface{}, error) {
|
if config.KeyFunc == nil {
|
||||||
// Check the signing method
|
config.KeyFunc = config.defaultKeyFunc
|
||||||
if t.Method.Alg() != config.SigningMethod {
|
|
||||||
return nil, fmt.Errorf("unexpected jwt signing method=%v", t.Header["alg"])
|
|
||||||
}
|
|
||||||
if len(config.SigningKeys) > 0 {
|
|
||||||
if kid, ok := t.Header["kid"].(string); ok {
|
|
||||||
if key, ok := config.SigningKeys[kid]; ok {
|
|
||||||
return key, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, fmt.Errorf("unexpected jwt key id=%v", t.Header["kid"])
|
|
||||||
}
|
|
||||||
|
|
||||||
return config.SigningKey, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize
|
// Initialize
|
||||||
parts := strings.Split(config.TokenLookup, ":")
|
// Split sources
|
||||||
extractor := jwtFromHeader(parts[1], config.AuthScheme)
|
sources := strings.Split(config.TokenLookup, ",")
|
||||||
|
var extractors []jwtExtractor
|
||||||
|
for _, source := range sources {
|
||||||
|
parts := strings.Split(source, ":")
|
||||||
|
|
||||||
switch parts[0] {
|
switch parts[0] {
|
||||||
case "query":
|
case "query":
|
||||||
extractor = jwtFromQuery(parts[1])
|
extractors = append(extractors, jwtFromQuery(parts[1]))
|
||||||
case "param":
|
case "param":
|
||||||
extractor = jwtFromParam(parts[1])
|
extractors = append(extractors, jwtFromParam(parts[1]))
|
||||||
case "cookie":
|
case "cookie":
|
||||||
extractor = jwtFromCookie(parts[1])
|
extractors = append(extractors, jwtFromCookie(parts[1]))
|
||||||
case "form":
|
case "form":
|
||||||
extractor = jwtFromForm(parts[1])
|
extractors = append(extractors, jwtFromForm(parts[1]))
|
||||||
|
case "header":
|
||||||
|
extractors = append(extractors, jwtFromHeader(parts[1], config.AuthScheme))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return func(next echo.HandlerFunc) echo.HandlerFunc {
|
return func(next echo.HandlerFunc) echo.HandlerFunc {
|
||||||
@ -181,8 +189,17 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc {
|
|||||||
if config.BeforeFunc != nil {
|
if config.BeforeFunc != nil {
|
||||||
config.BeforeFunc(c)
|
config.BeforeFunc(c)
|
||||||
}
|
}
|
||||||
|
var auth string
|
||||||
auth, err := extractor(c)
|
var err error
|
||||||
|
for _, extractor := range extractors {
|
||||||
|
// Extract token from extractor, if it's not fail break the loop and
|
||||||
|
// set auth
|
||||||
|
auth, err = extractor(c)
|
||||||
|
if err == nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// If none of extractor has a token, handle error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if config.ErrorHandler != nil {
|
if config.ErrorHandler != nil {
|
||||||
return config.ErrorHandler(err)
|
return config.ErrorHandler(err)
|
||||||
@ -193,14 +210,15 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc {
|
|||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
token := new(jwt.Token)
|
token := new(jwt.Token)
|
||||||
// Issue #647, #656
|
// Issue #647, #656
|
||||||
if _, ok := config.Claims.(jwt.MapClaims); ok {
|
if _, ok := config.Claims.(jwt.MapClaims); ok {
|
||||||
token, err = jwt.Parse(auth, config.keyFunc)
|
token, err = jwt.Parse(auth, config.KeyFunc)
|
||||||
} else {
|
} else {
|
||||||
t := reflect.ValueOf(config.Claims).Type().Elem()
|
t := reflect.ValueOf(config.Claims).Type().Elem()
|
||||||
claims := reflect.New(t).Interface().(jwt.Claims)
|
claims := reflect.New(t).Interface().(jwt.Claims)
|
||||||
token, err = jwt.ParseWithClaims(auth, claims, config.keyFunc)
|
token, err = jwt.ParseWithClaims(auth, claims, config.KeyFunc)
|
||||||
}
|
}
|
||||||
if err == nil && token.Valid {
|
if err == nil && token.Valid {
|
||||||
// Store user information from token into context.
|
// Store user information from token into context.
|
||||||
@ -225,6 +243,24 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// defaultKeyFunc returns a signing key of the given token.
|
||||||
|
func (config *JWTConfig) defaultKeyFunc(t *jwt.Token) (interface{}, error) {
|
||||||
|
// Check the signing method
|
||||||
|
if t.Method.Alg() != config.SigningMethod {
|
||||||
|
return nil, fmt.Errorf("unexpected jwt signing method=%v", t.Header["alg"])
|
||||||
|
}
|
||||||
|
if len(config.SigningKeys) > 0 {
|
||||||
|
if kid, ok := t.Header["kid"].(string); ok {
|
||||||
|
if key, ok := config.SigningKeys[kid]; ok {
|
||||||
|
return key, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil, fmt.Errorf("unexpected jwt key id=%v", t.Header["kid"])
|
||||||
|
}
|
||||||
|
|
||||||
|
return config.SigningKey, nil
|
||||||
|
}
|
||||||
|
|
||||||
// jwtFromHeader returns a `jwtExtractor` that extracts token from the request header.
|
// jwtFromHeader returns a `jwtExtractor` that extracts token from the request header.
|
||||||
func jwtFromHeader(header string, authScheme string) jwtExtractor {
|
func jwtFromHeader(header string, authScheme string) jwtExtractor {
|
||||||
return func(c echo.Context) (string, error) {
|
return func(c echo.Context) (string, error) {
|
||||||
|
13
vendor/github.com/labstack/echo/v4/middleware/key_auth.go
generated
vendored
13
vendor/github.com/labstack/echo/v4/middleware/key_auth.go
generated
vendored
@ -30,12 +30,19 @@ type (
|
|||||||
// Validator is a function to validate key.
|
// Validator is a function to validate key.
|
||||||
// Required.
|
// Required.
|
||||||
Validator KeyAuthValidator
|
Validator KeyAuthValidator
|
||||||
|
|
||||||
|
// ErrorHandler defines a function which is executed for an invalid key.
|
||||||
|
// It may be used to define a custom error.
|
||||||
|
ErrorHandler KeyAuthErrorHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
// KeyAuthValidator defines a function to validate KeyAuth credentials.
|
// KeyAuthValidator defines a function to validate KeyAuth credentials.
|
||||||
KeyAuthValidator func(string, echo.Context) (bool, error)
|
KeyAuthValidator func(string, echo.Context) (bool, error)
|
||||||
|
|
||||||
keyExtractor func(echo.Context) (string, error)
|
keyExtractor func(echo.Context) (string, error)
|
||||||
|
|
||||||
|
// KeyAuthErrorHandler defines a function which is executed for an invalid key.
|
||||||
|
KeyAuthErrorHandler func(error, echo.Context) error
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -95,10 +102,16 @@ func KeyAuthWithConfig(config KeyAuthConfig) echo.MiddlewareFunc {
|
|||||||
// Extract and verify key
|
// Extract and verify key
|
||||||
key, err := extractor(c)
|
key, err := extractor(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if config.ErrorHandler != nil {
|
||||||
|
return config.ErrorHandler(err, c)
|
||||||
|
}
|
||||||
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
|
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
|
||||||
}
|
}
|
||||||
valid, err := config.Validator(key, c)
|
valid, err := config.Validator(key, c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if config.ErrorHandler != nil {
|
||||||
|
return config.ErrorHandler(err, c)
|
||||||
|
}
|
||||||
return &echo.HTTPError{
|
return &echo.HTTPError{
|
||||||
Code: http.StatusUnauthorized,
|
Code: http.StatusUnauthorized,
|
||||||
Message: "invalid key",
|
Message: "invalid key",
|
||||||
|
37
vendor/github.com/labstack/echo/v4/middleware/proxy.go
generated
vendored
37
vendor/github.com/labstack/echo/v4/middleware/proxy.go
generated
vendored
@ -1,13 +1,16 @@
|
|||||||
package middleware
|
package middleware
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/http/httputil"
|
||||||
"net/url"
|
"net/url"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
@ -264,3 +267,37 @@ func ProxyWithConfig(config ProxyConfig) echo.MiddlewareFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StatusCodeContextCanceled is a custom HTTP status code for situations
|
||||||
|
// where a client unexpectedly closed the connection to the server.
|
||||||
|
// As there is no standard error code for "client closed connection", but
|
||||||
|
// various well-known HTTP clients and server implement this HTTP code we use
|
||||||
|
// 499 too instead of the more problematic 5xx, which does not allow to detect this situation
|
||||||
|
const StatusCodeContextCanceled = 499
|
||||||
|
|
||||||
|
func proxyHTTP(tgt *ProxyTarget, c echo.Context, config ProxyConfig) http.Handler {
|
||||||
|
proxy := httputil.NewSingleHostReverseProxy(tgt.URL)
|
||||||
|
proxy.ErrorHandler = func(resp http.ResponseWriter, req *http.Request, err error) {
|
||||||
|
desc := tgt.URL.String()
|
||||||
|
if tgt.Name != "" {
|
||||||
|
desc = fmt.Sprintf("%s(%s)", tgt.Name, tgt.URL.String())
|
||||||
|
}
|
||||||
|
// If the client canceled the request (usually by closing the connection), we can report a
|
||||||
|
// client error (4xx) instead of a server error (5xx) to correctly identify the situation.
|
||||||
|
// The Go standard library (at of late 2020) wraps the exported, standard
|
||||||
|
// context.Canceled error with unexported garbage value requiring a substring check, see
|
||||||
|
// https://github.com/golang/go/blob/6965b01ea248cabb70c3749fd218b36089a21efb/src/net/net.go#L416-L430
|
||||||
|
if err == context.Canceled || strings.Contains(err.Error(), "operation was canceled") {
|
||||||
|
httpError := echo.NewHTTPError(StatusCodeContextCanceled, fmt.Sprintf("client closed connection: %v", err))
|
||||||
|
httpError.Internal = err
|
||||||
|
c.Set("_error", httpError)
|
||||||
|
} else {
|
||||||
|
httpError := echo.NewHTTPError(http.StatusBadGateway, fmt.Sprintf("remote %s unreachable, could not forward: %v", desc, err))
|
||||||
|
httpError.Internal = err
|
||||||
|
c.Set("_error", httpError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
proxy.Transport = config.Transport
|
||||||
|
proxy.ModifyResponse = config.ModifyResponse
|
||||||
|
return proxy
|
||||||
|
}
|
||||||
|
47
vendor/github.com/labstack/echo/v4/middleware/proxy_1_11.go
generated
vendored
47
vendor/github.com/labstack/echo/v4/middleware/proxy_1_11.go
generated
vendored
@ -1,47 +0,0 @@
|
|||||||
// +build go1.11
|
|
||||||
|
|
||||||
package middleware
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"net/http"
|
|
||||||
"net/http/httputil"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/labstack/echo/v4"
|
|
||||||
)
|
|
||||||
|
|
||||||
// StatusCodeContextCanceled is a custom HTTP status code for situations
|
|
||||||
// where a client unexpectedly closed the connection to the server.
|
|
||||||
// As there is no standard error code for "client closed connection", but
|
|
||||||
// various well-known HTTP clients and server implement this HTTP code we use
|
|
||||||
// 499 too instead of the more problematic 5xx, which does not allow to detect this situation
|
|
||||||
const StatusCodeContextCanceled = 499
|
|
||||||
|
|
||||||
func proxyHTTP(tgt *ProxyTarget, c echo.Context, config ProxyConfig) http.Handler {
|
|
||||||
proxy := httputil.NewSingleHostReverseProxy(tgt.URL)
|
|
||||||
proxy.ErrorHandler = func(resp http.ResponseWriter, req *http.Request, err error) {
|
|
||||||
desc := tgt.URL.String()
|
|
||||||
if tgt.Name != "" {
|
|
||||||
desc = fmt.Sprintf("%s(%s)", tgt.Name, tgt.URL.String())
|
|
||||||
}
|
|
||||||
// If the client canceled the request (usually by closing the connection), we can report a
|
|
||||||
// client error (4xx) instead of a server error (5xx) to correctly identify the situation.
|
|
||||||
// The Go standard library (at of late 2020) wraps the exported, standard
|
|
||||||
// context.Canceled error with unexported garbage value requiring a substring check, see
|
|
||||||
// https://github.com/golang/go/blob/6965b01ea248cabb70c3749fd218b36089a21efb/src/net/net.go#L416-L430
|
|
||||||
if err == context.Canceled || strings.Contains(err.Error(), "operation was canceled") {
|
|
||||||
httpError := echo.NewHTTPError(StatusCodeContextCanceled, fmt.Sprintf("client closed connection: %v", err))
|
|
||||||
httpError.Internal = err
|
|
||||||
c.Set("_error", httpError)
|
|
||||||
} else {
|
|
||||||
httpError := echo.NewHTTPError(http.StatusBadGateway, fmt.Sprintf("remote %s unreachable, could not forward: %v", desc, err))
|
|
||||||
httpError.Internal = err
|
|
||||||
c.Set("_error", httpError)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
proxy.Transport = config.Transport
|
|
||||||
proxy.ModifyResponse = config.ModifyResponse
|
|
||||||
return proxy
|
|
||||||
}
|
|
14
vendor/github.com/labstack/echo/v4/middleware/proxy_1_11_n.go
generated
vendored
14
vendor/github.com/labstack/echo/v4/middleware/proxy_1_11_n.go
generated
vendored
@ -1,14 +0,0 @@
|
|||||||
// +build !go1.11
|
|
||||||
|
|
||||||
package middleware
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
"net/http/httputil"
|
|
||||||
|
|
||||||
"github.com/labstack/echo/v4"
|
|
||||||
)
|
|
||||||
|
|
||||||
func proxyHTTP(t *ProxyTarget, c echo.Context, config ProxyConfig) http.Handler {
|
|
||||||
return httputil.NewSingleHostReverseProxy(t.URL)
|
|
||||||
}
|
|
88
vendor/github.com/labstack/echo/v4/middleware/static.go
generated
vendored
88
vendor/github.com/labstack/echo/v4/middleware/static.go
generated
vendored
@ -42,6 +42,10 @@ type (
|
|||||||
// the filesystem path is not doubled
|
// the filesystem path is not doubled
|
||||||
// Optional. Default value false.
|
// Optional. Default value false.
|
||||||
IgnoreBase bool `yaml:"ignoreBase"`
|
IgnoreBase bool `yaml:"ignoreBase"`
|
||||||
|
|
||||||
|
// Filesystem provides access to the static content.
|
||||||
|
// Optional. Defaults to http.Dir(config.Root)
|
||||||
|
Filesystem http.FileSystem `yaml:"-"`
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -146,6 +150,10 @@ func StaticWithConfig(config StaticConfig) echo.MiddlewareFunc {
|
|||||||
if config.Index == "" {
|
if config.Index == "" {
|
||||||
config.Index = DefaultStaticConfig.Index
|
config.Index = DefaultStaticConfig.Index
|
||||||
}
|
}
|
||||||
|
if config.Filesystem == nil {
|
||||||
|
config.Filesystem = http.Dir(config.Root)
|
||||||
|
config.Root = "."
|
||||||
|
}
|
||||||
|
|
||||||
// Index template
|
// Index template
|
||||||
t, err := template.New("index").Parse(html)
|
t, err := template.New("index").Parse(html)
|
||||||
@ -178,49 +186,73 @@ func StaticWithConfig(config StaticConfig) echo.MiddlewareFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fi, err := os.Stat(name)
|
file, err := openFile(config.Filesystem, name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
if !os.IsNotExist(err) {
|
||||||
if err = next(c); err != nil {
|
return err
|
||||||
if he, ok := err.(*echo.HTTPError); ok {
|
|
||||||
if config.HTML5 && he.Code == http.StatusNotFound {
|
|
||||||
return c.File(filepath.Join(config.Root, config.Index))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if fi.IsDir() {
|
if err = next(c); err == nil {
|
||||||
index := filepath.Join(name, config.Index)
|
return err
|
||||||
fi, err = os.Stat(index)
|
}
|
||||||
|
|
||||||
|
he, ok := err.(*echo.HTTPError)
|
||||||
|
if !(ok && config.HTML5 && he.Code == http.StatusNotFound) {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
file, err = openFile(config.Filesystem, filepath.Join(config.Root, config.Index))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
info, err := file.Stat()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if info.IsDir() {
|
||||||
|
index, err := openFile(config.Filesystem, filepath.Join(name, config.Index))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if config.Browse {
|
if config.Browse {
|
||||||
return listDir(t, name, c.Response())
|
return listDir(t, name, file, c.Response())
|
||||||
}
|
}
|
||||||
|
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return next(c)
|
return next(c)
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.File(index)
|
defer index.Close()
|
||||||
}
|
|
||||||
|
|
||||||
return c.File(name)
|
info, err = index.Stat()
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func listDir(t *template.Template, name string, res *echo.Response) (err error) {
|
|
||||||
file, err := os.Open(name)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
files, err := file.Readdir(-1)
|
|
||||||
|
return serveFile(c, index, info)
|
||||||
|
}
|
||||||
|
|
||||||
|
return serveFile(c, file, info)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func openFile(fs http.FileSystem, name string) (http.File, error) {
|
||||||
|
pathWithSlashes := filepath.ToSlash(name)
|
||||||
|
return fs.Open(pathWithSlashes)
|
||||||
|
}
|
||||||
|
|
||||||
|
func serveFile(c echo.Context, file http.File, info os.FileInfo) error {
|
||||||
|
http.ServeContent(c.Response(), c.Request(), info.Name(), info.ModTime(), file)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func listDir(t *template.Template, name string, dir http.File, res *echo.Response) (err error) {
|
||||||
|
files, err := dir.Readdir(-1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
11
vendor/github.com/labstack/echo/v4/middleware/timeout.go
generated
vendored
11
vendor/github.com/labstack/echo/v4/middleware/timeout.go
generated
vendored
@ -1,5 +1,3 @@
|
|||||||
// +build go1.13
|
|
||||||
|
|
||||||
package middleware
|
package middleware
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -94,6 +92,15 @@ func (t echoHandlerFuncWrapper) ServeHTTP(rw http.ResponseWriter, r *http.Reques
|
|||||||
originalWriter := t.ctx.Response().Writer
|
originalWriter := t.ctx.Response().Writer
|
||||||
t.ctx.Response().Writer = rw
|
t.ctx.Response().Writer = rw
|
||||||
|
|
||||||
|
// in case of panic we restore original writer and call panic again
|
||||||
|
// so it could be handled with global middleware Recover()
|
||||||
|
defer func() {
|
||||||
|
if err := recover(); err != nil {
|
||||||
|
t.ctx.Response().Writer = originalWriter
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
err := t.handler(t.ctx)
|
err := t.handler(t.ctx)
|
||||||
if ctxErr := r.Context().Err(); ctxErr == context.DeadlineExceeded {
|
if ctxErr := r.Context().Err(); ctxErr == context.DeadlineExceeded {
|
||||||
if err != nil && t.errHandler != nil {
|
if err != nil && t.errHandler != nil {
|
||||||
|
105
vendor/github.com/labstack/echo/v4/router.go
generated
vendored
105
vendor/github.com/labstack/echo/v4/router.go
generated
vendored
@ -23,6 +23,10 @@ type (
|
|||||||
methodHandler *methodHandler
|
methodHandler *methodHandler
|
||||||
paramChild *node
|
paramChild *node
|
||||||
anyChild *node
|
anyChild *node
|
||||||
|
// isLeaf indicates that node does not have child routes
|
||||||
|
isLeaf bool
|
||||||
|
// isHandler indicates that node has at least one handler registered to it
|
||||||
|
isHandler bool
|
||||||
}
|
}
|
||||||
kind uint8
|
kind uint8
|
||||||
children []*node
|
children []*node
|
||||||
@ -50,6 +54,20 @@ const (
|
|||||||
anyLabel = byte('*')
|
anyLabel = byte('*')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (m *methodHandler) isHandler() bool {
|
||||||
|
return m.connect != nil ||
|
||||||
|
m.delete != nil ||
|
||||||
|
m.get != nil ||
|
||||||
|
m.head != nil ||
|
||||||
|
m.options != nil ||
|
||||||
|
m.patch != nil ||
|
||||||
|
m.post != nil ||
|
||||||
|
m.propfind != nil ||
|
||||||
|
m.put != nil ||
|
||||||
|
m.trace != nil ||
|
||||||
|
m.report != nil
|
||||||
|
}
|
||||||
|
|
||||||
// NewRouter returns a new Router instance.
|
// NewRouter returns a new Router instance.
|
||||||
func NewRouter(e *Echo) *Router {
|
func NewRouter(e *Echo) *Router {
|
||||||
return &Router{
|
return &Router{
|
||||||
@ -73,6 +91,11 @@ func (r *Router) Add(method, path string, h HandlerFunc) {
|
|||||||
pnames := []string{} // Param names
|
pnames := []string{} // Param names
|
||||||
ppath := path // Pristine path
|
ppath := path // Pristine path
|
||||||
|
|
||||||
|
if h == nil && r.echo.Logger != nil {
|
||||||
|
// FIXME: in future we should return error
|
||||||
|
r.echo.Logger.Errorf("Adding route without handler function: %v:%v", method, path)
|
||||||
|
}
|
||||||
|
|
||||||
for i, lcpIndex := 0, len(path); i < lcpIndex; i++ {
|
for i, lcpIndex := 0, len(path); i < lcpIndex; i++ {
|
||||||
if path[i] == ':' {
|
if path[i] == ':' {
|
||||||
j := i + 1
|
j := i + 1
|
||||||
@ -86,6 +109,7 @@ func (r *Router) Add(method, path string, h HandlerFunc) {
|
|||||||
i, lcpIndex = j, len(path)
|
i, lcpIndex = j, len(path)
|
||||||
|
|
||||||
if i == lcpIndex {
|
if i == lcpIndex {
|
||||||
|
// path node is last fragment of route path. ie. `/users/:id`
|
||||||
r.insert(method, path[:i], h, paramKind, ppath, pnames)
|
r.insert(method, path[:i], h, paramKind, ppath, pnames)
|
||||||
} else {
|
} else {
|
||||||
r.insert(method, path[:i], nil, paramKind, "", nil)
|
r.insert(method, path[:i], nil, paramKind, "", nil)
|
||||||
@ -136,6 +160,7 @@ func (r *Router) insert(method, path string, h HandlerFunc, t kind, ppath string
|
|||||||
currentNode.ppath = ppath
|
currentNode.ppath = ppath
|
||||||
currentNode.pnames = pnames
|
currentNode.pnames = pnames
|
||||||
}
|
}
|
||||||
|
currentNode.isLeaf = currentNode.staticChildren == nil && currentNode.paramChild == nil && currentNode.anyChild == nil
|
||||||
} else if lcpLen < prefixLen {
|
} else if lcpLen < prefixLen {
|
||||||
// Split node
|
// Split node
|
||||||
n := newNode(
|
n := newNode(
|
||||||
@ -149,7 +174,6 @@ func (r *Router) insert(method, path string, h HandlerFunc, t kind, ppath string
|
|||||||
currentNode.paramChild,
|
currentNode.paramChild,
|
||||||
currentNode.anyChild,
|
currentNode.anyChild,
|
||||||
)
|
)
|
||||||
|
|
||||||
// Update parent path for all children to new node
|
// Update parent path for all children to new node
|
||||||
for _, child := range currentNode.staticChildren {
|
for _, child := range currentNode.staticChildren {
|
||||||
child.parent = n
|
child.parent = n
|
||||||
@ -171,6 +195,8 @@ func (r *Router) insert(method, path string, h HandlerFunc, t kind, ppath string
|
|||||||
currentNode.pnames = nil
|
currentNode.pnames = nil
|
||||||
currentNode.paramChild = nil
|
currentNode.paramChild = nil
|
||||||
currentNode.anyChild = nil
|
currentNode.anyChild = nil
|
||||||
|
currentNode.isLeaf = false
|
||||||
|
currentNode.isHandler = false
|
||||||
|
|
||||||
// Only Static children could reach here
|
// Only Static children could reach here
|
||||||
currentNode.addStaticChild(n)
|
currentNode.addStaticChild(n)
|
||||||
@ -188,6 +214,7 @@ func (r *Router) insert(method, path string, h HandlerFunc, t kind, ppath string
|
|||||||
// Only Static children could reach here
|
// Only Static children could reach here
|
||||||
currentNode.addStaticChild(n)
|
currentNode.addStaticChild(n)
|
||||||
}
|
}
|
||||||
|
currentNode.isLeaf = currentNode.staticChildren == nil && currentNode.paramChild == nil && currentNode.anyChild == nil
|
||||||
} else if lcpLen < searchLen {
|
} else if lcpLen < searchLen {
|
||||||
search = search[lcpLen:]
|
search = search[lcpLen:]
|
||||||
c := currentNode.findChildWithLabel(search[0])
|
c := currentNode.findChildWithLabel(search[0])
|
||||||
@ -207,6 +234,7 @@ func (r *Router) insert(method, path string, h HandlerFunc, t kind, ppath string
|
|||||||
case anyKind:
|
case anyKind:
|
||||||
currentNode.anyChild = n
|
currentNode.anyChild = n
|
||||||
}
|
}
|
||||||
|
currentNode.isLeaf = currentNode.staticChildren == nil && currentNode.paramChild == nil && currentNode.anyChild == nil
|
||||||
} else {
|
} else {
|
||||||
// Node already exists
|
// Node already exists
|
||||||
if h != nil {
|
if h != nil {
|
||||||
@ -233,6 +261,8 @@ func newNode(t kind, pre string, p *node, sc children, mh *methodHandler, ppath
|
|||||||
methodHandler: mh,
|
methodHandler: mh,
|
||||||
paramChild: paramChildren,
|
paramChild: paramChildren,
|
||||||
anyChild: anyChildren,
|
anyChild: anyChildren,
|
||||||
|
isLeaf: sc == nil && paramChildren == nil && anyChildren == nil,
|
||||||
|
isHandler: mh.isHandler(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,6 +319,12 @@ func (n *node) addHandler(method string, h HandlerFunc) {
|
|||||||
case REPORT:
|
case REPORT:
|
||||||
n.methodHandler.report = h
|
n.methodHandler.report = h
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if h != nil {
|
||||||
|
n.isHandler = true
|
||||||
|
} else {
|
||||||
|
n.isHandler = n.methodHandler.isHandler()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *node) findHandler(method string) HandlerFunc {
|
func (n *node) findHandler(method string) HandlerFunc {
|
||||||
@ -343,6 +379,8 @@ func (r *Router) Find(method, path string, c Context) {
|
|||||||
currentNode := r.tree // Current node as root
|
currentNode := r.tree // Current node as root
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
previousBestMatchNode *node
|
||||||
|
matchedHandler HandlerFunc
|
||||||
// search stores the remaining path to check for match. By each iteration we move from start of path to end of the path
|
// search stores the remaining path to check for match. By each iteration we move from start of path to end of the path
|
||||||
// and search value gets shorter and shorter.
|
// and search value gets shorter and shorter.
|
||||||
search = path
|
search = path
|
||||||
@ -362,10 +400,11 @@ func (r *Router) Find(method, path string, c Context) {
|
|||||||
valid = currentNode != nil
|
valid = currentNode != nil
|
||||||
|
|
||||||
// Next node type by priority
|
// Next node type by priority
|
||||||
// NOTE: With the current implementation we never backtrack from an `any` route, so `previous.kind` is
|
if previous.kind == anyKind {
|
||||||
// always `static` or `any`
|
nextNodeKind = staticKind
|
||||||
// If this is changed then for any route next kind would be `static` and this statement should be changed
|
} else {
|
||||||
nextNodeKind = previous.kind + 1
|
nextNodeKind = previous.kind + 1
|
||||||
|
}
|
||||||
|
|
||||||
if fromKind == staticKind {
|
if fromKind == staticKind {
|
||||||
// when backtracking is done from static kind block we did not change search so nothing to restore
|
// when backtracking is done from static kind block we did not change search so nothing to restore
|
||||||
@ -380,6 +419,7 @@ func (r *Router) Find(method, path string, c Context) {
|
|||||||
// for param/any node.prefix value is always `:` so we can not deduce searchIndex from that and must use pValue
|
// for param/any node.prefix value is always `:` so we can not deduce searchIndex from that and must use pValue
|
||||||
// for that index as it would also contain part of path we cut off before moving into node we are backtracking from
|
// for that index as it would also contain part of path we cut off before moving into node we are backtracking from
|
||||||
searchIndex -= len(paramValues[paramIndex])
|
searchIndex -= len(paramValues[paramIndex])
|
||||||
|
paramValues[paramIndex] = ""
|
||||||
}
|
}
|
||||||
search = path[searchIndex:]
|
search = path[searchIndex:]
|
||||||
return
|
return
|
||||||
@ -421,7 +461,7 @@ func (r *Router) Find(method, path string, c Context) {
|
|||||||
// goto Any
|
// goto Any
|
||||||
} else {
|
} else {
|
||||||
// Not found (this should never be possible for static node we are looking currently)
|
// Not found (this should never be possible for static node we are looking currently)
|
||||||
return
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,10 +469,18 @@ func (r *Router) Find(method, path string, c Context) {
|
|||||||
search = search[lcpLen:]
|
search = search[lcpLen:]
|
||||||
searchIndex = searchIndex + lcpLen
|
searchIndex = searchIndex + lcpLen
|
||||||
|
|
||||||
// Finish routing if no remaining search and we are on an leaf node
|
// Finish routing if no remaining search and we are on a node with handler and matching method type
|
||||||
if search == "" && currentNode.ppath != "" {
|
if search == "" && currentNode.isHandler {
|
||||||
|
// check if current node has handler registered for http method we are looking for. we store currentNode as
|
||||||
|
// best matching in case we do no find no more routes matching this path+method
|
||||||
|
if previousBestMatchNode == nil {
|
||||||
|
previousBestMatchNode = currentNode
|
||||||
|
}
|
||||||
|
if h := currentNode.findHandler(method); h != nil {
|
||||||
|
matchedHandler = h
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Static node
|
// Static node
|
||||||
if search != "" {
|
if search != "" {
|
||||||
@ -446,10 +494,16 @@ func (r *Router) Find(method, path string, c Context) {
|
|||||||
// Param node
|
// Param node
|
||||||
if child := currentNode.paramChild; search != "" && child != nil {
|
if child := currentNode.paramChild; search != "" && child != nil {
|
||||||
currentNode = child
|
currentNode = child
|
||||||
// FIXME: when param node does not have any children then param node should act similarly to any node - consider all remaining search as match
|
i := 0
|
||||||
i, l := 0, len(search)
|
l := len(search)
|
||||||
|
if currentNode.isLeaf {
|
||||||
|
// when param node does not have any children then param node should act similarly to any node - consider all remaining search as match
|
||||||
|
i = l
|
||||||
|
} else {
|
||||||
for ; i < l && search[i] != '/'; i++ {
|
for ; i < l && search[i] != '/'; i++ {
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
paramValues[paramIndex] = search[:i]
|
paramValues[paramIndex] = search[:i]
|
||||||
paramIndex++
|
paramIndex++
|
||||||
search = search[i:]
|
search = search[i:]
|
||||||
@ -463,29 +517,50 @@ func (r *Router) Find(method, path string, c Context) {
|
|||||||
// If any node is found, use remaining path for paramValues
|
// If any node is found, use remaining path for paramValues
|
||||||
currentNode = child
|
currentNode = child
|
||||||
paramValues[len(currentNode.pnames)-1] = search
|
paramValues[len(currentNode.pnames)-1] = search
|
||||||
|
// update indexes/search in case we need to backtrack when no handler match is found
|
||||||
|
paramIndex++
|
||||||
|
searchIndex += +len(search)
|
||||||
|
search = ""
|
||||||
|
|
||||||
|
// check if current node has handler registered for http method we are looking for. we store currentNode as
|
||||||
|
// best matching in case we do no find no more routes matching this path+method
|
||||||
|
if previousBestMatchNode == nil {
|
||||||
|
previousBestMatchNode = currentNode
|
||||||
|
}
|
||||||
|
if h := currentNode.findHandler(method); h != nil {
|
||||||
|
matchedHandler = h
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Let's backtrack to the first possible alternative node of the decision path
|
// Let's backtrack to the first possible alternative node of the decision path
|
||||||
nk, ok := backtrackToNextNodeKind(anyKind)
|
nk, ok := backtrackToNextNodeKind(anyKind)
|
||||||
if !ok {
|
if !ok {
|
||||||
return // No other possibilities on the decision path
|
break // No other possibilities on the decision path
|
||||||
} else if nk == paramKind {
|
} else if nk == paramKind {
|
||||||
goto Param
|
goto Param
|
||||||
} else if nk == anyKind {
|
} else if nk == anyKind {
|
||||||
goto Any
|
goto Any
|
||||||
} else {
|
} else {
|
||||||
// Not found
|
// Not found
|
||||||
return
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.handler = currentNode.findHandler(method)
|
if currentNode == nil && previousBestMatchNode == nil {
|
||||||
|
return // nothing matched at all
|
||||||
|
}
|
||||||
|
|
||||||
|
if matchedHandler != nil {
|
||||||
|
ctx.handler = matchedHandler
|
||||||
|
} else {
|
||||||
|
// use previous match as basis. although we have no matching handler we have path match.
|
||||||
|
// so we can send http.StatusMethodNotAllowed (405) instead of http.StatusNotFound (404)
|
||||||
|
currentNode = previousBestMatchNode
|
||||||
|
ctx.handler = currentNode.checkMethodNotAllowed()
|
||||||
|
}
|
||||||
ctx.path = currentNode.ppath
|
ctx.path = currentNode.ppath
|
||||||
ctx.pnames = currentNode.pnames
|
ctx.pnames = currentNode.pnames
|
||||||
|
|
||||||
if ctx.handler == nil {
|
|
||||||
ctx.handler = currentNode.checkMethodNotAllowed()
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
1
vendor/github.com/slack-go/slack/files.go
generated
vendored
1
vendor/github.com/slack-go/slack/files.go
generated
vendored
@ -316,6 +316,7 @@ func (api *Client) UploadFileContext(ctx context.Context, params FileUploadParam
|
|||||||
}
|
}
|
||||||
if params.Content != "" {
|
if params.Content != "" {
|
||||||
values.Add("content", params.Content)
|
values.Add("content", params.Content)
|
||||||
|
values.Add("token", api.token)
|
||||||
err = api.postMethod(ctx, "files.upload", values, response)
|
err = api.postMethod(ctx, "files.upload", values, response)
|
||||||
} else if params.File != "" {
|
} else if params.File != "" {
|
||||||
err = postLocalWithMultipartResponse(ctx, api.httpclient, api.endpoint+"files.upload", params.File, "file", api.token, values, response, api)
|
err = postLocalWithMultipartResponse(ctx, api.httpclient, api.endpoint+"files.upload", params.File, "file", api.token, values, response, api)
|
||||||
|
8
vendor/github.com/slack-go/slack/views.go
generated
vendored
8
vendor/github.com/slack-go/slack/views.go
generated
vendored
@ -38,8 +38,16 @@ type View struct {
|
|||||||
BotID string `json:"bot_id"`
|
BotID string `json:"bot_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ViewSubmissionCallbackResponseURL struct {
|
||||||
|
BlockID string `json:"block_id"`
|
||||||
|
ActionID string `json:"action_id"`
|
||||||
|
ChannelID string `json:"channel_id"`
|
||||||
|
ResponseURL string `json:"response_url"`
|
||||||
|
}
|
||||||
|
|
||||||
type ViewSubmissionCallback struct {
|
type ViewSubmissionCallback struct {
|
||||||
Hash string `json:"hash"`
|
Hash string `json:"hash"`
|
||||||
|
ResponseURLs []ViewSubmissionCallbackResponseURL `json:"response_urls,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ViewClosedCallback struct {
|
type ViewClosedCallback struct {
|
||||||
|
4
vendor/golang.org/x/crypto/acme/acme.go
generated
vendored
4
vendor/golang.org/x/crypto/acme/acme.go
generated
vendored
@ -363,6 +363,10 @@ func AcceptTOS(tosURL string) bool { return true }
|
|||||||
// Also see Error's Instance field for when a CA requires already registered accounts to agree
|
// Also see Error's Instance field for when a CA requires already registered accounts to agree
|
||||||
// to an updated Terms of Service.
|
// to an updated Terms of Service.
|
||||||
func (c *Client) Register(ctx context.Context, acct *Account, prompt func(tosURL string) bool) (*Account, error) {
|
func (c *Client) Register(ctx context.Context, acct *Account, prompt func(tosURL string) bool) (*Account, error) {
|
||||||
|
if c.Key == nil {
|
||||||
|
return nil, errors.New("acme: client.Key must be set to Register")
|
||||||
|
}
|
||||||
|
|
||||||
dir, err := c.Discover(ctx)
|
dir, err := c.Discover(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
8
vendor/golang.org/x/crypto/acme/autocert/autocert.go
generated
vendored
8
vendor/golang.org/x/crypto/acme/autocert/autocert.go
generated
vendored
@ -1133,11 +1133,11 @@ func (s *certState) tlscert() (*tls.Certificate, error) {
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// certRequest generates a CSR for the given common name cn and optional SANs.
|
// certRequest generates a CSR for the given common name.
|
||||||
func certRequest(key crypto.Signer, cn string, ext []pkix.Extension, san ...string) ([]byte, error) {
|
func certRequest(key crypto.Signer, name string, ext []pkix.Extension) ([]byte, error) {
|
||||||
req := &x509.CertificateRequest{
|
req := &x509.CertificateRequest{
|
||||||
Subject: pkix.Name{CommonName: cn},
|
Subject: pkix.Name{CommonName: name},
|
||||||
DNSNames: san,
|
DNSNames: []string{name},
|
||||||
ExtraExtensions: ext,
|
ExtraExtensions: ext,
|
||||||
}
|
}
|
||||||
return x509.CreateCertificateRequest(rand.Reader, req, key)
|
return x509.CreateCertificateRequest(rand.Reader, req, key)
|
||||||
|
54
vendor/golang.org/x/crypto/acme/jws.go
generated
vendored
54
vendor/golang.org/x/crypto/acme/jws.go
generated
vendored
@ -7,6 +7,7 @@ package acme
|
|||||||
import (
|
import (
|
||||||
"crypto"
|
"crypto"
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
|
"crypto/hmac"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"crypto/rsa"
|
"crypto/rsa"
|
||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
@ -14,6 +15,7 @@ import (
|
|||||||
"encoding/asn1"
|
"encoding/asn1"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/big"
|
"math/big"
|
||||||
)
|
)
|
||||||
@ -31,6 +33,14 @@ const noKeyID = keyID("")
|
|||||||
// See https://tools.ietf.org/html/rfc8555#section-6.3 for more details.
|
// See https://tools.ietf.org/html/rfc8555#section-6.3 for more details.
|
||||||
const noPayload = ""
|
const noPayload = ""
|
||||||
|
|
||||||
|
// jsonWebSignature can be easily serialized into a JWS following
|
||||||
|
// https://tools.ietf.org/html/rfc7515#section-3.2.
|
||||||
|
type jsonWebSignature struct {
|
||||||
|
Protected string `json:"protected"`
|
||||||
|
Payload string `json:"payload"`
|
||||||
|
Sig string `json:"signature"`
|
||||||
|
}
|
||||||
|
|
||||||
// jwsEncodeJSON signs claimset using provided key and a nonce.
|
// jwsEncodeJSON signs claimset using provided key and a nonce.
|
||||||
// The result is serialized in JSON format containing either kid or jwk
|
// The result is serialized in JSON format containing either kid or jwk
|
||||||
// fields based on the provided keyID value.
|
// fields based on the provided keyID value.
|
||||||
@ -71,12 +81,7 @@ func jwsEncodeJSON(claimset interface{}, key crypto.Signer, kid keyID, nonce, ur
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
enc := jsonWebSignature{
|
||||||
enc := struct {
|
|
||||||
Protected string `json:"protected"`
|
|
||||||
Payload string `json:"payload"`
|
|
||||||
Sig string `json:"signature"`
|
|
||||||
}{
|
|
||||||
Protected: phead,
|
Protected: phead,
|
||||||
Payload: payload,
|
Payload: payload,
|
||||||
Sig: base64.RawURLEncoding.EncodeToString(sig),
|
Sig: base64.RawURLEncoding.EncodeToString(sig),
|
||||||
@ -84,6 +89,43 @@ func jwsEncodeJSON(claimset interface{}, key crypto.Signer, kid keyID, nonce, ur
|
|||||||
return json.Marshal(&enc)
|
return json.Marshal(&enc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// jwsWithMAC creates and signs a JWS using the given key and the HS256
|
||||||
|
// algorithm. kid and url are included in the protected header. rawPayload
|
||||||
|
// should not be base64-URL-encoded.
|
||||||
|
func jwsWithMAC(key []byte, kid, url string, rawPayload []byte) (*jsonWebSignature, error) {
|
||||||
|
if len(key) == 0 {
|
||||||
|
return nil, errors.New("acme: cannot sign JWS with an empty MAC key")
|
||||||
|
}
|
||||||
|
header := struct {
|
||||||
|
Algorithm string `json:"alg"`
|
||||||
|
KID string `json:"kid"`
|
||||||
|
URL string `json:"url,omitempty"`
|
||||||
|
}{
|
||||||
|
// Only HMAC-SHA256 is supported.
|
||||||
|
Algorithm: "HS256",
|
||||||
|
KID: kid,
|
||||||
|
URL: url,
|
||||||
|
}
|
||||||
|
rawProtected, err := json.Marshal(header)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
protected := base64.RawURLEncoding.EncodeToString(rawProtected)
|
||||||
|
payload := base64.RawURLEncoding.EncodeToString(rawPayload)
|
||||||
|
|
||||||
|
h := hmac.New(sha256.New, key)
|
||||||
|
if _, err := h.Write([]byte(protected + "." + payload)); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
mac := h.Sum(nil)
|
||||||
|
|
||||||
|
return &jsonWebSignature{
|
||||||
|
Protected: protected,
|
||||||
|
Payload: payload,
|
||||||
|
Sig: base64.RawURLEncoding.EncodeToString(mac),
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
// jwkEncode encodes public part of an RSA or ECDSA key into a JWK.
|
// jwkEncode encodes public part of an RSA or ECDSA key into a JWK.
|
||||||
// The result is also suitable for creating a JWK thumbprint.
|
// The result is also suitable for creating a JWK thumbprint.
|
||||||
// https://tools.ietf.org/html/rfc7517
|
// https://tools.ietf.org/html/rfc7517
|
||||||
|
26
vendor/golang.org/x/crypto/acme/rfc8555.go
generated
vendored
26
vendor/golang.org/x/crypto/acme/rfc8555.go
generated
vendored
@ -37,9 +37,8 @@ func (c *Client) DeactivateReg(ctx context.Context) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// registerRFC is quivalent to c.Register but for CAs implementing RFC 8555.
|
// registerRFC is equivalent to c.Register but for CAs implementing RFC 8555.
|
||||||
// It expects c.Discover to have already been called.
|
// It expects c.Discover to have already been called.
|
||||||
// TODO: Implement externalAccountBinding.
|
|
||||||
func (c *Client) registerRFC(ctx context.Context, acct *Account, prompt func(tosURL string) bool) (*Account, error) {
|
func (c *Client) registerRFC(ctx context.Context, acct *Account, prompt func(tosURL string) bool) (*Account, error) {
|
||||||
c.cacheMu.Lock() // guard c.kid access
|
c.cacheMu.Lock() // guard c.kid access
|
||||||
defer c.cacheMu.Unlock()
|
defer c.cacheMu.Unlock()
|
||||||
@ -47,12 +46,23 @@ func (c *Client) registerRFC(ctx context.Context, acct *Account, prompt func(tos
|
|||||||
req := struct {
|
req := struct {
|
||||||
TermsAgreed bool `json:"termsOfServiceAgreed,omitempty"`
|
TermsAgreed bool `json:"termsOfServiceAgreed,omitempty"`
|
||||||
Contact []string `json:"contact,omitempty"`
|
Contact []string `json:"contact,omitempty"`
|
||||||
|
ExternalAccountBinding *jsonWebSignature `json:"externalAccountBinding,omitempty"`
|
||||||
}{
|
}{
|
||||||
Contact: acct.Contact,
|
Contact: acct.Contact,
|
||||||
}
|
}
|
||||||
if c.dir.Terms != "" {
|
if c.dir.Terms != "" {
|
||||||
req.TermsAgreed = prompt(c.dir.Terms)
|
req.TermsAgreed = prompt(c.dir.Terms)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set 'externalAccountBinding' field if requested
|
||||||
|
if acct.ExternalAccountBinding != nil {
|
||||||
|
eabJWS, err := c.encodeExternalAccountBinding(acct.ExternalAccountBinding)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("acme: failed to encode external account binding: %v", err)
|
||||||
|
}
|
||||||
|
req.ExternalAccountBinding = eabJWS
|
||||||
|
}
|
||||||
|
|
||||||
res, err := c.post(ctx, c.Key, c.dir.RegURL, req, wantStatus(
|
res, err := c.post(ctx, c.Key, c.dir.RegURL, req, wantStatus(
|
||||||
http.StatusOK, // account with this key already registered
|
http.StatusOK, // account with this key already registered
|
||||||
http.StatusCreated, // new account created
|
http.StatusCreated, // new account created
|
||||||
@ -75,7 +85,17 @@ func (c *Client) registerRFC(ctx context.Context, acct *Account, prompt func(tos
|
|||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// updateGegRFC is equivalent to c.UpdateReg but for CAs implementing RFC 8555.
|
// encodeExternalAccountBinding will encode an external account binding stanza
|
||||||
|
// as described in https://tools.ietf.org/html/rfc8555#section-7.3.4.
|
||||||
|
func (c *Client) encodeExternalAccountBinding(eab *ExternalAccountBinding) (*jsonWebSignature, error) {
|
||||||
|
jwk, err := jwkEncode(c.Key.Public())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return jwsWithMAC(eab.Key, eab.KID, c.dir.RegURL, []byte(jwk))
|
||||||
|
}
|
||||||
|
|
||||||
|
// updateRegRFC is equivalent to c.UpdateReg but for CAs implementing RFC 8555.
|
||||||
// It expects c.Discover to have already been called.
|
// It expects c.Discover to have already been called.
|
||||||
func (c *Client) updateRegRFC(ctx context.Context, a *Account) (*Account, error) {
|
func (c *Client) updateRegRFC(ctx context.Context, a *Account) (*Account, error) {
|
||||||
url := string(c.accountKID(ctx))
|
url := string(c.accountKID(ctx))
|
||||||
|
22
vendor/golang.org/x/crypto/acme/types.go
generated
vendored
22
vendor/golang.org/x/crypto/acme/types.go
generated
vendored
@ -199,6 +199,28 @@ type Account struct {
|
|||||||
//
|
//
|
||||||
// It is non-RFC 8555 compliant and is obsoleted by OrdersURL.
|
// It is non-RFC 8555 compliant and is obsoleted by OrdersURL.
|
||||||
Certificates string
|
Certificates string
|
||||||
|
|
||||||
|
// ExternalAccountBinding represents an arbitrary binding to an account of
|
||||||
|
// the CA which the ACME server is tied to.
|
||||||
|
// See https://tools.ietf.org/html/rfc8555#section-7.3.4 for more details.
|
||||||
|
ExternalAccountBinding *ExternalAccountBinding
|
||||||
|
}
|
||||||
|
|
||||||
|
// ExternalAccountBinding contains the data needed to form a request with
|
||||||
|
// an external account binding.
|
||||||
|
// See https://tools.ietf.org/html/rfc8555#section-7.3.4 for more details.
|
||||||
|
type ExternalAccountBinding struct {
|
||||||
|
// KID is the Key ID of the symmetric MAC key that the CA provides to
|
||||||
|
// identify an external account from ACME.
|
||||||
|
KID string
|
||||||
|
|
||||||
|
// Key is the bytes of the symmetric key that the CA provides to identify
|
||||||
|
// the account. Key must correspond to the KID.
|
||||||
|
Key []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *ExternalAccountBinding) String() string {
|
||||||
|
return fmt.Sprintf("&{KID: %q, Key: redacted}", e.KID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Directory is ACME server discovery data.
|
// Directory is ACME server discovery data.
|
||||||
|
1
vendor/golang.org/x/crypto/acme/version_go112.go
generated
vendored
1
vendor/golang.org/x/crypto/acme/version_go112.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build go1.12
|
||||||
// +build go1.12
|
// +build go1.12
|
||||||
|
|
||||||
package acme
|
package acme
|
||||||
|
3
vendor/golang.org/x/crypto/chacha20/chacha_arm64.go
generated
vendored
3
vendor/golang.org/x/crypto/chacha20/chacha_arm64.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build go1.11,!gccgo,!purego
|
//go:build go1.11 && gc && !purego
|
||||||
|
// +build go1.11,gc,!purego
|
||||||
|
|
||||||
package chacha20
|
package chacha20
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/chacha20/chacha_arm64.s
generated
vendored
2
vendor/golang.org/x/crypto/chacha20/chacha_arm64.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build go1.11,!gccgo,!purego
|
// +build go1.11,gc,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
3
vendor/golang.org/x/crypto/chacha20/chacha_noasm.go
generated
vendored
3
vendor/golang.org/x/crypto/chacha20/chacha_noasm.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !arm64,!s390x,!ppc64le arm64,!go1.11 gccgo purego
|
//go:build (!arm64 && !s390x && !ppc64le) || (arm64 && !go1.11) || !gc || purego
|
||||||
|
// +build !arm64,!s390x,!ppc64le arm64,!go1.11 !gc purego
|
||||||
|
|
||||||
package chacha20
|
package chacha20
|
||||||
|
|
||||||
|
3
vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.go
generated
vendored
3
vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
//go:build gc && !purego
|
||||||
|
// +build gc,!purego
|
||||||
|
|
||||||
package chacha20
|
package chacha20
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.s
generated
vendored
2
vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.s
generated
vendored
@ -19,7 +19,7 @@
|
|||||||
// The differences in this and the original implementation are
|
// The differences in this and the original implementation are
|
||||||
// due to the calling conventions and initialization of constants.
|
// due to the calling conventions and initialization of constants.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
// +build gc,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
3
vendor/golang.org/x/crypto/chacha20/chacha_s390x.go
generated
vendored
3
vendor/golang.org/x/crypto/chacha20/chacha_s390x.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
//go:build gc && !purego
|
||||||
|
// +build gc,!purego
|
||||||
|
|
||||||
package chacha20
|
package chacha20
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/chacha20/chacha_s390x.s
generated
vendored
2
vendor/golang.org/x/crypto/chacha20/chacha_s390x.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
// +build gc,!purego
|
||||||
|
|
||||||
#include "go_asm.h"
|
#include "go_asm.h"
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
3
vendor/golang.org/x/crypto/curve25519/curve25519_amd64.go
generated
vendored
3
vendor/golang.org/x/crypto/curve25519/curve25519_amd64.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build amd64,!gccgo,!appengine,!purego
|
//go:build amd64 && gc && !purego
|
||||||
|
// +build amd64,gc,!purego
|
||||||
|
|
||||||
package curve25519
|
package curve25519
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/curve25519/curve25519_amd64.s
generated
vendored
2
vendor/golang.org/x/crypto/curve25519/curve25519_amd64.s
generated
vendored
@ -5,7 +5,7 @@
|
|||||||
// This code was translated into a form compatible with 6a from the public
|
// This code was translated into a form compatible with 6a from the public
|
||||||
// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
|
// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
|
||||||
|
|
||||||
// +build amd64,!gccgo,!appengine,!purego
|
// +build amd64,gc,!purego
|
||||||
|
|
||||||
#define REDMASK51 0x0007FFFFFFFFFFFF
|
#define REDMASK51 0x0007FFFFFFFFFFFF
|
||||||
|
|
||||||
|
3
vendor/golang.org/x/crypto/curve25519/curve25519_noasm.go
generated
vendored
3
vendor/golang.org/x/crypto/curve25519/curve25519_noasm.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !amd64 gccgo appengine purego
|
//go:build !amd64 || !gc || purego
|
||||||
|
// +build !amd64 !gc purego
|
||||||
|
|
||||||
package curve25519
|
package curve25519
|
||||||
|
|
||||||
|
1
vendor/golang.org/x/crypto/ed25519/ed25519.go
generated
vendored
1
vendor/golang.org/x/crypto/ed25519/ed25519.go
generated
vendored
@ -5,6 +5,7 @@
|
|||||||
// In Go 1.13, the ed25519 package was promoted to the standard library as
|
// In Go 1.13, the ed25519 package was promoted to the standard library as
|
||||||
// crypto/ed25519, and this package became a wrapper for the standard library one.
|
// crypto/ed25519, and this package became a wrapper for the standard library one.
|
||||||
//
|
//
|
||||||
|
//go:build !go1.13
|
||||||
// +build !go1.13
|
// +build !go1.13
|
||||||
|
|
||||||
// Package ed25519 implements the Ed25519 signature algorithm. See
|
// Package ed25519 implements the Ed25519 signature algorithm. See
|
||||||
|
1
vendor/golang.org/x/crypto/ed25519/ed25519_go113.go
generated
vendored
1
vendor/golang.org/x/crypto/ed25519/ed25519_go113.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build go1.13
|
||||||
// +build go1.13
|
// +build go1.13
|
||||||
|
|
||||||
// Package ed25519 implements the Ed25519 signature algorithm. See
|
// Package ed25519 implements the Ed25519 signature algorithm. See
|
||||||
|
3
vendor/golang.org/x/crypto/internal/subtle/aliasing.go
generated
vendored
3
vendor/golang.org/x/crypto/internal/subtle/aliasing.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !appengine
|
//go:build !purego
|
||||||
|
// +build !purego
|
||||||
|
|
||||||
// Package subtle implements functions that are often useful in cryptographic
|
// Package subtle implements functions that are often useful in cryptographic
|
||||||
// code but require careful thought to use correctly.
|
// code but require careful thought to use correctly.
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build appengine
|
//go:build purego
|
||||||
|
// +build purego
|
||||||
|
|
||||||
// Package subtle implements functions that are often useful in cryptographic
|
// Package subtle implements functions that are often useful in cryptographic
|
||||||
// code but require careful thought to use correctly.
|
// code but require careful thought to use correctly.
|
1
vendor/golang.org/x/crypto/poly1305/bits_compat.go
generated
vendored
1
vendor/golang.org/x/crypto/poly1305/bits_compat.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build !go1.13
|
||||||
// +build !go1.13
|
// +build !go1.13
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
1
vendor/golang.org/x/crypto/poly1305/bits_go1.13.go
generated
vendored
1
vendor/golang.org/x/crypto/poly1305/bits_go1.13.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build go1.13
|
||||||
// +build go1.13
|
// +build go1.13
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
3
vendor/golang.org/x/crypto/poly1305/mac_noasm.go
generated
vendored
3
vendor/golang.org/x/crypto/poly1305/mac_noasm.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !amd64,!ppc64le,!s390x gccgo purego
|
//go:build (!amd64 && !ppc64le && !s390x) || !gc || purego
|
||||||
|
// +build !amd64,!ppc64le,!s390x !gc purego
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
|
||||||
|
3
vendor/golang.org/x/crypto/poly1305/sum_amd64.go
generated
vendored
3
vendor/golang.org/x/crypto/poly1305/sum_amd64.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
//go:build gc && !purego
|
||||||
|
// +build gc,!purego
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_amd64.s
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_amd64.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
// +build gc,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
3
vendor/golang.org/x/crypto/poly1305/sum_ppc64le.go
generated
vendored
3
vendor/golang.org/x/crypto/poly1305/sum_ppc64le.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
//go:build gc && !purego
|
||||||
|
// +build gc,!purego
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_ppc64le.s
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_ppc64le.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
// +build gc,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
3
vendor/golang.org/x/crypto/poly1305/sum_s390x.go
generated
vendored
3
vendor/golang.org/x/crypto/poly1305/sum_s390x.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
//go:build gc && !purego
|
||||||
|
// +build gc,!purego
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_s390x.s
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_s390x.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!purego
|
// +build gc,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
3
vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.go
generated
vendored
3
vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build amd64,!appengine,!gccgo
|
//go:build amd64 && !purego && gc
|
||||||
|
// +build amd64,!purego,gc
|
||||||
|
|
||||||
package salsa
|
package salsa
|
||||||
|
|
||||||
|
237
vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s
generated
vendored
237
vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s
generated
vendored
@ -2,13 +2,13 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build amd64,!appengine,!gccgo
|
// +build amd64,!purego,gc
|
||||||
|
|
||||||
// This code was translated into a form compatible with 6a from the public
|
// This code was translated into a form compatible with 6a from the public
|
||||||
// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
|
// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
|
||||||
|
|
||||||
// func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte)
|
// func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte)
|
||||||
// This needs up to 64 bytes at 360(SP); hence the non-obvious frame size.
|
// This needs up to 64 bytes at 360(R12); hence the non-obvious frame size.
|
||||||
TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
||||||
MOVQ out+0(FP),DI
|
MOVQ out+0(FP),DI
|
||||||
MOVQ in+8(FP),SI
|
MOVQ in+8(FP),SI
|
||||||
@ -17,10 +17,8 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
MOVQ key+32(FP),R8
|
MOVQ key+32(FP),R8
|
||||||
|
|
||||||
MOVQ SP,R12
|
MOVQ SP,R12
|
||||||
MOVQ SP,R9
|
ADDQ $31, R12
|
||||||
ADDQ $31, R9
|
ANDQ $~31, R12
|
||||||
ANDQ $~31, R9
|
|
||||||
MOVQ R9, SP
|
|
||||||
|
|
||||||
MOVQ DX,R9
|
MOVQ DX,R9
|
||||||
MOVQ CX,DX
|
MOVQ CX,DX
|
||||||
@ -32,116 +30,116 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
MOVL 0(R10),R8
|
MOVL 0(R10),R8
|
||||||
MOVL 0(DX),AX
|
MOVL 0(DX),AX
|
||||||
MOVL 16(R10),R11
|
MOVL 16(R10),R11
|
||||||
MOVL CX,0(SP)
|
MOVL CX,0(R12)
|
||||||
MOVL R8, 4 (SP)
|
MOVL R8, 4 (R12)
|
||||||
MOVL AX, 8 (SP)
|
MOVL AX, 8 (R12)
|
||||||
MOVL R11, 12 (SP)
|
MOVL R11, 12 (R12)
|
||||||
MOVL 8(DX),CX
|
MOVL 8(DX),CX
|
||||||
MOVL 24(R10),R8
|
MOVL 24(R10),R8
|
||||||
MOVL 4(R10),AX
|
MOVL 4(R10),AX
|
||||||
MOVL 4(DX),R11
|
MOVL 4(DX),R11
|
||||||
MOVL CX,16(SP)
|
MOVL CX,16(R12)
|
||||||
MOVL R8, 20 (SP)
|
MOVL R8, 20 (R12)
|
||||||
MOVL AX, 24 (SP)
|
MOVL AX, 24 (R12)
|
||||||
MOVL R11, 28 (SP)
|
MOVL R11, 28 (R12)
|
||||||
MOVL 12(DX),CX
|
MOVL 12(DX),CX
|
||||||
MOVL 12(R10),DX
|
MOVL 12(R10),DX
|
||||||
MOVL 28(R10),R8
|
MOVL 28(R10),R8
|
||||||
MOVL 8(R10),AX
|
MOVL 8(R10),AX
|
||||||
MOVL DX,32(SP)
|
MOVL DX,32(R12)
|
||||||
MOVL CX, 36 (SP)
|
MOVL CX, 36 (R12)
|
||||||
MOVL R8, 40 (SP)
|
MOVL R8, 40 (R12)
|
||||||
MOVL AX, 44 (SP)
|
MOVL AX, 44 (R12)
|
||||||
MOVQ $1634760805,DX
|
MOVQ $1634760805,DX
|
||||||
MOVQ $857760878,CX
|
MOVQ $857760878,CX
|
||||||
MOVQ $2036477234,R8
|
MOVQ $2036477234,R8
|
||||||
MOVQ $1797285236,AX
|
MOVQ $1797285236,AX
|
||||||
MOVL DX,48(SP)
|
MOVL DX,48(R12)
|
||||||
MOVL CX, 52 (SP)
|
MOVL CX, 52 (R12)
|
||||||
MOVL R8, 56 (SP)
|
MOVL R8, 56 (R12)
|
||||||
MOVL AX, 60 (SP)
|
MOVL AX, 60 (R12)
|
||||||
CMPQ R9,$256
|
CMPQ R9,$256
|
||||||
JB BYTESBETWEEN1AND255
|
JB BYTESBETWEEN1AND255
|
||||||
MOVOA 48(SP),X0
|
MOVOA 48(R12),X0
|
||||||
PSHUFL $0X55,X0,X1
|
PSHUFL $0X55,X0,X1
|
||||||
PSHUFL $0XAA,X0,X2
|
PSHUFL $0XAA,X0,X2
|
||||||
PSHUFL $0XFF,X0,X3
|
PSHUFL $0XFF,X0,X3
|
||||||
PSHUFL $0X00,X0,X0
|
PSHUFL $0X00,X0,X0
|
||||||
MOVOA X1,64(SP)
|
MOVOA X1,64(R12)
|
||||||
MOVOA X2,80(SP)
|
MOVOA X2,80(R12)
|
||||||
MOVOA X3,96(SP)
|
MOVOA X3,96(R12)
|
||||||
MOVOA X0,112(SP)
|
MOVOA X0,112(R12)
|
||||||
MOVOA 0(SP),X0
|
MOVOA 0(R12),X0
|
||||||
PSHUFL $0XAA,X0,X1
|
PSHUFL $0XAA,X0,X1
|
||||||
PSHUFL $0XFF,X0,X2
|
PSHUFL $0XFF,X0,X2
|
||||||
PSHUFL $0X00,X0,X3
|
PSHUFL $0X00,X0,X3
|
||||||
PSHUFL $0X55,X0,X0
|
PSHUFL $0X55,X0,X0
|
||||||
MOVOA X1,128(SP)
|
MOVOA X1,128(R12)
|
||||||
MOVOA X2,144(SP)
|
MOVOA X2,144(R12)
|
||||||
MOVOA X3,160(SP)
|
MOVOA X3,160(R12)
|
||||||
MOVOA X0,176(SP)
|
MOVOA X0,176(R12)
|
||||||
MOVOA 16(SP),X0
|
MOVOA 16(R12),X0
|
||||||
PSHUFL $0XFF,X0,X1
|
PSHUFL $0XFF,X0,X1
|
||||||
PSHUFL $0X55,X0,X2
|
PSHUFL $0X55,X0,X2
|
||||||
PSHUFL $0XAA,X0,X0
|
PSHUFL $0XAA,X0,X0
|
||||||
MOVOA X1,192(SP)
|
MOVOA X1,192(R12)
|
||||||
MOVOA X2,208(SP)
|
MOVOA X2,208(R12)
|
||||||
MOVOA X0,224(SP)
|
MOVOA X0,224(R12)
|
||||||
MOVOA 32(SP),X0
|
MOVOA 32(R12),X0
|
||||||
PSHUFL $0X00,X0,X1
|
PSHUFL $0X00,X0,X1
|
||||||
PSHUFL $0XAA,X0,X2
|
PSHUFL $0XAA,X0,X2
|
||||||
PSHUFL $0XFF,X0,X0
|
PSHUFL $0XFF,X0,X0
|
||||||
MOVOA X1,240(SP)
|
MOVOA X1,240(R12)
|
||||||
MOVOA X2,256(SP)
|
MOVOA X2,256(R12)
|
||||||
MOVOA X0,272(SP)
|
MOVOA X0,272(R12)
|
||||||
BYTESATLEAST256:
|
BYTESATLEAST256:
|
||||||
MOVL 16(SP),DX
|
MOVL 16(R12),DX
|
||||||
MOVL 36 (SP),CX
|
MOVL 36 (R12),CX
|
||||||
MOVL DX,288(SP)
|
MOVL DX,288(R12)
|
||||||
MOVL CX,304(SP)
|
MOVL CX,304(R12)
|
||||||
SHLQ $32,CX
|
SHLQ $32,CX
|
||||||
ADDQ CX,DX
|
ADDQ CX,DX
|
||||||
ADDQ $1,DX
|
ADDQ $1,DX
|
||||||
MOVQ DX,CX
|
MOVQ DX,CX
|
||||||
SHRQ $32,CX
|
SHRQ $32,CX
|
||||||
MOVL DX, 292 (SP)
|
MOVL DX, 292 (R12)
|
||||||
MOVL CX, 308 (SP)
|
MOVL CX, 308 (R12)
|
||||||
ADDQ $1,DX
|
ADDQ $1,DX
|
||||||
MOVQ DX,CX
|
MOVQ DX,CX
|
||||||
SHRQ $32,CX
|
SHRQ $32,CX
|
||||||
MOVL DX, 296 (SP)
|
MOVL DX, 296 (R12)
|
||||||
MOVL CX, 312 (SP)
|
MOVL CX, 312 (R12)
|
||||||
ADDQ $1,DX
|
ADDQ $1,DX
|
||||||
MOVQ DX,CX
|
MOVQ DX,CX
|
||||||
SHRQ $32,CX
|
SHRQ $32,CX
|
||||||
MOVL DX, 300 (SP)
|
MOVL DX, 300 (R12)
|
||||||
MOVL CX, 316 (SP)
|
MOVL CX, 316 (R12)
|
||||||
ADDQ $1,DX
|
ADDQ $1,DX
|
||||||
MOVQ DX,CX
|
MOVQ DX,CX
|
||||||
SHRQ $32,CX
|
SHRQ $32,CX
|
||||||
MOVL DX,16(SP)
|
MOVL DX,16(R12)
|
||||||
MOVL CX, 36 (SP)
|
MOVL CX, 36 (R12)
|
||||||
MOVQ R9,352(SP)
|
MOVQ R9,352(R12)
|
||||||
MOVQ $20,DX
|
MOVQ $20,DX
|
||||||
MOVOA 64(SP),X0
|
MOVOA 64(R12),X0
|
||||||
MOVOA 80(SP),X1
|
MOVOA 80(R12),X1
|
||||||
MOVOA 96(SP),X2
|
MOVOA 96(R12),X2
|
||||||
MOVOA 256(SP),X3
|
MOVOA 256(R12),X3
|
||||||
MOVOA 272(SP),X4
|
MOVOA 272(R12),X4
|
||||||
MOVOA 128(SP),X5
|
MOVOA 128(R12),X5
|
||||||
MOVOA 144(SP),X6
|
MOVOA 144(R12),X6
|
||||||
MOVOA 176(SP),X7
|
MOVOA 176(R12),X7
|
||||||
MOVOA 192(SP),X8
|
MOVOA 192(R12),X8
|
||||||
MOVOA 208(SP),X9
|
MOVOA 208(R12),X9
|
||||||
MOVOA 224(SP),X10
|
MOVOA 224(R12),X10
|
||||||
MOVOA 304(SP),X11
|
MOVOA 304(R12),X11
|
||||||
MOVOA 112(SP),X12
|
MOVOA 112(R12),X12
|
||||||
MOVOA 160(SP),X13
|
MOVOA 160(R12),X13
|
||||||
MOVOA 240(SP),X14
|
MOVOA 240(R12),X14
|
||||||
MOVOA 288(SP),X15
|
MOVOA 288(R12),X15
|
||||||
MAINLOOP1:
|
MAINLOOP1:
|
||||||
MOVOA X1,320(SP)
|
MOVOA X1,320(R12)
|
||||||
MOVOA X2,336(SP)
|
MOVOA X2,336(R12)
|
||||||
MOVOA X13,X1
|
MOVOA X13,X1
|
||||||
PADDL X12,X1
|
PADDL X12,X1
|
||||||
MOVOA X1,X2
|
MOVOA X1,X2
|
||||||
@ -191,8 +189,8 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
PXOR X1,X12
|
PXOR X1,X12
|
||||||
PSRLL $14,X2
|
PSRLL $14,X2
|
||||||
PXOR X2,X12
|
PXOR X2,X12
|
||||||
MOVOA 320(SP),X1
|
MOVOA 320(R12),X1
|
||||||
MOVOA X12,320(SP)
|
MOVOA X12,320(R12)
|
||||||
MOVOA X9,X2
|
MOVOA X9,X2
|
||||||
PADDL X7,X2
|
PADDL X7,X2
|
||||||
MOVOA X2,X12
|
MOVOA X2,X12
|
||||||
@ -207,8 +205,8 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
PXOR X2,X3
|
PXOR X2,X3
|
||||||
PSRLL $25,X12
|
PSRLL $25,X12
|
||||||
PXOR X12,X3
|
PXOR X12,X3
|
||||||
MOVOA 336(SP),X2
|
MOVOA 336(R12),X2
|
||||||
MOVOA X0,336(SP)
|
MOVOA X0,336(R12)
|
||||||
MOVOA X6,X0
|
MOVOA X6,X0
|
||||||
PADDL X2,X0
|
PADDL X2,X0
|
||||||
MOVOA X0,X12
|
MOVOA X0,X12
|
||||||
@ -251,8 +249,8 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
PXOR X0,X1
|
PXOR X0,X1
|
||||||
PSRLL $14,X12
|
PSRLL $14,X12
|
||||||
PXOR X12,X1
|
PXOR X12,X1
|
||||||
MOVOA 320(SP),X0
|
MOVOA 320(R12),X0
|
||||||
MOVOA X1,320(SP)
|
MOVOA X1,320(R12)
|
||||||
MOVOA X4,X1
|
MOVOA X4,X1
|
||||||
PADDL X0,X1
|
PADDL X0,X1
|
||||||
MOVOA X1,X12
|
MOVOA X1,X12
|
||||||
@ -267,8 +265,8 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
PXOR X1,X2
|
PXOR X1,X2
|
||||||
PSRLL $14,X12
|
PSRLL $14,X12
|
||||||
PXOR X12,X2
|
PXOR X12,X2
|
||||||
MOVOA 336(SP),X12
|
MOVOA 336(R12),X12
|
||||||
MOVOA X2,336(SP)
|
MOVOA X2,336(R12)
|
||||||
MOVOA X14,X1
|
MOVOA X14,X1
|
||||||
PADDL X12,X1
|
PADDL X12,X1
|
||||||
MOVOA X1,X2
|
MOVOA X1,X2
|
||||||
@ -311,8 +309,8 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
PXOR X1,X0
|
PXOR X1,X0
|
||||||
PSRLL $14,X2
|
PSRLL $14,X2
|
||||||
PXOR X2,X0
|
PXOR X2,X0
|
||||||
MOVOA 320(SP),X1
|
MOVOA 320(R12),X1
|
||||||
MOVOA X0,320(SP)
|
MOVOA X0,320(R12)
|
||||||
MOVOA X8,X0
|
MOVOA X8,X0
|
||||||
PADDL X14,X0
|
PADDL X14,X0
|
||||||
MOVOA X0,X2
|
MOVOA X0,X2
|
||||||
@ -327,8 +325,8 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
PXOR X0,X6
|
PXOR X0,X6
|
||||||
PSRLL $25,X2
|
PSRLL $25,X2
|
||||||
PXOR X2,X6
|
PXOR X2,X6
|
||||||
MOVOA 336(SP),X2
|
MOVOA 336(R12),X2
|
||||||
MOVOA X12,336(SP)
|
MOVOA X12,336(R12)
|
||||||
MOVOA X3,X0
|
MOVOA X3,X0
|
||||||
PADDL X2,X0
|
PADDL X2,X0
|
||||||
MOVOA X0,X12
|
MOVOA X0,X12
|
||||||
@ -378,14 +376,14 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
PXOR X0,X2
|
PXOR X0,X2
|
||||||
PSRLL $14,X12
|
PSRLL $14,X12
|
||||||
PXOR X12,X2
|
PXOR X12,X2
|
||||||
MOVOA 320(SP),X12
|
MOVOA 320(R12),X12
|
||||||
MOVOA 336(SP),X0
|
MOVOA 336(R12),X0
|
||||||
SUBQ $2,DX
|
SUBQ $2,DX
|
||||||
JA MAINLOOP1
|
JA MAINLOOP1
|
||||||
PADDL 112(SP),X12
|
PADDL 112(R12),X12
|
||||||
PADDL 176(SP),X7
|
PADDL 176(R12),X7
|
||||||
PADDL 224(SP),X10
|
PADDL 224(R12),X10
|
||||||
PADDL 272(SP),X4
|
PADDL 272(R12),X4
|
||||||
MOVD X12,DX
|
MOVD X12,DX
|
||||||
MOVD X7,CX
|
MOVD X7,CX
|
||||||
MOVD X10,R8
|
MOVD X10,R8
|
||||||
@ -446,10 +444,10 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
MOVL CX,196(DI)
|
MOVL CX,196(DI)
|
||||||
MOVL R8,200(DI)
|
MOVL R8,200(DI)
|
||||||
MOVL R9,204(DI)
|
MOVL R9,204(DI)
|
||||||
PADDL 240(SP),X14
|
PADDL 240(R12),X14
|
||||||
PADDL 64(SP),X0
|
PADDL 64(R12),X0
|
||||||
PADDL 128(SP),X5
|
PADDL 128(R12),X5
|
||||||
PADDL 192(SP),X8
|
PADDL 192(R12),X8
|
||||||
MOVD X14,DX
|
MOVD X14,DX
|
||||||
MOVD X0,CX
|
MOVD X0,CX
|
||||||
MOVD X5,R8
|
MOVD X5,R8
|
||||||
@ -510,10 +508,10 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
MOVL CX,212(DI)
|
MOVL CX,212(DI)
|
||||||
MOVL R8,216(DI)
|
MOVL R8,216(DI)
|
||||||
MOVL R9,220(DI)
|
MOVL R9,220(DI)
|
||||||
PADDL 288(SP),X15
|
PADDL 288(R12),X15
|
||||||
PADDL 304(SP),X11
|
PADDL 304(R12),X11
|
||||||
PADDL 80(SP),X1
|
PADDL 80(R12),X1
|
||||||
PADDL 144(SP),X6
|
PADDL 144(R12),X6
|
||||||
MOVD X15,DX
|
MOVD X15,DX
|
||||||
MOVD X11,CX
|
MOVD X11,CX
|
||||||
MOVD X1,R8
|
MOVD X1,R8
|
||||||
@ -574,10 +572,10 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
MOVL CX,228(DI)
|
MOVL CX,228(DI)
|
||||||
MOVL R8,232(DI)
|
MOVL R8,232(DI)
|
||||||
MOVL R9,236(DI)
|
MOVL R9,236(DI)
|
||||||
PADDL 160(SP),X13
|
PADDL 160(R12),X13
|
||||||
PADDL 208(SP),X9
|
PADDL 208(R12),X9
|
||||||
PADDL 256(SP),X3
|
PADDL 256(R12),X3
|
||||||
PADDL 96(SP),X2
|
PADDL 96(R12),X2
|
||||||
MOVD X13,DX
|
MOVD X13,DX
|
||||||
MOVD X9,CX
|
MOVD X9,CX
|
||||||
MOVD X3,R8
|
MOVD X3,R8
|
||||||
@ -638,7 +636,7 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
MOVL CX,244(DI)
|
MOVL CX,244(DI)
|
||||||
MOVL R8,248(DI)
|
MOVL R8,248(DI)
|
||||||
MOVL R9,252(DI)
|
MOVL R9,252(DI)
|
||||||
MOVQ 352(SP),R9
|
MOVQ 352(R12),R9
|
||||||
SUBQ $256,R9
|
SUBQ $256,R9
|
||||||
ADDQ $256,SI
|
ADDQ $256,SI
|
||||||
ADDQ $256,DI
|
ADDQ $256,DI
|
||||||
@ -650,17 +648,17 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
CMPQ R9,$64
|
CMPQ R9,$64
|
||||||
JAE NOCOPY
|
JAE NOCOPY
|
||||||
MOVQ DI,DX
|
MOVQ DI,DX
|
||||||
LEAQ 360(SP),DI
|
LEAQ 360(R12),DI
|
||||||
MOVQ R9,CX
|
MOVQ R9,CX
|
||||||
REP; MOVSB
|
REP; MOVSB
|
||||||
LEAQ 360(SP),DI
|
LEAQ 360(R12),DI
|
||||||
LEAQ 360(SP),SI
|
LEAQ 360(R12),SI
|
||||||
NOCOPY:
|
NOCOPY:
|
||||||
MOVQ R9,352(SP)
|
MOVQ R9,352(R12)
|
||||||
MOVOA 48(SP),X0
|
MOVOA 48(R12),X0
|
||||||
MOVOA 0(SP),X1
|
MOVOA 0(R12),X1
|
||||||
MOVOA 16(SP),X2
|
MOVOA 16(R12),X2
|
||||||
MOVOA 32(SP),X3
|
MOVOA 32(R12),X3
|
||||||
MOVOA X1,X4
|
MOVOA X1,X4
|
||||||
MOVQ $20,CX
|
MOVQ $20,CX
|
||||||
MAINLOOP2:
|
MAINLOOP2:
|
||||||
@ -791,10 +789,10 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
PSHUFL $0X39,X3,X3
|
PSHUFL $0X39,X3,X3
|
||||||
PXOR X6,X0
|
PXOR X6,X0
|
||||||
JA MAINLOOP2
|
JA MAINLOOP2
|
||||||
PADDL 48(SP),X0
|
PADDL 48(R12),X0
|
||||||
PADDL 0(SP),X1
|
PADDL 0(R12),X1
|
||||||
PADDL 16(SP),X2
|
PADDL 16(R12),X2
|
||||||
PADDL 32(SP),X3
|
PADDL 32(R12),X3
|
||||||
MOVD X0,CX
|
MOVD X0,CX
|
||||||
MOVD X1,R8
|
MOVD X1,R8
|
||||||
MOVD X2,R9
|
MOVD X2,R9
|
||||||
@ -855,16 +853,16 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
MOVL R8,44(DI)
|
MOVL R8,44(DI)
|
||||||
MOVL R9,28(DI)
|
MOVL R9,28(DI)
|
||||||
MOVL AX,12(DI)
|
MOVL AX,12(DI)
|
||||||
MOVQ 352(SP),R9
|
MOVQ 352(R12),R9
|
||||||
MOVL 16(SP),CX
|
MOVL 16(R12),CX
|
||||||
MOVL 36 (SP),R8
|
MOVL 36 (R12),R8
|
||||||
ADDQ $1,CX
|
ADDQ $1,CX
|
||||||
SHLQ $32,R8
|
SHLQ $32,R8
|
||||||
ADDQ R8,CX
|
ADDQ R8,CX
|
||||||
MOVQ CX,R8
|
MOVQ CX,R8
|
||||||
SHRQ $32,R8
|
SHRQ $32,R8
|
||||||
MOVL CX,16(SP)
|
MOVL CX,16(R12)
|
||||||
MOVL R8, 36 (SP)
|
MOVL R8, 36 (R12)
|
||||||
CMPQ R9,$64
|
CMPQ R9,$64
|
||||||
JA BYTESATLEAST65
|
JA BYTESATLEAST65
|
||||||
JAE BYTESATLEAST64
|
JAE BYTESATLEAST64
|
||||||
@ -874,7 +872,6 @@ TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment
|
|||||||
REP; MOVSB
|
REP; MOVSB
|
||||||
BYTESATLEAST64:
|
BYTESATLEAST64:
|
||||||
DONE:
|
DONE:
|
||||||
MOVQ R12,SP
|
|
||||||
RET
|
RET
|
||||||
BYTESATLEAST65:
|
BYTESATLEAST65:
|
||||||
SUBQ $64,R9
|
SUBQ $64,R9
|
||||||
|
3
vendor/golang.org/x/crypto/salsa20/salsa/salsa20_noasm.go
generated
vendored
3
vendor/golang.org/x/crypto/salsa20/salsa/salsa20_noasm.go
generated
vendored
@ -2,7 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !amd64 appengine gccgo
|
//go:build !amd64 || purego || !gc
|
||||||
|
// +build !amd64 purego !gc
|
||||||
|
|
||||||
package salsa
|
package salsa
|
||||||
|
|
||||||
|
4
vendor/golang.org/x/crypto/ssh/server.go
generated
vendored
4
vendor/golang.org/x/crypto/ssh/server.go
generated
vendored
@ -572,6 +572,10 @@ userAuthLoop:
|
|||||||
perms = candidate.perms
|
perms = candidate.perms
|
||||||
}
|
}
|
||||||
case "gssapi-with-mic":
|
case "gssapi-with-mic":
|
||||||
|
if config.GSSAPIWithMICConfig == nil {
|
||||||
|
authErr = errors.New("ssh: gssapi-with-mic auth not configured")
|
||||||
|
break
|
||||||
|
}
|
||||||
gssapiConfig := config.GSSAPIWithMICConfig
|
gssapiConfig := config.GSSAPIWithMICConfig
|
||||||
userAuthRequestGSSAPI, err := parseGSSAPIPayload(userAuthReq.Payload)
|
userAuthRequestGSSAPI, err := parseGSSAPIPayload(userAuthReq.Payload)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
985
vendor/golang.org/x/crypto/ssh/terminal/terminal.go
generated
vendored
985
vendor/golang.org/x/crypto/ssh/terminal/terminal.go
generated
vendored
File diff suppressed because it is too large
Load Diff
1
vendor/golang.org/x/net/context/go17.go
generated
vendored
1
vendor/golang.org/x/net/context/go17.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build go1.7
|
||||||
// +build go1.7
|
// +build go1.7
|
||||||
|
|
||||||
package context
|
package context
|
||||||
|
1
vendor/golang.org/x/net/context/go19.go
generated
vendored
1
vendor/golang.org/x/net/context/go19.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build go1.9
|
||||||
// +build go1.9
|
// +build go1.9
|
||||||
|
|
||||||
package context
|
package context
|
||||||
|
1
vendor/golang.org/x/net/context/pre_go17.go
generated
vendored
1
vendor/golang.org/x/net/context/pre_go17.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build !go1.7
|
||||||
// +build !go1.7
|
// +build !go1.7
|
||||||
|
|
||||||
package context
|
package context
|
||||||
|
1
vendor/golang.org/x/net/context/pre_go19.go
generated
vendored
1
vendor/golang.org/x/net/context/pre_go19.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build !go1.9
|
||||||
// +build !go1.9
|
// +build !go1.9
|
||||||
|
|
||||||
package context
|
package context
|
||||||
|
2
vendor/golang.org/x/net/html/const.go
generated
vendored
2
vendor/golang.org/x/net/html/const.go
generated
vendored
@ -52,7 +52,7 @@ var isSpecialElementMap = map[string]bool{
|
|||||||
"iframe": true,
|
"iframe": true,
|
||||||
"img": true,
|
"img": true,
|
||||||
"input": true,
|
"input": true,
|
||||||
"keygen": true,
|
"keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility.
|
||||||
"li": true,
|
"li": true,
|
||||||
"link": true,
|
"link": true,
|
||||||
"listing": true,
|
"listing": true,
|
||||||
|
3
vendor/golang.org/x/net/html/foreign.go
generated
vendored
3
vendor/golang.org/x/net/html/foreign.go
generated
vendored
@ -167,11 +167,8 @@ var svgAttributeAdjustments = map[string]string{
|
|||||||
"baseprofile": "baseProfile",
|
"baseprofile": "baseProfile",
|
||||||
"calcmode": "calcMode",
|
"calcmode": "calcMode",
|
||||||
"clippathunits": "clipPathUnits",
|
"clippathunits": "clipPathUnits",
|
||||||
"contentscripttype": "contentScriptType",
|
|
||||||
"contentstyletype": "contentStyleType",
|
|
||||||
"diffuseconstant": "diffuseConstant",
|
"diffuseconstant": "diffuseConstant",
|
||||||
"edgemode": "edgeMode",
|
"edgemode": "edgeMode",
|
||||||
"externalresourcesrequired": "externalResourcesRequired",
|
|
||||||
"filterunits": "filterUnits",
|
"filterunits": "filterUnits",
|
||||||
"glyphref": "glyphRef",
|
"glyphref": "glyphRef",
|
||||||
"gradienttransform": "gradientTransform",
|
"gradienttransform": "gradientTransform",
|
||||||
|
15
vendor/golang.org/x/net/html/parse.go
generated
vendored
15
vendor/golang.org/x/net/html/parse.go
generated
vendored
@ -728,7 +728,13 @@ func inHeadNoscriptIM(p *parser) bool {
|
|||||||
return inBodyIM(p)
|
return inBodyIM(p)
|
||||||
case a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Style:
|
case a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Style:
|
||||||
return inHeadIM(p)
|
return inHeadIM(p)
|
||||||
case a.Head, a.Noscript:
|
case a.Head:
|
||||||
|
// Ignore the token.
|
||||||
|
return true
|
||||||
|
case a.Noscript:
|
||||||
|
// Don't let the tokenizer go into raw text mode even when a <noscript>
|
||||||
|
// tag is in "in head noscript" insertion mode.
|
||||||
|
p.tokenizer.NextIsNotRawText()
|
||||||
// Ignore the token.
|
// Ignore the token.
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -1790,6 +1796,13 @@ func inSelectIM(p *parser) bool {
|
|||||||
return true
|
return true
|
||||||
case a.Script, a.Template:
|
case a.Script, a.Template:
|
||||||
return inHeadIM(p)
|
return inHeadIM(p)
|
||||||
|
case a.Iframe, a.Noembed, a.Noframes, a.Noscript, a.Plaintext, a.Style, a.Title, a.Xmp:
|
||||||
|
// Don't let the tokenizer go into raw text mode when there are raw tags
|
||||||
|
// to be ignored. These tags should be ignored from the tokenizer
|
||||||
|
// properly.
|
||||||
|
p.tokenizer.NextIsNotRawText()
|
||||||
|
// Ignore the token.
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
case EndTagToken:
|
case EndTagToken:
|
||||||
switch p.tok.DataAtom {
|
switch p.tok.DataAtom {
|
||||||
|
2
vendor/golang.org/x/net/html/render.go
generated
vendored
2
vendor/golang.org/x/net/html/render.go
generated
vendored
@ -263,7 +263,7 @@ var voidElements = map[string]bool{
|
|||||||
"hr": true,
|
"hr": true,
|
||||||
"img": true,
|
"img": true,
|
||||||
"input": true,
|
"input": true,
|
||||||
"keygen": true,
|
"keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility.
|
||||||
"link": true,
|
"link": true,
|
||||||
"meta": true,
|
"meta": true,
|
||||||
"param": true,
|
"param": true,
|
||||||
|
1
vendor/golang.org/x/net/http2/go111.go
generated
vendored
1
vendor/golang.org/x/net/http2/go111.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build go1.11
|
||||||
// +build go1.11
|
// +build go1.11
|
||||||
|
|
||||||
package http2
|
package http2
|
||||||
|
10
vendor/golang.org/x/net/http2/h2c/h2c.go
generated
vendored
10
vendor/golang.org/x/net/http2/h2c/h2c.go
generated
vendored
@ -84,14 +84,20 @@ func (s h2cHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
|
||||||
s.s.ServeConn(conn, &http2.ServeConnOpts{Handler: s.Handler})
|
s.s.ServeConn(conn, &http2.ServeConnOpts{
|
||||||
|
Context: r.Context(),
|
||||||
|
Handler: s.Handler,
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Handle Upgrade to h2c (RFC 7540 Section 3.2)
|
// Handle Upgrade to h2c (RFC 7540 Section 3.2)
|
||||||
if conn, err := h2cUpgrade(w, r); err == nil {
|
if conn, err := h2cUpgrade(w, r); err == nil {
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
|
||||||
s.s.ServeConn(conn, &http2.ServeConnOpts{Handler: s.Handler})
|
s.s.ServeConn(conn, &http2.ServeConnOpts{
|
||||||
|
Context: r.Context(),
|
||||||
|
Handler: s.Handler,
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
vendor/golang.org/x/net/http2/not_go111.go
generated
vendored
1
vendor/golang.org/x/net/http2/not_go111.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build !go1.11
|
||||||
// +build !go1.11
|
// +build !go1.11
|
||||||
|
|
||||||
package http2
|
package http2
|
||||||
|
30
vendor/golang.org/x/net/http2/server.go
generated
vendored
30
vendor/golang.org/x/net/http2/server.go
generated
vendored
@ -1293,7 +1293,9 @@ func (sc *serverConn) startGracefulShutdown() {
|
|||||||
sc.shutdownOnce.Do(func() { sc.sendServeMsg(gracefulShutdownMsg) })
|
sc.shutdownOnce.Do(func() { sc.sendServeMsg(gracefulShutdownMsg) })
|
||||||
}
|
}
|
||||||
|
|
||||||
// After sending GOAWAY, the connection will close after goAwayTimeout.
|
// After sending GOAWAY with an error code (non-graceful shutdown), the
|
||||||
|
// connection will close after goAwayTimeout.
|
||||||
|
//
|
||||||
// If we close the connection immediately after sending GOAWAY, there may
|
// If we close the connection immediately after sending GOAWAY, there may
|
||||||
// be unsent data in our kernel receive buffer, which will cause the kernel
|
// be unsent data in our kernel receive buffer, which will cause the kernel
|
||||||
// to send a TCP RST on close() instead of a FIN. This RST will abort the
|
// to send a TCP RST on close() instead of a FIN. This RST will abort the
|
||||||
@ -1629,23 +1631,37 @@ func (sc *serverConn) processSettingInitialWindowSize(val uint32) error {
|
|||||||
|
|
||||||
func (sc *serverConn) processData(f *DataFrame) error {
|
func (sc *serverConn) processData(f *DataFrame) error {
|
||||||
sc.serveG.check()
|
sc.serveG.check()
|
||||||
if sc.inGoAway && sc.goAwayCode != ErrCodeNo {
|
id := f.Header().StreamID
|
||||||
|
if sc.inGoAway && (sc.goAwayCode != ErrCodeNo || id > sc.maxClientStreamID) {
|
||||||
|
// Discard all DATA frames if the GOAWAY is due to an
|
||||||
|
// error, or:
|
||||||
|
//
|
||||||
|
// Section 6.8: After sending a GOAWAY frame, the sender
|
||||||
|
// can discard frames for streams initiated by the
|
||||||
|
// receiver with identifiers higher than the identified
|
||||||
|
// last stream.
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
data := f.Data()
|
|
||||||
|
|
||||||
// "If a DATA frame is received whose stream is not in "open"
|
data := f.Data()
|
||||||
// or "half closed (local)" state, the recipient MUST respond
|
|
||||||
// with a stream error (Section 5.4.2) of type STREAM_CLOSED."
|
|
||||||
id := f.Header().StreamID
|
|
||||||
state, st := sc.state(id)
|
state, st := sc.state(id)
|
||||||
if id == 0 || state == stateIdle {
|
if id == 0 || state == stateIdle {
|
||||||
|
// Section 6.1: "DATA frames MUST be associated with a
|
||||||
|
// stream. If a DATA frame is received whose stream
|
||||||
|
// identifier field is 0x0, the recipient MUST respond
|
||||||
|
// with a connection error (Section 5.4.1) of type
|
||||||
|
// PROTOCOL_ERROR."
|
||||||
|
//
|
||||||
// Section 5.1: "Receiving any frame other than HEADERS
|
// Section 5.1: "Receiving any frame other than HEADERS
|
||||||
// or PRIORITY on a stream in this state MUST be
|
// or PRIORITY on a stream in this state MUST be
|
||||||
// treated as a connection error (Section 5.4.1) of
|
// treated as a connection error (Section 5.4.1) of
|
||||||
// type PROTOCOL_ERROR."
|
// type PROTOCOL_ERROR."
|
||||||
return ConnectionError(ErrCodeProtocol)
|
return ConnectionError(ErrCodeProtocol)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// "If a DATA frame is received whose stream is not in "open"
|
||||||
|
// or "half closed (local)" state, the recipient MUST respond
|
||||||
|
// with a stream error (Section 5.4.2) of type STREAM_CLOSED."
|
||||||
if st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued {
|
if st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued {
|
||||||
// This includes sending a RST_STREAM if the stream is
|
// This includes sending a RST_STREAM if the stream is
|
||||||
// in stateHalfClosedLocal (which currently means that
|
// in stateHalfClosedLocal (which currently means that
|
||||||
|
35
vendor/golang.org/x/net/http2/transport.go
generated
vendored
35
vendor/golang.org/x/net/http2/transport.go
generated
vendored
@ -154,12 +154,21 @@ func (t *Transport) pingTimeout() time.Duration {
|
|||||||
|
|
||||||
// ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2.
|
// ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2.
|
||||||
// It returns an error if t1 has already been HTTP/2-enabled.
|
// It returns an error if t1 has already been HTTP/2-enabled.
|
||||||
|
//
|
||||||
|
// Use ConfigureTransports instead to configure the HTTP/2 Transport.
|
||||||
func ConfigureTransport(t1 *http.Transport) error {
|
func ConfigureTransport(t1 *http.Transport) error {
|
||||||
_, err := configureTransport(t1)
|
_, err := ConfigureTransports(t1)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func configureTransport(t1 *http.Transport) (*Transport, error) {
|
// ConfigureTransports configures a net/http HTTP/1 Transport to use HTTP/2.
|
||||||
|
// It returns a new HTTP/2 Transport for further configuration.
|
||||||
|
// It returns an error if t1 has already been HTTP/2-enabled.
|
||||||
|
func ConfigureTransports(t1 *http.Transport) (*Transport, error) {
|
||||||
|
return configureTransports(t1)
|
||||||
|
}
|
||||||
|
|
||||||
|
func configureTransports(t1 *http.Transport) (*Transport, error) {
|
||||||
connPool := new(clientConnPool)
|
connPool := new(clientConnPool)
|
||||||
t2 := &Transport{
|
t2 := &Transport{
|
||||||
ConnPool: noDialClientConnPool{connPool},
|
ConnPool: noDialClientConnPool{connPool},
|
||||||
@ -689,6 +698,7 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro
|
|||||||
cc.inflow.add(transportDefaultConnFlow + initialWindowSize)
|
cc.inflow.add(transportDefaultConnFlow + initialWindowSize)
|
||||||
cc.bw.Flush()
|
cc.bw.Flush()
|
||||||
if cc.werr != nil {
|
if cc.werr != nil {
|
||||||
|
cc.Close()
|
||||||
return nil, cc.werr
|
return nil, cc.werr
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1080,6 +1090,15 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
|
|||||||
bodyWriter := cc.t.getBodyWriterState(cs, body)
|
bodyWriter := cc.t.getBodyWriterState(cs, body)
|
||||||
cs.on100 = bodyWriter.on100
|
cs.on100 = bodyWriter.on100
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
cc.wmu.Lock()
|
||||||
|
werr := cc.werr
|
||||||
|
cc.wmu.Unlock()
|
||||||
|
if werr != nil {
|
||||||
|
cc.Close()
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
cc.wmu.Lock()
|
cc.wmu.Lock()
|
||||||
endStream := !hasBody && !hasTrailers
|
endStream := !hasBody && !hasTrailers
|
||||||
werr := cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs)
|
werr := cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs)
|
||||||
@ -1129,6 +1148,9 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
|
|||||||
// we can keep it.
|
// we can keep it.
|
||||||
bodyWriter.cancel()
|
bodyWriter.cancel()
|
||||||
cs.abortRequestBodyWrite(errStopReqBodyWrite)
|
cs.abortRequestBodyWrite(errStopReqBodyWrite)
|
||||||
|
if hasBody && !bodyWritten {
|
||||||
|
<-bodyWriter.resc
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if re.err != nil {
|
if re.err != nil {
|
||||||
cc.forgetStreamID(cs.ID)
|
cc.forgetStreamID(cs.ID)
|
||||||
@ -1149,6 +1171,7 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
|
|||||||
} else {
|
} else {
|
||||||
bodyWriter.cancel()
|
bodyWriter.cancel()
|
||||||
cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
|
cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
|
||||||
|
<-bodyWriter.resc
|
||||||
}
|
}
|
||||||
cc.forgetStreamID(cs.ID)
|
cc.forgetStreamID(cs.ID)
|
||||||
return nil, cs.getStartedWrite(), errTimeout
|
return nil, cs.getStartedWrite(), errTimeout
|
||||||
@ -1158,6 +1181,7 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
|
|||||||
} else {
|
} else {
|
||||||
bodyWriter.cancel()
|
bodyWriter.cancel()
|
||||||
cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
|
cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
|
||||||
|
<-bodyWriter.resc
|
||||||
}
|
}
|
||||||
cc.forgetStreamID(cs.ID)
|
cc.forgetStreamID(cs.ID)
|
||||||
return nil, cs.getStartedWrite(), ctx.Err()
|
return nil, cs.getStartedWrite(), ctx.Err()
|
||||||
@ -1167,6 +1191,7 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
|
|||||||
} else {
|
} else {
|
||||||
bodyWriter.cancel()
|
bodyWriter.cancel()
|
||||||
cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
|
cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
|
||||||
|
<-bodyWriter.resc
|
||||||
}
|
}
|
||||||
cc.forgetStreamID(cs.ID)
|
cc.forgetStreamID(cs.ID)
|
||||||
return nil, cs.getStartedWrite(), errRequestCanceled
|
return nil, cs.getStartedWrite(), errRequestCanceled
|
||||||
@ -1176,6 +1201,7 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
|
|||||||
// forgetStreamID.
|
// forgetStreamID.
|
||||||
return nil, cs.getStartedWrite(), cs.resetErr
|
return nil, cs.getStartedWrite(), cs.resetErr
|
||||||
case err := <-bodyWriter.resc:
|
case err := <-bodyWriter.resc:
|
||||||
|
bodyWritten = true
|
||||||
// Prefer the read loop's response, if available. Issue 16102.
|
// Prefer the read loop's response, if available. Issue 16102.
|
||||||
select {
|
select {
|
||||||
case re := <-readLoopResCh:
|
case re := <-readLoopResCh:
|
||||||
@ -1186,7 +1212,6 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
|
|||||||
cc.forgetStreamID(cs.ID)
|
cc.forgetStreamID(cs.ID)
|
||||||
return nil, cs.getStartedWrite(), err
|
return nil, cs.getStartedWrite(), err
|
||||||
}
|
}
|
||||||
bodyWritten = true
|
|
||||||
if d := cc.responseHeaderTimeout(); d != 0 {
|
if d := cc.responseHeaderTimeout(); d != 0 {
|
||||||
timer := time.NewTimer(d)
|
timer := time.NewTimer(d)
|
||||||
defer timer.Stop()
|
defer timer.Stop()
|
||||||
@ -2607,7 +2632,9 @@ func (t *Transport) getBodyWriterState(cs *clientStream, body io.Reader) (s body
|
|||||||
|
|
||||||
func (s bodyWriterState) cancel() {
|
func (s bodyWriterState) cancel() {
|
||||||
if s.timer != nil {
|
if s.timer != nil {
|
||||||
s.timer.Stop()
|
if s.timer.Stop() {
|
||||||
|
s.resc <- nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
vendor/golang.org/x/net/idna/idna10.0.0.go
generated
vendored
1
vendor/golang.org/x/net/idna/idna10.0.0.go
generated
vendored
@ -4,6 +4,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build go1.10
|
||||||
// +build go1.10
|
// +build go1.10
|
||||||
|
|
||||||
// Package idna implements IDNA2008 using the compatibility processing
|
// Package idna implements IDNA2008 using the compatibility processing
|
||||||
|
1
vendor/golang.org/x/net/idna/idna9.0.0.go
generated
vendored
1
vendor/golang.org/x/net/idna/idna9.0.0.go
generated
vendored
@ -4,6 +4,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build !go1.10
|
||||||
// +build !go1.10
|
// +build !go1.10
|
||||||
|
|
||||||
// Package idna implements IDNA2008 using the compatibility processing
|
// Package idna implements IDNA2008 using the compatibility processing
|
||||||
|
1
vendor/golang.org/x/net/idna/tables10.0.0.go
generated
vendored
1
vendor/golang.org/x/net/idna/tables10.0.0.go
generated
vendored
@ -1,5 +1,6 @@
|
|||||||
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
|
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
|
||||||
|
|
||||||
|
//go:build go1.10 && !go1.13
|
||||||
// +build go1.10,!go1.13
|
// +build go1.10,!go1.13
|
||||||
|
|
||||||
package idna
|
package idna
|
||||||
|
1
vendor/golang.org/x/net/idna/tables11.0.0.go
generated
vendored
1
vendor/golang.org/x/net/idna/tables11.0.0.go
generated
vendored
@ -1,5 +1,6 @@
|
|||||||
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
|
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
|
||||||
|
|
||||||
|
//go:build go1.13 && !go1.14
|
||||||
// +build go1.13,!go1.14
|
// +build go1.13,!go1.14
|
||||||
|
|
||||||
package idna
|
package idna
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
|
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
|
||||||
|
|
||||||
// +build go1.14
|
//go:build go1.14 && !go1.16
|
||||||
|
// +build go1.14,!go1.16
|
||||||
|
|
||||||
package idna
|
package idna
|
||||||
|
|
4840
vendor/golang.org/x/net/idna/tables13.0.0.go
generated
vendored
Normal file
4840
vendor/golang.org/x/net/idna/tables13.0.0.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
vendor/golang.org/x/net/idna/tables9.0.0.go
generated
vendored
1
vendor/golang.org/x/net/idna/tables9.0.0.go
generated
vendored
@ -1,5 +1,6 @@
|
|||||||
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
|
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
|
||||||
|
|
||||||
|
//go:build !go1.10
|
||||||
// +build !go1.10
|
// +build !go1.10
|
||||||
|
|
||||||
package idna
|
package idna
|
||||||
|
1
vendor/golang.org/x/sys/cpu/cpu_aix.go
generated
vendored
1
vendor/golang.org/x/sys/cpu/cpu_aix.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build aix
|
||||||
// +build aix
|
// +build aix
|
||||||
|
|
||||||
package cpu
|
package cpu
|
||||||
|
1
vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go
generated
vendored
1
vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build gc
|
||||||
// +build gc
|
// +build gc
|
||||||
|
|
||||||
package cpu
|
package cpu
|
||||||
|
1
vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go
generated
vendored
1
vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build gc
|
||||||
// +build gc
|
// +build gc
|
||||||
|
|
||||||
package cpu
|
package cpu
|
||||||
|
1
vendor/golang.org/x/sys/cpu/cpu_gc_x86.go
generated
vendored
1
vendor/golang.org/x/sys/cpu/cpu_gc_x86.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build (386 || amd64 || amd64p32) && gc
|
||||||
// +build 386 amd64 amd64p32
|
// +build 386 amd64 amd64p32
|
||||||
// +build gc
|
// +build gc
|
||||||
|
|
||||||
|
1
vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go
generated
vendored
1
vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build gccgo
|
||||||
// +build gccgo
|
// +build gccgo
|
||||||
|
|
||||||
package cpu
|
package cpu
|
||||||
|
1
vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go
generated
vendored
1
vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build gccgo
|
||||||
// +build gccgo
|
// +build gccgo
|
||||||
|
|
||||||
package cpu
|
package cpu
|
||||||
|
1
vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go
generated
vendored
1
vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build (386 || amd64 || amd64p32) && gccgo
|
||||||
// +build 386 amd64 amd64p32
|
// +build 386 amd64 amd64p32
|
||||||
// +build gccgo
|
// +build gccgo
|
||||||
|
|
||||||
|
1
vendor/golang.org/x/sys/cpu/cpu_linux.go
generated
vendored
1
vendor/golang.org/x/sys/cpu/cpu_linux.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build !386 && !amd64 && !amd64p32 && !arm64
|
||||||
// +build !386,!amd64,!amd64p32,!arm64
|
// +build !386,!amd64,!amd64p32,!arm64
|
||||||
|
|
||||||
package cpu
|
package cpu
|
||||||
|
1
vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go
generated
vendored
1
vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build linux && (mips64 || mips64le)
|
||||||
// +build linux
|
// +build linux
|
||||||
// +build mips64 mips64le
|
// +build mips64 mips64le
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user