communicator/winrm: include configured timeout in winrm server
* upgrade windows dependencies * communicator/winrm: include configured timeout in winrm server
This commit is contained in:
parent
2564203312
commit
d4ec69cfb3
|
@ -35,6 +35,7 @@ func New(s *terraform.InstanceState) (*Communicator, error) {
|
||||||
Port: connInfo.Port,
|
Port: connInfo.Port,
|
||||||
HTTPS: connInfo.HTTPS,
|
HTTPS: connInfo.HTTPS,
|
||||||
Insecure: connInfo.Insecure,
|
Insecure: connInfo.Insecure,
|
||||||
|
Timeout: connInfo.TimeoutVal,
|
||||||
}
|
}
|
||||||
if len(connInfo.CACert) > 0 {
|
if len(connInfo.CACert) > 0 {
|
||||||
endpoint.CACert = []byte(connInfo.CACert)
|
endpoint.CACert = []byte(connInfo.CACert)
|
||||||
|
|
15
go.mod
15
go.mod
|
@ -4,6 +4,8 @@ require (
|
||||||
cloud.google.com/go v0.45.1
|
cloud.google.com/go v0.45.1
|
||||||
github.com/Azure/azure-sdk-for-go v40.3.0+incompatible
|
github.com/Azure/azure-sdk-for-go v40.3.0+incompatible
|
||||||
github.com/Azure/go-autorest/autorest v0.10.0
|
github.com/Azure/go-autorest/autorest v0.10.0
|
||||||
|
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c // indirect
|
||||||
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20190607011252-c5096ec8773d // indirect
|
||||||
github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af // indirect
|
github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af // indirect
|
||||||
github.com/agext/levenshtein v1.2.2
|
github.com/agext/levenshtein v1.2.2
|
||||||
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 // indirect
|
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 // indirect
|
||||||
|
@ -34,6 +36,7 @@ require (
|
||||||
github.com/dylanmei/iso8601 v0.1.0 // indirect
|
github.com/dylanmei/iso8601 v0.1.0 // indirect
|
||||||
github.com/dylanmei/winrmtest v0.0.0-20190225150635-99b7fe2fddf1
|
github.com/dylanmei/winrmtest v0.0.0-20190225150635-99b7fe2fddf1
|
||||||
github.com/go-test/deep v1.0.3
|
github.com/go-test/deep v1.0.3
|
||||||
|
github.com/gofrs/uuid v3.3.0+incompatible // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7 // indirect
|
github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7 // indirect
|
||||||
github.com/golang/mock v1.3.1
|
github.com/golang/mock v1.3.1
|
||||||
github.com/golang/protobuf v1.3.4
|
github.com/golang/protobuf v1.3.4
|
||||||
|
@ -84,7 +87,8 @@ require (
|
||||||
github.com/lib/pq v1.0.0
|
github.com/lib/pq v1.0.0
|
||||||
github.com/likexian/gokit v0.20.15
|
github.com/likexian/gokit v0.20.15
|
||||||
github.com/lusis/go-artifactory v0.0.0-20160115162124-7e4ce345df82
|
github.com/lusis/go-artifactory v0.0.0-20160115162124-7e4ce345df82
|
||||||
github.com/masterzen/winrm v0.0.0-20190223112901-5e5c9a7fe54b
|
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 // indirect
|
||||||
|
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88
|
||||||
github.com/mattn/go-colorable v0.1.1
|
github.com/mattn/go-colorable v0.1.1
|
||||||
github.com/mattn/go-shellwords v1.0.4
|
github.com/mattn/go-shellwords v1.0.4
|
||||||
github.com/miekg/dns v1.0.8 // indirect
|
github.com/miekg/dns v1.0.8 // indirect
|
||||||
|
@ -100,7 +104,8 @@ require (
|
||||||
github.com/mitchellh/panicwrap v1.0.0
|
github.com/mitchellh/panicwrap v1.0.0
|
||||||
github.com/mitchellh/prefixedio v0.0.0-20190213213902-5733675afd51
|
github.com/mitchellh/prefixedio v0.0.0-20190213213902-5733675afd51
|
||||||
github.com/mitchellh/reflectwalk v1.0.1
|
github.com/mitchellh/reflectwalk v1.0.1
|
||||||
github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58
|
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect
|
||||||
|
github.com/packer-community/winrmcp v0.0.0-20180921211025-c76d91c1e7db
|
||||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c // indirect
|
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c // indirect
|
||||||
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4
|
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
|
@ -125,11 +130,11 @@ require (
|
||||||
go.uber.org/atomic v1.3.2 // indirect
|
go.uber.org/atomic v1.3.2 // indirect
|
||||||
go.uber.org/multierr v1.1.0 // indirect
|
go.uber.org/multierr v1.1.0 // indirect
|
||||||
go.uber.org/zap v1.9.1 // indirect
|
go.uber.org/zap v1.9.1 // indirect
|
||||||
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37
|
golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9
|
||||||
golang.org/x/mod v0.2.0
|
golang.org/x/mod v0.2.0
|
||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a
|
golang.org/x/net v0.0.0-20200602114024-627f9648deb9
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
||||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd
|
||||||
golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371
|
golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371
|
||||||
google.golang.org/api v0.9.0
|
google.golang.org/api v0.9.0
|
||||||
google.golang.org/grpc v1.27.1
|
google.golang.org/grpc v1.27.1
|
||||||
|
|
20
go.sum
20
go.sum
|
@ -43,10 +43,14 @@ github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VY
|
||||||
github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=
|
github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=
|
||||||
github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4 h1:pSm8mp0T2OH2CPmPDPtwHPr3VAQaOwVF/JbllOPP4xA=
|
github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4 h1:pSm8mp0T2OH2CPmPDPtwHPr3VAQaOwVF/JbllOPP4xA=
|
||||||
github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
||||||
|
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28=
|
||||||
|
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022 h1:y8Gs8CzNfDF5AZvjr+5UyGQvQEBL7pwo+v+wX6q9JI8=
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022 h1:y8Gs8CzNfDF5AZvjr+5UyGQvQEBL7pwo+v+wX6q9JI8=
|
||||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4=
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4=
|
||||||
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20190607011252-c5096ec8773d h1:W1diKnDQkXxNDhghdBSbQ4LI/E1aJNTwpqPp3KtlB8w=
|
||||||
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20190607011252-c5096ec8773d/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
|
@ -165,6 +169,10 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
|
||||||
github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
|
github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
|
||||||
github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
|
github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
|
||||||
github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
|
github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
|
||||||
|
github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE=
|
||||||
|
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||||
|
github.com/gofrs/uuid v3.3.0+incompatible h1:8K4tyRfvU1CYPgJsveYFQMhpFd/wXNM7iK6rR7UHz84=
|
||||||
|
github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||||
github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
|
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
|
||||||
|
@ -353,8 +361,12 @@ github.com/lusis/go-artifactory v0.0.0-20160115162124-7e4ce345df82/go.mod h1:y54
|
||||||
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9 h1:SmVbOZFWAlyQshuMfOkiAx1f5oUTsOGG5IXplAEYeeM=
|
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9 h1:SmVbOZFWAlyQshuMfOkiAx1f5oUTsOGG5IXplAEYeeM=
|
||||||
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc=
|
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc=
|
||||||
|
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 h1:2ZKn+w/BJeL43sCxI2jhPLRv73oVVOjEKZjKkflyqxg=
|
||||||
|
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc=
|
||||||
github.com/masterzen/winrm v0.0.0-20190223112901-5e5c9a7fe54b h1:/1RFh2SLCJ+tEnT73+Fh5R2AO89sQqs8ba7o+hx1G0Y=
|
github.com/masterzen/winrm v0.0.0-20190223112901-5e5c9a7fe54b h1:/1RFh2SLCJ+tEnT73+Fh5R2AO89sQqs8ba7o+hx1G0Y=
|
||||||
github.com/masterzen/winrm v0.0.0-20190223112901-5e5c9a7fe54b/go.mod h1:wr1VqkwW0AB5JS0QLy5GpVMS9E3VtRoSYXUYyVk46KY=
|
github.com/masterzen/winrm v0.0.0-20190223112901-5e5c9a7fe54b/go.mod h1:wr1VqkwW0AB5JS0QLy5GpVMS9E3VtRoSYXUYyVk46KY=
|
||||||
|
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88 h1:cxuVcCvCLD9yYDbRCWw0jSgh1oT6P6mv3aJDKK5o7X4=
|
||||||
|
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88/go.mod h1:a2HXwefeat3evJHxFXSayvRHpYEPJYtErl4uIzfaUqY=
|
||||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||||
github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg=
|
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-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||||
|
@ -426,6 +438,8 @@ github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuB
|
||||||
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||||
github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58 h1:m3CEgv3ah1Rhy82L+c0QG/U3VyY1UsvsIdkh0/rU97Y=
|
github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58 h1:m3CEgv3ah1Rhy82L+c0QG/U3VyY1UsvsIdkh0/rU97Y=
|
||||||
github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58/go.mod h1:f6Izs6JvFTdnRbziASagjZ2vmf55NSIkC/weStxCHqk=
|
github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58/go.mod h1:f6Izs6JvFTdnRbziASagjZ2vmf55NSIkC/weStxCHqk=
|
||||||
|
github.com/packer-community/winrmcp v0.0.0-20180921211025-c76d91c1e7db h1:9uViuKtx1jrlXLBW/pMnhOfzn3iSEdLase/But/IZRU=
|
||||||
|
github.com/packer-community/winrmcp v0.0.0-20180921211025-c76d91c1e7db/go.mod h1:f6Izs6JvFTdnRbziASagjZ2vmf55NSIkC/weStxCHqk=
|
||||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs=
|
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs=
|
||||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
|
@ -537,6 +551,8 @@ golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPh
|
||||||
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37 h1:cg5LA/zNPRzIXIWSCxQW10Rvpy94aQh3LT/ShoCpkHw=
|
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37 h1:cg5LA/zNPRzIXIWSCxQW10Rvpy94aQh3LT/ShoCpkHw=
|
||||||
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9 h1:vEg9joUBmeBcK9iSJftGNf3coIG4HqZElCPehJsfAYM=
|
||||||
|
golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
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-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
|
@ -573,6 +589,8 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjut
|
||||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
|
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
|
||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM=
|
||||||
|
golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
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-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
|
@ -607,6 +625,8 @@ golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9 h1:ZBzSG/7F4eNKz2L3GE9o300RX
|
||||||
golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So=
|
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So=
|
||||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
|
||||||
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/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=
|
||||||
|
|
|
@ -3,7 +3,7 @@ sudo: false
|
||||||
language: go
|
language: go
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- go get -u github.com/golang/lint/golint
|
- go get -u golang.org/x/lint/golint
|
||||||
|
|
||||||
go:
|
go:
|
||||||
- 1.10.x
|
- 1.10.x
|
||||||
|
|
|
@ -4,7 +4,9 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
|
"encoding/hex"
|
||||||
"errors"
|
"errors"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -123,6 +125,59 @@ func ProcessChallenge(challengeMessageData []byte, user, password string) ([]byt
|
||||||
am.LmChallengeResponse = computeLmV2Response(ntlmV2Hash,
|
am.LmChallengeResponse = computeLmV2Response(ntlmV2Hash,
|
||||||
cm.ServerChallenge[:], clientChallenge)
|
cm.ServerChallenge[:], clientChallenge)
|
||||||
}
|
}
|
||||||
|
return am.MarshalBinary()
|
||||||
|
}
|
||||||
|
|
||||||
|
func ProcessChallengeWithHash(challengeMessageData []byte, user, hash string) ([]byte, error) {
|
||||||
|
if user == "" && hash == "" {
|
||||||
|
return nil, errors.New("Anonymous authentication not supported")
|
||||||
|
}
|
||||||
|
|
||||||
|
var cm challengeMessage
|
||||||
|
if err := cm.UnmarshalBinary(challengeMessageData); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if cm.NegotiateFlags.Has(negotiateFlagNTLMSSPNEGOTIATELMKEY) {
|
||||||
|
return nil, errors.New("Only NTLM v2 is supported, but server requested v1 (NTLMSSP_NEGOTIATE_LM_KEY)")
|
||||||
|
}
|
||||||
|
if cm.NegotiateFlags.Has(negotiateFlagNTLMSSPNEGOTIATEKEYEXCH) {
|
||||||
|
return nil, errors.New("Key exchange requested but not supported (NTLMSSP_NEGOTIATE_KEY_EXCH)")
|
||||||
|
}
|
||||||
|
|
||||||
|
am := authenicateMessage{
|
||||||
|
UserName: user,
|
||||||
|
TargetName: cm.TargetName,
|
||||||
|
NegotiateFlags: cm.NegotiateFlags,
|
||||||
|
}
|
||||||
|
|
||||||
|
timestamp := cm.TargetInfo[avIDMsvAvTimestamp]
|
||||||
|
if timestamp == nil { // no time sent, take current time
|
||||||
|
ft := uint64(time.Now().UnixNano()) / 100
|
||||||
|
ft += 116444736000000000 // add time between unix & windows offset
|
||||||
|
timestamp = make([]byte, 8)
|
||||||
|
binary.LittleEndian.PutUint64(timestamp, ft)
|
||||||
|
}
|
||||||
|
|
||||||
|
clientChallenge := make([]byte, 8)
|
||||||
|
rand.Reader.Read(clientChallenge)
|
||||||
|
|
||||||
|
hashParts := strings.Split(hash, ":")
|
||||||
|
if len(hashParts) > 1 {
|
||||||
|
hash = hashParts[1]
|
||||||
|
}
|
||||||
|
hashBytes, err := hex.DecodeString(hash)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
ntlmV2Hash := hmacMd5(hashBytes, toUnicode(strings.ToUpper(user)+cm.TargetName))
|
||||||
|
|
||||||
|
am.NtChallengeResponse = computeNtlmV2Response(ntlmV2Hash,
|
||||||
|
cm.ServerChallenge[:], clientChallenge, timestamp, cm.TargetInfoRaw)
|
||||||
|
|
||||||
|
if cm.TargetInfoRaw == nil {
|
||||||
|
am.LmChallengeResponse = computeLmV2Response(ntlmV2Hash,
|
||||||
|
cm.ServerChallenge[:], clientChallenge)
|
||||||
|
}
|
||||||
return am.MarshalBinary()
|
return am.MarshalBinary()
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,7 +137,7 @@ func (l Negotiator) RoundTrip(req *http.Request) (res *http.Response, err error)
|
||||||
|
|
||||||
req.Body = ioutil.NopCloser(bytes.NewReader(body.Bytes()))
|
req.Body = ioutil.NopCloser(bytes.NewReader(body.Bytes()))
|
||||||
|
|
||||||
res, err = rt.RoundTrip(req)
|
return rt.RoundTrip(req)
|
||||||
}
|
}
|
||||||
|
|
||||||
return res, err
|
return res, err
|
||||||
|
|
|
@ -27,12 +27,12 @@ var beginPathType = map[lexer.XItemType]bool{
|
||||||
func (n *Node) add(i lexer.XItem) {
|
func (n *Node) add(i lexer.XItem) {
|
||||||
if n.Val.Typ == Empty {
|
if n.Val.Typ == Empty {
|
||||||
n.Val = i
|
n.Val = i
|
||||||
} else if n.Left == nil {
|
} else if n.Left == nil && n.Right == nil {
|
||||||
n.Left = &Node{Val: n.Val, Parent: n}
|
n.Left = &Node{Val: n.Val, Parent: n}
|
||||||
n.Val = i
|
n.Val = i
|
||||||
} else if beginPathType[n.Val.Typ] {
|
} else if beginPathType[n.Val.Typ] {
|
||||||
next := &Node{Val: n.Val, Left: n.Left, Parent: n}
|
next := &Node{Val: n.Val, Left: n.Left, Right: n.Right, Parent: n}
|
||||||
n.Left = next
|
n.Left, n.Right = next, nil
|
||||||
n.Val = i
|
n.Val = i
|
||||||
} else if n.Right == nil {
|
} else if n.Right == nil {
|
||||||
n.Right = &Node{Val: i, Parent: n}
|
n.Right = &Node{Val: i, Parent: n}
|
||||||
|
|
|
@ -128,6 +128,12 @@ func xiEndPath(p *parseStack, i lexer.XItem) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func xiFunc(p *parseStack, i lexer.XItem) {
|
func xiFunc(p *parseStack, i lexer.XItem) {
|
||||||
|
if p.cur.Val.Typ == Empty {
|
||||||
|
p.cur.pushNotEmpty(i)
|
||||||
|
p.push(funcState)
|
||||||
|
p.cur = p.cur.next
|
||||||
|
return
|
||||||
|
}
|
||||||
p.cur.push(i)
|
p.cur.push(i)
|
||||||
p.cur = p.cur.next
|
p.cur = p.cur.next
|
||||||
p.push(funcState)
|
p.push(funcState)
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
# Binaries for programs and plugins
|
||||||
|
*.exe
|
||||||
|
*.exe~
|
||||||
|
*.dll
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
|
||||||
|
# Test binary, build with `go test -c`
|
||||||
|
*.test
|
||||||
|
|
||||||
|
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||||
|
*.out
|
||||||
|
|
||||||
|
# binary bundle generated by go-fuzz
|
||||||
|
uuid-fuzz.zip
|
|
@ -0,0 +1,22 @@
|
||||||
|
language: go
|
||||||
|
sudo: false
|
||||||
|
go:
|
||||||
|
- 1.7.x
|
||||||
|
- 1.8.x
|
||||||
|
- 1.9.x
|
||||||
|
- 1.10.x
|
||||||
|
- 1.11.x
|
||||||
|
- 1.12.x
|
||||||
|
- tip
|
||||||
|
matrix:
|
||||||
|
allow_failures:
|
||||||
|
- go: tip
|
||||||
|
fast_finish: true
|
||||||
|
before_install:
|
||||||
|
- go get golang.org/x/tools/cmd/cover
|
||||||
|
script:
|
||||||
|
- go test ./... -race -coverprofile=coverage.txt -covermode=atomic
|
||||||
|
after_success:
|
||||||
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
|
notifications:
|
||||||
|
email: false
|
|
@ -0,0 +1,20 @@
|
||||||
|
Copyright (C) 2013-2018 by Maxim Bublis <b@codemonkey.ru>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,109 @@
|
||||||
|
# UUID
|
||||||
|
|
||||||
|
[![License](https://img.shields.io/github/license/gofrs/uuid.svg)](https://github.com/gofrs/uuid/blob/master/LICENSE)
|
||||||
|
[![Build Status](https://travis-ci.org/gofrs/uuid.svg?branch=master)](https://travis-ci.org/gofrs/uuid)
|
||||||
|
[![GoDoc](http://godoc.org/github.com/gofrs/uuid?status.svg)](http://godoc.org/github.com/gofrs/uuid)
|
||||||
|
[![Coverage Status](https://codecov.io/gh/gofrs/uuid/branch/master/graphs/badge.svg?branch=master)](https://codecov.io/gh/gofrs/uuid/)
|
||||||
|
[![Go Report Card](https://goreportcard.com/badge/github.com/gofrs/uuid)](https://goreportcard.com/report/github.com/gofrs/uuid)
|
||||||
|
|
||||||
|
Package uuid provides a pure Go implementation of Universally Unique Identifiers
|
||||||
|
(UUID) variant as defined in RFC-4122. This package supports both the creation
|
||||||
|
and parsing of UUIDs in different formats.
|
||||||
|
|
||||||
|
This package supports the following UUID versions:
|
||||||
|
* Version 1, based on timestamp and MAC address (RFC-4122)
|
||||||
|
* Version 2, based on timestamp, MAC address and POSIX UID/GID (DCE 1.1)
|
||||||
|
* Version 3, based on MD5 hashing of a named value (RFC-4122)
|
||||||
|
* Version 4, based on random numbers (RFC-4122)
|
||||||
|
* Version 5, based on SHA-1 hashing of a named value (RFC-4122)
|
||||||
|
|
||||||
|
## Project History
|
||||||
|
|
||||||
|
This project was originally forked from the
|
||||||
|
[github.com/satori/go.uuid](https://github.com/satori/go.uuid) repository after
|
||||||
|
it appeared to be no longer maintained, while exhibiting [critical
|
||||||
|
flaws](https://github.com/satori/go.uuid/issues/73). We have decided to take
|
||||||
|
over this project to ensure it receives regular maintenance for the benefit of
|
||||||
|
the larger Go community.
|
||||||
|
|
||||||
|
We'd like to thank Maxim Bublis for his hard work on the original iteration of
|
||||||
|
the package.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This source code of this package is released under the MIT License. Please see
|
||||||
|
the [LICENSE](https://github.com/gofrs/uuid/blob/master/LICENSE) for the full
|
||||||
|
content of the license.
|
||||||
|
|
||||||
|
## Recommended Package Version
|
||||||
|
|
||||||
|
We recommend using v2.0.0+ of this package, as versions prior to 2.0.0 were
|
||||||
|
created before our fork of the original package and have some known
|
||||||
|
deficiencies.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
It is recommended to use a package manager like `dep` that understands tagged
|
||||||
|
releases of a package, as well as semantic versioning.
|
||||||
|
|
||||||
|
If you are unable to make use of a dependency manager with your project, you can
|
||||||
|
use the `go get` command to download it directly:
|
||||||
|
|
||||||
|
```Shell
|
||||||
|
$ go get github.com/gofrs/uuid
|
||||||
|
```
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
Due to subtests not being supported in older versions of Go, this package is
|
||||||
|
only regularly tested against Go 1.7+. This package may work perfectly fine with
|
||||||
|
Go 1.2+, but support for these older versions is not actively maintained.
|
||||||
|
|
||||||
|
## Go 1.11 Modules
|
||||||
|
|
||||||
|
As of v3.2.0, this repository no longer adopts Go modules, and v3.2.0 no longer has a `go.mod` file. As a result, v3.2.0 also drops support for the `github.com/gofrs/uuid/v3` import path. Only module-based consumers are impacted. With the v3.2.0 release, _all_ gofrs/uuid consumers should use the `github.com/gofrs/uuid` import path.
|
||||||
|
|
||||||
|
An existing module-based consumer will continue to be able to build using the `github.com/gofrs/uuid/v3` import path using any valid consumer `go.mod` that worked prior to the publishing of v3.2.0, but any module-based consumer should start using the `github.com/gofrs/uuid` import path when possible and _must_ use the `github.com/gofrs/uuid` import path prior to upgrading to v3.2.0.
|
||||||
|
|
||||||
|
Please refer to [Issue #61](https://github.com/gofrs/uuid/issues/61) and [Issue #66](https://github.com/gofrs/uuid/issues/66) for more details.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Here is a quick overview of how to use this package. For more detailed
|
||||||
|
documentation, please see the [GoDoc Page](http://godoc.org/github.com/gofrs/uuid).
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
|
||||||
|
"github.com/gofrs/uuid"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Create a Version 4 UUID, panicking on error.
|
||||||
|
// Use this form to initialize package-level variables.
|
||||||
|
var u1 = uuid.Must(uuid.NewV4())
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// Create a Version 4 UUID.
|
||||||
|
u2, err := uuid.NewV4()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to generate UUID: %v", err)
|
||||||
|
}
|
||||||
|
log.Printf("generated Version 4 UUID %v", u2)
|
||||||
|
|
||||||
|
// Parse a UUID from a string.
|
||||||
|
s := "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
|
||||||
|
u3, err := uuid.FromString(s)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to parse UUID %q: %v", s, err)
|
||||||
|
}
|
||||||
|
log.Printf("successfully parsed UUID %v", u3)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
* [RFC-4122](https://tools.ietf.org/html/rfc4122)
|
||||||
|
* [DCE 1.1: Authentication and Security Services](http://pubs.opengroup.org/onlinepubs/9696989899/chap5.htm#tagcjh_08_02_01_01)
|
|
@ -0,0 +1,212 @@
|
||||||
|
// Copyright (C) 2013-2018 by Maxim Bublis <b@codemonkey.ru>
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
// a copy of this software and associated documentation files (the
|
||||||
|
// "Software"), to deal in the Software without restriction, including
|
||||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
// permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
// the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be
|
||||||
|
// included in all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/hex"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FromBytes returns a UUID generated from the raw byte slice input.
|
||||||
|
// It will return an error if the slice isn't 16 bytes long.
|
||||||
|
func FromBytes(input []byte) (UUID, error) {
|
||||||
|
u := UUID{}
|
||||||
|
err := u.UnmarshalBinary(input)
|
||||||
|
return u, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// FromBytesOrNil returns a UUID generated from the raw byte slice input.
|
||||||
|
// Same behavior as FromBytes(), but returns uuid.Nil instead of an error.
|
||||||
|
func FromBytesOrNil(input []byte) UUID {
|
||||||
|
uuid, err := FromBytes(input)
|
||||||
|
if err != nil {
|
||||||
|
return Nil
|
||||||
|
}
|
||||||
|
return uuid
|
||||||
|
}
|
||||||
|
|
||||||
|
// FromString returns a UUID parsed from the input string.
|
||||||
|
// Input is expected in a form accepted by UnmarshalText.
|
||||||
|
func FromString(input string) (UUID, error) {
|
||||||
|
u := UUID{}
|
||||||
|
err := u.UnmarshalText([]byte(input))
|
||||||
|
return u, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// FromStringOrNil returns a UUID parsed from the input string.
|
||||||
|
// Same behavior as FromString(), but returns uuid.Nil instead of an error.
|
||||||
|
func FromStringOrNil(input string) UUID {
|
||||||
|
uuid, err := FromString(input)
|
||||||
|
if err != nil {
|
||||||
|
return Nil
|
||||||
|
}
|
||||||
|
return uuid
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalText implements the encoding.TextMarshaler interface.
|
||||||
|
// The encoding is the same as returned by the String() method.
|
||||||
|
func (u UUID) MarshalText() ([]byte, error) {
|
||||||
|
return []byte(u.String()), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalText implements the encoding.TextUnmarshaler interface.
|
||||||
|
// Following formats are supported:
|
||||||
|
//
|
||||||
|
// "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
|
||||||
|
// "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}",
|
||||||
|
// "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8"
|
||||||
|
// "6ba7b8109dad11d180b400c04fd430c8"
|
||||||
|
// "{6ba7b8109dad11d180b400c04fd430c8}",
|
||||||
|
// "urn:uuid:6ba7b8109dad11d180b400c04fd430c8"
|
||||||
|
//
|
||||||
|
// ABNF for supported UUID text representation follows:
|
||||||
|
//
|
||||||
|
// URN := 'urn'
|
||||||
|
// UUID-NID := 'uuid'
|
||||||
|
//
|
||||||
|
// hexdig := '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' |
|
||||||
|
// 'a' | 'b' | 'c' | 'd' | 'e' | 'f' |
|
||||||
|
// 'A' | 'B' | 'C' | 'D' | 'E' | 'F'
|
||||||
|
//
|
||||||
|
// hexoct := hexdig hexdig
|
||||||
|
// 2hexoct := hexoct hexoct
|
||||||
|
// 4hexoct := 2hexoct 2hexoct
|
||||||
|
// 6hexoct := 4hexoct 2hexoct
|
||||||
|
// 12hexoct := 6hexoct 6hexoct
|
||||||
|
//
|
||||||
|
// hashlike := 12hexoct
|
||||||
|
// canonical := 4hexoct '-' 2hexoct '-' 2hexoct '-' 6hexoct
|
||||||
|
//
|
||||||
|
// plain := canonical | hashlike
|
||||||
|
// uuid := canonical | hashlike | braced | urn
|
||||||
|
//
|
||||||
|
// braced := '{' plain '}' | '{' hashlike '}'
|
||||||
|
// urn := URN ':' UUID-NID ':' plain
|
||||||
|
//
|
||||||
|
func (u *UUID) UnmarshalText(text []byte) error {
|
||||||
|
switch len(text) {
|
||||||
|
case 32:
|
||||||
|
return u.decodeHashLike(text)
|
||||||
|
case 34, 38:
|
||||||
|
return u.decodeBraced(text)
|
||||||
|
case 36:
|
||||||
|
return u.decodeCanonical(text)
|
||||||
|
case 41, 45:
|
||||||
|
return u.decodeURN(text)
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("uuid: incorrect UUID length %d in string %q", len(text), text)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// decodeCanonical decodes UUID strings that are formatted as defined in RFC-4122 (section 3):
|
||||||
|
// "6ba7b810-9dad-11d1-80b4-00c04fd430c8".
|
||||||
|
func (u *UUID) decodeCanonical(t []byte) error {
|
||||||
|
if t[8] != '-' || t[13] != '-' || t[18] != '-' || t[23] != '-' {
|
||||||
|
return fmt.Errorf("uuid: incorrect UUID format in string %q", t)
|
||||||
|
}
|
||||||
|
|
||||||
|
src := t
|
||||||
|
dst := u[:]
|
||||||
|
|
||||||
|
for i, byteGroup := range byteGroups {
|
||||||
|
if i > 0 {
|
||||||
|
src = src[1:] // skip dash
|
||||||
|
}
|
||||||
|
_, err := hex.Decode(dst[:byteGroup/2], src[:byteGroup])
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
src = src[byteGroup:]
|
||||||
|
dst = dst[byteGroup/2:]
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// decodeHashLike decodes UUID strings that are using the following format:
|
||||||
|
// "6ba7b8109dad11d180b400c04fd430c8".
|
||||||
|
func (u *UUID) decodeHashLike(t []byte) error {
|
||||||
|
src := t[:]
|
||||||
|
dst := u[:]
|
||||||
|
|
||||||
|
_, err := hex.Decode(dst, src)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// decodeBraced decodes UUID strings that are using the following formats:
|
||||||
|
// "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}"
|
||||||
|
// "{6ba7b8109dad11d180b400c04fd430c8}".
|
||||||
|
func (u *UUID) decodeBraced(t []byte) error {
|
||||||
|
l := len(t)
|
||||||
|
|
||||||
|
if t[0] != '{' || t[l-1] != '}' {
|
||||||
|
return fmt.Errorf("uuid: incorrect UUID format in string %q", t)
|
||||||
|
}
|
||||||
|
|
||||||
|
return u.decodePlain(t[1 : l-1])
|
||||||
|
}
|
||||||
|
|
||||||
|
// decodeURN decodes UUID strings that are using the following formats:
|
||||||
|
// "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8"
|
||||||
|
// "urn:uuid:6ba7b8109dad11d180b400c04fd430c8".
|
||||||
|
func (u *UUID) decodeURN(t []byte) error {
|
||||||
|
total := len(t)
|
||||||
|
|
||||||
|
urnUUIDPrefix := t[:9]
|
||||||
|
|
||||||
|
if !bytes.Equal(urnUUIDPrefix, urnPrefix) {
|
||||||
|
return fmt.Errorf("uuid: incorrect UUID format in string %q", t)
|
||||||
|
}
|
||||||
|
|
||||||
|
return u.decodePlain(t[9:total])
|
||||||
|
}
|
||||||
|
|
||||||
|
// decodePlain decodes UUID strings that are using the following formats:
|
||||||
|
// "6ba7b810-9dad-11d1-80b4-00c04fd430c8" or in hash-like format
|
||||||
|
// "6ba7b8109dad11d180b400c04fd430c8".
|
||||||
|
func (u *UUID) decodePlain(t []byte) error {
|
||||||
|
switch len(t) {
|
||||||
|
case 32:
|
||||||
|
return u.decodeHashLike(t)
|
||||||
|
case 36:
|
||||||
|
return u.decodeCanonical(t)
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("uuid: incorrect UUID length %d in string %q", len(t), t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary implements the encoding.BinaryMarshaler interface.
|
||||||
|
func (u UUID) MarshalBinary() ([]byte, error) {
|
||||||
|
return u.Bytes(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.
|
||||||
|
// It will return an error if the slice isn't 16 bytes long.
|
||||||
|
func (u *UUID) UnmarshalBinary(data []byte) error {
|
||||||
|
if len(data) != Size {
|
||||||
|
return fmt.Errorf("uuid: UUID must be exactly 16 bytes long, got %d bytes", len(data))
|
||||||
|
}
|
||||||
|
copy(u[:], data)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
// Copyright (c) 2018 Andrei Tudor Călin <mail@acln.ro>
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
// a copy of this software and associated documentation files (the
|
||||||
|
// "Software"), to deal in the Software without restriction, including
|
||||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
// permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
// the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be
|
||||||
|
// included in all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
// +build gofuzz
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
// Fuzz implements a simple fuzz test for FromString / UnmarshalText.
|
||||||
|
//
|
||||||
|
// To run:
|
||||||
|
//
|
||||||
|
// $ go get github.com/dvyukov/go-fuzz/...
|
||||||
|
// $ cd $GOPATH/src/github.com/gofrs/uuid
|
||||||
|
// $ go-fuzz-build github.com/gofrs/uuid
|
||||||
|
// $ go-fuzz -bin=uuid-fuzz.zip -workdir=./testdata
|
||||||
|
//
|
||||||
|
// If you make significant changes to FromString / UnmarshalText and add
|
||||||
|
// new cases to fromStringTests (in codec_test.go), please run
|
||||||
|
//
|
||||||
|
// $ go test -seed_fuzz_corpus
|
||||||
|
//
|
||||||
|
// to seed the corpus with the new interesting inputs, then run the fuzzer.
|
||||||
|
func Fuzz(data []byte) int {
|
||||||
|
_, err := FromString(string(data))
|
||||||
|
if err != nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return 1
|
||||||
|
}
|
|
@ -0,0 +1,299 @@
|
||||||
|
// Copyright (C) 2013-2018 by Maxim Bublis <b@codemonkey.ru>
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
// a copy of this software and associated documentation files (the
|
||||||
|
// "Software"), to deal in the Software without restriction, including
|
||||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
// permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
// the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be
|
||||||
|
// included in all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/md5"
|
||||||
|
"crypto/rand"
|
||||||
|
"crypto/sha1"
|
||||||
|
"encoding/binary"
|
||||||
|
"fmt"
|
||||||
|
"hash"
|
||||||
|
"io"
|
||||||
|
"net"
|
||||||
|
"os"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Difference in 100-nanosecond intervals between
|
||||||
|
// UUID epoch (October 15, 1582) and Unix epoch (January 1, 1970).
|
||||||
|
const epochStart = 122192928000000000
|
||||||
|
|
||||||
|
type epochFunc func() time.Time
|
||||||
|
|
||||||
|
// HWAddrFunc is the function type used to provide hardware (MAC) addresses.
|
||||||
|
type HWAddrFunc func() (net.HardwareAddr, error)
|
||||||
|
|
||||||
|
// DefaultGenerator is the default UUID Generator used by this package.
|
||||||
|
var DefaultGenerator Generator = NewGen()
|
||||||
|
|
||||||
|
var (
|
||||||
|
posixUID = uint32(os.Getuid())
|
||||||
|
posixGID = uint32(os.Getgid())
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewV1 returns a UUID based on the current timestamp and MAC address.
|
||||||
|
func NewV1() (UUID, error) {
|
||||||
|
return DefaultGenerator.NewV1()
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewV2 returns a DCE Security UUID based on the POSIX UID/GID.
|
||||||
|
func NewV2(domain byte) (UUID, error) {
|
||||||
|
return DefaultGenerator.NewV2(domain)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewV3 returns a UUID based on the MD5 hash of the namespace UUID and name.
|
||||||
|
func NewV3(ns UUID, name string) UUID {
|
||||||
|
return DefaultGenerator.NewV3(ns, name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewV4 returns a randomly generated UUID.
|
||||||
|
func NewV4() (UUID, error) {
|
||||||
|
return DefaultGenerator.NewV4()
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewV5 returns a UUID based on SHA-1 hash of the namespace UUID and name.
|
||||||
|
func NewV5(ns UUID, name string) UUID {
|
||||||
|
return DefaultGenerator.NewV5(ns, name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generator provides an interface for generating UUIDs.
|
||||||
|
type Generator interface {
|
||||||
|
NewV1() (UUID, error)
|
||||||
|
NewV2(domain byte) (UUID, error)
|
||||||
|
NewV3(ns UUID, name string) UUID
|
||||||
|
NewV4() (UUID, error)
|
||||||
|
NewV5(ns UUID, name string) UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gen is a reference UUID generator based on the specifications laid out in
|
||||||
|
// RFC-4122 and DCE 1.1: Authentication and Security Services. This type
|
||||||
|
// satisfies the Generator interface as defined in this package.
|
||||||
|
//
|
||||||
|
// For consumers who are generating V1 UUIDs, but don't want to expose the MAC
|
||||||
|
// address of the node generating the UUIDs, the NewGenWithHWAF() function has been
|
||||||
|
// provided as a convenience. See the function's documentation for more info.
|
||||||
|
//
|
||||||
|
// The authors of this package do not feel that the majority of users will need
|
||||||
|
// to obfuscate their MAC address, and so we recommend using NewGen() to create
|
||||||
|
// a new generator.
|
||||||
|
type Gen struct {
|
||||||
|
clockSequenceOnce sync.Once
|
||||||
|
hardwareAddrOnce sync.Once
|
||||||
|
storageMutex sync.Mutex
|
||||||
|
|
||||||
|
rand io.Reader
|
||||||
|
|
||||||
|
epochFunc epochFunc
|
||||||
|
hwAddrFunc HWAddrFunc
|
||||||
|
lastTime uint64
|
||||||
|
clockSequence uint16
|
||||||
|
hardwareAddr [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
// interface check -- build will fail if *Gen doesn't satisfy Generator
|
||||||
|
var _ Generator = (*Gen)(nil)
|
||||||
|
|
||||||
|
// NewGen returns a new instance of Gen with some default values set. Most
|
||||||
|
// people should use this.
|
||||||
|
func NewGen() *Gen {
|
||||||
|
return NewGenWithHWAF(defaultHWAddrFunc)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewGenWithHWAF builds a new UUID generator with the HWAddrFunc provided. Most
|
||||||
|
// consumers should use NewGen() instead.
|
||||||
|
//
|
||||||
|
// This is used so that consumers can generate their own MAC addresses, for use
|
||||||
|
// in the generated UUIDs, if there is some concern about exposing the physical
|
||||||
|
// address of the machine generating the UUID.
|
||||||
|
//
|
||||||
|
// The Gen generator will only invoke the HWAddrFunc once, and cache that MAC
|
||||||
|
// address for all the future UUIDs generated by it. If you'd like to switch the
|
||||||
|
// MAC address being used, you'll need to create a new generator using this
|
||||||
|
// function.
|
||||||
|
func NewGenWithHWAF(hwaf HWAddrFunc) *Gen {
|
||||||
|
return &Gen{
|
||||||
|
epochFunc: time.Now,
|
||||||
|
hwAddrFunc: hwaf,
|
||||||
|
rand: rand.Reader,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewV1 returns a UUID based on the current timestamp and MAC address.
|
||||||
|
func (g *Gen) NewV1() (UUID, error) {
|
||||||
|
u := UUID{}
|
||||||
|
|
||||||
|
timeNow, clockSeq, err := g.getClockSequence()
|
||||||
|
if err != nil {
|
||||||
|
return Nil, err
|
||||||
|
}
|
||||||
|
binary.BigEndian.PutUint32(u[0:], uint32(timeNow))
|
||||||
|
binary.BigEndian.PutUint16(u[4:], uint16(timeNow>>32))
|
||||||
|
binary.BigEndian.PutUint16(u[6:], uint16(timeNow>>48))
|
||||||
|
binary.BigEndian.PutUint16(u[8:], clockSeq)
|
||||||
|
|
||||||
|
hardwareAddr, err := g.getHardwareAddr()
|
||||||
|
if err != nil {
|
||||||
|
return Nil, err
|
||||||
|
}
|
||||||
|
copy(u[10:], hardwareAddr)
|
||||||
|
|
||||||
|
u.SetVersion(V1)
|
||||||
|
u.SetVariant(VariantRFC4122)
|
||||||
|
|
||||||
|
return u, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewV2 returns a DCE Security UUID based on the POSIX UID/GID.
|
||||||
|
func (g *Gen) NewV2(domain byte) (UUID, error) {
|
||||||
|
u, err := g.NewV1()
|
||||||
|
if err != nil {
|
||||||
|
return Nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
switch domain {
|
||||||
|
case DomainPerson:
|
||||||
|
binary.BigEndian.PutUint32(u[:], posixUID)
|
||||||
|
case DomainGroup:
|
||||||
|
binary.BigEndian.PutUint32(u[:], posixGID)
|
||||||
|
}
|
||||||
|
|
||||||
|
u[9] = domain
|
||||||
|
|
||||||
|
u.SetVersion(V2)
|
||||||
|
u.SetVariant(VariantRFC4122)
|
||||||
|
|
||||||
|
return u, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewV3 returns a UUID based on the MD5 hash of the namespace UUID and name.
|
||||||
|
func (g *Gen) NewV3(ns UUID, name string) UUID {
|
||||||
|
u := newFromHash(md5.New(), ns, name)
|
||||||
|
u.SetVersion(V3)
|
||||||
|
u.SetVariant(VariantRFC4122)
|
||||||
|
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewV4 returns a randomly generated UUID.
|
||||||
|
func (g *Gen) NewV4() (UUID, error) {
|
||||||
|
u := UUID{}
|
||||||
|
if _, err := io.ReadFull(g.rand, u[:]); err != nil {
|
||||||
|
return Nil, err
|
||||||
|
}
|
||||||
|
u.SetVersion(V4)
|
||||||
|
u.SetVariant(VariantRFC4122)
|
||||||
|
|
||||||
|
return u, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewV5 returns a UUID based on SHA-1 hash of the namespace UUID and name.
|
||||||
|
func (g *Gen) NewV5(ns UUID, name string) UUID {
|
||||||
|
u := newFromHash(sha1.New(), ns, name)
|
||||||
|
u.SetVersion(V5)
|
||||||
|
u.SetVariant(VariantRFC4122)
|
||||||
|
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the epoch and clock sequence.
|
||||||
|
func (g *Gen) getClockSequence() (uint64, uint16, error) {
|
||||||
|
var err error
|
||||||
|
g.clockSequenceOnce.Do(func() {
|
||||||
|
buf := make([]byte, 2)
|
||||||
|
if _, err = io.ReadFull(g.rand, buf); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
g.clockSequence = binary.BigEndian.Uint16(buf)
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return 0, 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
g.storageMutex.Lock()
|
||||||
|
defer g.storageMutex.Unlock()
|
||||||
|
|
||||||
|
timeNow := g.getEpoch()
|
||||||
|
// Clock didn't change since last UUID generation.
|
||||||
|
// Should increase clock sequence.
|
||||||
|
if timeNow <= g.lastTime {
|
||||||
|
g.clockSequence++
|
||||||
|
}
|
||||||
|
g.lastTime = timeNow
|
||||||
|
|
||||||
|
return timeNow, g.clockSequence, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the hardware address.
|
||||||
|
func (g *Gen) getHardwareAddr() ([]byte, error) {
|
||||||
|
var err error
|
||||||
|
g.hardwareAddrOnce.Do(func() {
|
||||||
|
var hwAddr net.HardwareAddr
|
||||||
|
if hwAddr, err = g.hwAddrFunc(); err == nil {
|
||||||
|
copy(g.hardwareAddr[:], hwAddr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize hardwareAddr randomly in case
|
||||||
|
// of real network interfaces absence.
|
||||||
|
if _, err = io.ReadFull(g.rand, g.hardwareAddr[:]); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Set multicast bit as recommended by RFC-4122
|
||||||
|
g.hardwareAddr[0] |= 0x01
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return []byte{}, err
|
||||||
|
}
|
||||||
|
return g.hardwareAddr[:], nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the difference between UUID epoch (October 15, 1582)
|
||||||
|
// and current time in 100-nanosecond intervals.
|
||||||
|
func (g *Gen) getEpoch() uint64 {
|
||||||
|
return epochStart + uint64(g.epochFunc().UnixNano()/100)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the UUID based on the hashing of the namespace UUID and name.
|
||||||
|
func newFromHash(h hash.Hash, ns UUID, name string) UUID {
|
||||||
|
u := UUID{}
|
||||||
|
h.Write(ns[:])
|
||||||
|
h.Write([]byte(name))
|
||||||
|
copy(u[:], h.Sum(nil))
|
||||||
|
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the hardware address.
|
||||||
|
func defaultHWAddrFunc() (net.HardwareAddr, error) {
|
||||||
|
ifaces, err := net.Interfaces()
|
||||||
|
if err != nil {
|
||||||
|
return []byte{}, err
|
||||||
|
}
|
||||||
|
for _, iface := range ifaces {
|
||||||
|
if len(iface.HardwareAddr) >= 6 {
|
||||||
|
return iface.HardwareAddr, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return []byte{}, fmt.Errorf("uuid: no HW address found")
|
||||||
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
// Copyright (C) 2013-2018 by Maxim Bublis <b@codemonkey.ru>
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
// a copy of this software and associated documentation files (the
|
||||||
|
// "Software"), to deal in the Software without restriction, including
|
||||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
// permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
// the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be
|
||||||
|
// included in all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"database/sql/driver"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Value implements the driver.Valuer interface.
|
||||||
|
func (u UUID) Value() (driver.Value, error) {
|
||||||
|
return u.String(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scan implements the sql.Scanner interface.
|
||||||
|
// A 16-byte slice will be handled by UnmarshalBinary, while
|
||||||
|
// a longer byte slice or a string will be handled by UnmarshalText.
|
||||||
|
func (u *UUID) Scan(src interface{}) error {
|
||||||
|
switch src := src.(type) {
|
||||||
|
case UUID: // support gorm convert from UUID to NullUUID
|
||||||
|
*u = src
|
||||||
|
return nil
|
||||||
|
|
||||||
|
case []byte:
|
||||||
|
if len(src) == Size {
|
||||||
|
return u.UnmarshalBinary(src)
|
||||||
|
}
|
||||||
|
return u.UnmarshalText(src)
|
||||||
|
|
||||||
|
case string:
|
||||||
|
return u.UnmarshalText([]byte(src))
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Errorf("uuid: cannot convert %T to UUID", src)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NullUUID can be used with the standard sql package to represent a
|
||||||
|
// UUID value that can be NULL in the database.
|
||||||
|
type NullUUID struct {
|
||||||
|
UUID UUID
|
||||||
|
Valid bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Value implements the driver.Valuer interface.
|
||||||
|
func (u NullUUID) Value() (driver.Value, error) {
|
||||||
|
if !u.Valid {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
// Delegate to UUID Value function
|
||||||
|
return u.UUID.Value()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scan implements the sql.Scanner interface.
|
||||||
|
func (u *NullUUID) Scan(src interface{}) error {
|
||||||
|
if src == nil {
|
||||||
|
u.UUID, u.Valid = Nil, false
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delegate to UUID Scan function
|
||||||
|
u.Valid = true
|
||||||
|
return u.UUID.Scan(src)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalJSON marshals the NullUUID as null or the nested UUID
|
||||||
|
func (u NullUUID) MarshalJSON() ([]byte, error) {
|
||||||
|
if !u.Valid {
|
||||||
|
return json.Marshal(nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
return json.Marshal(u.UUID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalJSON unmarshals a NullUUID
|
||||||
|
func (u *NullUUID) UnmarshalJSON(b []byte) error {
|
||||||
|
if bytes.Equal(b, []byte("null")) {
|
||||||
|
u.UUID, u.Valid = Nil, false
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := json.Unmarshal(b, &u.UUID); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
u.Valid = true
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -0,0 +1,250 @@
|
||||||
|
// Copyright (C) 2013-2018 by Maxim Bublis <b@codemonkey.ru>
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
// a copy of this software and associated documentation files (the
|
||||||
|
// "Software"), to deal in the Software without restriction, including
|
||||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
// permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
// the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be
|
||||||
|
// included in all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
// Package uuid provides implementations of the Universally Unique Identifier (UUID), as specified in RFC-4122 and DCE 1.1.
|
||||||
|
//
|
||||||
|
// RFC-4122[1] provides the specification for versions 1, 3, 4, and 5.
|
||||||
|
//
|
||||||
|
// DCE 1.1[2] provides the specification for version 2.
|
||||||
|
//
|
||||||
|
// [1] https://tools.ietf.org/html/rfc4122
|
||||||
|
// [2] http://pubs.opengroup.org/onlinepubs/9696989899/chap5.htm#tagcjh_08_02_01_01
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/binary"
|
||||||
|
"encoding/hex"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Size of a UUID in bytes.
|
||||||
|
const Size = 16
|
||||||
|
|
||||||
|
// UUID is an array type to represent the value of a UUID, as defined in RFC-4122.
|
||||||
|
type UUID [Size]byte
|
||||||
|
|
||||||
|
// UUID versions.
|
||||||
|
const (
|
||||||
|
_ byte = iota
|
||||||
|
V1 // Version 1 (date-time and MAC address)
|
||||||
|
V2 // Version 2 (date-time and MAC address, DCE security version)
|
||||||
|
V3 // Version 3 (namespace name-based)
|
||||||
|
V4 // Version 4 (random)
|
||||||
|
V5 // Version 5 (namespace name-based)
|
||||||
|
)
|
||||||
|
|
||||||
|
// UUID layout variants.
|
||||||
|
const (
|
||||||
|
VariantNCS byte = iota
|
||||||
|
VariantRFC4122
|
||||||
|
VariantMicrosoft
|
||||||
|
VariantFuture
|
||||||
|
)
|
||||||
|
|
||||||
|
// UUID DCE domains.
|
||||||
|
const (
|
||||||
|
DomainPerson = iota
|
||||||
|
DomainGroup
|
||||||
|
DomainOrg
|
||||||
|
)
|
||||||
|
|
||||||
|
// Timestamp is the count of 100-nanosecond intervals since 00:00:00.00,
|
||||||
|
// 15 October 1582 within a V1 UUID. This type has no meaning for V2-V5
|
||||||
|
// UUIDs since they don't have an embedded timestamp.
|
||||||
|
type Timestamp uint64
|
||||||
|
|
||||||
|
const _100nsPerSecond = 10000000
|
||||||
|
|
||||||
|
// Time returns the UTC time.Time representation of a Timestamp
|
||||||
|
func (t Timestamp) Time() (time.Time, error) {
|
||||||
|
secs := uint64(t) / _100nsPerSecond
|
||||||
|
nsecs := 100 * (uint64(t) % _100nsPerSecond)
|
||||||
|
return time.Unix(int64(secs)-(epochStart/_100nsPerSecond), int64(nsecs)), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// TimestampFromV1 returns the Timestamp embedded within a V1 UUID.
|
||||||
|
// Returns an error if the UUID is any version other than 1.
|
||||||
|
func TimestampFromV1(u UUID) (Timestamp, error) {
|
||||||
|
if u.Version() != 1 {
|
||||||
|
err := fmt.Errorf("uuid: %s is version %d, not version 1", u, u.Version())
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
low := binary.BigEndian.Uint32(u[0:4])
|
||||||
|
mid := binary.BigEndian.Uint16(u[4:6])
|
||||||
|
hi := binary.BigEndian.Uint16(u[6:8]) & 0xfff
|
||||||
|
return Timestamp(uint64(low) + (uint64(mid) << 32) + (uint64(hi) << 48)), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// String parse helpers.
|
||||||
|
var (
|
||||||
|
urnPrefix = []byte("urn:uuid:")
|
||||||
|
byteGroups = []int{8, 4, 4, 4, 12}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Nil is the nil UUID, as specified in RFC-4122, that has all 128 bits set to
|
||||||
|
// zero.
|
||||||
|
var Nil = UUID{}
|
||||||
|
|
||||||
|
// Predefined namespace UUIDs.
|
||||||
|
var (
|
||||||
|
NamespaceDNS = Must(FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8"))
|
||||||
|
NamespaceURL = Must(FromString("6ba7b811-9dad-11d1-80b4-00c04fd430c8"))
|
||||||
|
NamespaceOID = Must(FromString("6ba7b812-9dad-11d1-80b4-00c04fd430c8"))
|
||||||
|
NamespaceX500 = Must(FromString("6ba7b814-9dad-11d1-80b4-00c04fd430c8"))
|
||||||
|
)
|
||||||
|
|
||||||
|
// Version returns the algorithm version used to generate the UUID.
|
||||||
|
func (u UUID) Version() byte {
|
||||||
|
return u[6] >> 4
|
||||||
|
}
|
||||||
|
|
||||||
|
// Variant returns the UUID layout variant.
|
||||||
|
func (u UUID) Variant() byte {
|
||||||
|
switch {
|
||||||
|
case (u[8] >> 7) == 0x00:
|
||||||
|
return VariantNCS
|
||||||
|
case (u[8] >> 6) == 0x02:
|
||||||
|
return VariantRFC4122
|
||||||
|
case (u[8] >> 5) == 0x06:
|
||||||
|
return VariantMicrosoft
|
||||||
|
case (u[8] >> 5) == 0x07:
|
||||||
|
fallthrough
|
||||||
|
default:
|
||||||
|
return VariantFuture
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bytes returns a byte slice representation of the UUID.
|
||||||
|
func (u UUID) Bytes() []byte {
|
||||||
|
return u[:]
|
||||||
|
}
|
||||||
|
|
||||||
|
// String returns a canonical RFC-4122 string representation of the UUID:
|
||||||
|
// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
|
||||||
|
func (u UUID) String() string {
|
||||||
|
buf := make([]byte, 36)
|
||||||
|
|
||||||
|
hex.Encode(buf[0:8], u[0:4])
|
||||||
|
buf[8] = '-'
|
||||||
|
hex.Encode(buf[9:13], u[4:6])
|
||||||
|
buf[13] = '-'
|
||||||
|
hex.Encode(buf[14:18], u[6:8])
|
||||||
|
buf[18] = '-'
|
||||||
|
hex.Encode(buf[19:23], u[8:10])
|
||||||
|
buf[23] = '-'
|
||||||
|
hex.Encode(buf[24:], u[10:])
|
||||||
|
|
||||||
|
return string(buf)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format implements fmt.Formatter for UUID values.
|
||||||
|
//
|
||||||
|
// The behavior is as follows:
|
||||||
|
// The 'x' and 'X' verbs output only the hex digits of the UUID, using a-f for 'x' and A-F for 'X'.
|
||||||
|
// The 'v', '+v', 's' and 'q' verbs return the canonical RFC-4122 string representation.
|
||||||
|
// The 'S' verb returns the RFC-4122 format, but with capital hex digits.
|
||||||
|
// The '#v' verb returns the "Go syntax" representation, which is a 16 byte array initializer.
|
||||||
|
// All other verbs not handled directly by the fmt package (like '%p') are unsupported and will return
|
||||||
|
// "%!verb(uuid.UUID=value)" as recommended by the fmt package.
|
||||||
|
func (u UUID) Format(f fmt.State, c rune) {
|
||||||
|
switch c {
|
||||||
|
case 'x', 'X':
|
||||||
|
s := hex.EncodeToString(u.Bytes())
|
||||||
|
if c == 'X' {
|
||||||
|
s = strings.Map(toCapitalHexDigits, s)
|
||||||
|
}
|
||||||
|
_, _ = io.WriteString(f, s)
|
||||||
|
case 'v':
|
||||||
|
var s string
|
||||||
|
if f.Flag('#') {
|
||||||
|
s = fmt.Sprintf("%#v", [Size]byte(u))
|
||||||
|
} else {
|
||||||
|
s = u.String()
|
||||||
|
}
|
||||||
|
_, _ = io.WriteString(f, s)
|
||||||
|
case 's', 'S':
|
||||||
|
s := u.String()
|
||||||
|
if c == 'S' {
|
||||||
|
s = strings.Map(toCapitalHexDigits, s)
|
||||||
|
}
|
||||||
|
_, _ = io.WriteString(f, s)
|
||||||
|
case 'q':
|
||||||
|
_, _ = io.WriteString(f, `"`+u.String()+`"`)
|
||||||
|
default:
|
||||||
|
// invalid/unsupported format verb
|
||||||
|
fmt.Fprintf(f, "%%!%c(uuid.UUID=%s)", c, u.String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func toCapitalHexDigits(ch rune) rune {
|
||||||
|
// convert a-f hex digits to A-F
|
||||||
|
switch ch {
|
||||||
|
case 'a':
|
||||||
|
return 'A'
|
||||||
|
case 'b':
|
||||||
|
return 'B'
|
||||||
|
case 'c':
|
||||||
|
return 'C'
|
||||||
|
case 'd':
|
||||||
|
return 'D'
|
||||||
|
case 'e':
|
||||||
|
return 'E'
|
||||||
|
case 'f':
|
||||||
|
return 'F'
|
||||||
|
default:
|
||||||
|
return ch
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetVersion sets the version bits.
|
||||||
|
func (u *UUID) SetVersion(v byte) {
|
||||||
|
u[6] = (u[6] & 0x0f) | (v << 4)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetVariant sets the variant bits.
|
||||||
|
func (u *UUID) SetVariant(v byte) {
|
||||||
|
switch v {
|
||||||
|
case VariantNCS:
|
||||||
|
u[8] = (u[8]&(0xff>>1) | (0x00 << 7))
|
||||||
|
case VariantRFC4122:
|
||||||
|
u[8] = (u[8]&(0xff>>2) | (0x02 << 6))
|
||||||
|
case VariantMicrosoft:
|
||||||
|
u[8] = (u[8]&(0xff>>3) | (0x06 << 5))
|
||||||
|
case VariantFuture:
|
||||||
|
fallthrough
|
||||||
|
default:
|
||||||
|
u[8] = (u[8]&(0xff>>3) | (0x07 << 5))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Must is a helper that wraps a call to a function returning (UUID, error)
|
||||||
|
// and panics if the error is non-nil. It is intended for use in variable
|
||||||
|
// initializations such as
|
||||||
|
// var packageUUID = uuid.Must(uuid.FromString("123e4567-e89b-12d3-a456-426655440000"))
|
||||||
|
func Must(u UUID, err error) UUID {
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
return u
|
||||||
|
}
|
|
@ -210,35 +210,50 @@ shell.Close()
|
||||||
|
|
||||||
For using HTTPS authentication with x 509 cert without checking the CA
|
For using HTTPS authentication with x 509 cert without checking the CA
|
||||||
```go
|
```go
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/masterzen/winrm"
|
"github.com/masterzen/winrm"
|
||||||
"os"
|
"io/ioutil"
|
||||||
"io/ioutil"
|
"log"
|
||||||
)
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
clientCert, err := ioutil.ReadFile("path/to/cert")
|
func main() {
|
||||||
if err != nil {
|
clientCert, err := ioutil.ReadFile("/home/example/winrm_client_cert.pem")
|
||||||
panic(err)
|
if err != nil {
|
||||||
}
|
log.Fatalf("failed to read client certificate: %q", err)
|
||||||
|
}
|
||||||
|
|
||||||
clientKey, err := ioutil.ReadFile("path/to/key")
|
clientKey, err := ioutil.ReadFile("/home/example/winrm_client_key.pem")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
log.Fatalf("failed to read client key: %q", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
winrm.DefaultParameters.TransportDecorator = func() winrm.Transporter {
|
winrm.DefaultParameters.TransportDecorator = func() winrm.Transporter {
|
||||||
// winrm https module
|
// winrm https module
|
||||||
return &winrm.ClientAuthRequest{}
|
return &winrm.ClientAuthRequest{}
|
||||||
}
|
}
|
||||||
|
|
||||||
endpoint := winrm.NewEndpoint(host, 5986, false, false, clientCert, clientKey, nil, 0)
|
endpoint := winrm.NewEndpoint(
|
||||||
client, err := winrm.NewClient(endpoint, "Administrator", ""
|
"192.168.100.2", // host to connect to
|
||||||
if err != nil {
|
5986, // winrm port
|
||||||
panic(err)
|
true, // use TLS
|
||||||
}
|
true, // Allow insecure connection
|
||||||
client.Run("ipconfig /all", os.Stdout, os.Stderr)
|
nil, // CA certificate
|
||||||
|
clientCert, // Client Certificate
|
||||||
|
clientKey, // Client Key
|
||||||
|
0, // Timeout
|
||||||
|
)
|
||||||
|
client, err := winrm.NewClient(endpoint, "Administrator", "")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to create client: %q", err)
|
||||||
|
}
|
||||||
|
_, err = client.Run("whoami", os.Stdout, os.Stderr)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to run command: %q", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Developing on WinRM
|
## Developing on WinRM
|
||||||
|
|
|
@ -14,7 +14,7 @@ import (
|
||||||
|
|
||||||
type ClientAuthRequest struct {
|
type ClientAuthRequest struct {
|
||||||
transport http.RoundTripper
|
transport http.RoundTripper
|
||||||
dial func(network, addr string) (net.Conn, error)
|
dial func(network, addr string) (net.Conn, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ClientAuthRequest) Transport(endpoint *Endpoint) error {
|
func (c *ClientAuthRequest) Transport(endpoint *Endpoint) error {
|
||||||
|
@ -35,10 +35,11 @@ func (c *ClientAuthRequest) Transport(endpoint *Endpoint) error {
|
||||||
transport := &http.Transport{
|
transport := &http.Transport{
|
||||||
Proxy: http.ProxyFromEnvironment,
|
Proxy: http.ProxyFromEnvironment,
|
||||||
TLSClientConfig: &tls.Config{
|
TLSClientConfig: &tls.Config{
|
||||||
|
Renegotiation: tls.RenegotiateOnceAsClient,
|
||||||
InsecureSkipVerify: endpoint.Insecure,
|
InsecureSkipVerify: endpoint.Insecure,
|
||||||
Certificates: []tls.Certificate{cert},
|
Certificates: []tls.Certificate{cert},
|
||||||
},
|
},
|
||||||
Dial: dial,
|
Dial: dial,
|
||||||
ResponseHeaderTimeout: endpoint.Timeout,
|
ResponseHeaderTimeout: endpoint.Timeout,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,6 +114,6 @@ func (c ClientAuthRequest) Post(client *Client, request *soap.SoapMessage) (stri
|
||||||
|
|
||||||
func NewClientAuthRequestWithDial(dial func(network, addr string) (net.Conn, error)) *ClientAuthRequest {
|
func NewClientAuthRequestWithDial(dial func(network, addr string) (net.Conn, error)) *ClientAuthRequest {
|
||||||
return &ClientAuthRequest{
|
return &ClientAuthRequest{
|
||||||
dial:dial,
|
dial: dial,
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -46,7 +46,7 @@ func NewClientWithParameters(endpoint *Endpoint, user, password string, params *
|
||||||
url: endpoint.url(),
|
url: endpoint.url(),
|
||||||
useHTTPS: endpoint.HTTPS,
|
useHTTPS: endpoint.HTTPS,
|
||||||
// default transport
|
// default transport
|
||||||
http: &clientRequest{ dial:params.Dial },
|
http: &clientRequest{dial: params.Dial},
|
||||||
}
|
}
|
||||||
|
|
||||||
// switch to other transport if provided
|
// switch to other transport if provided
|
||||||
|
@ -130,6 +130,7 @@ func (c *Client) Run(command string, stdout io.Writer, stderr io.Writer) (int, e
|
||||||
|
|
||||||
cmd.Wait()
|
cmd.Wait()
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
|
cmd.Close()
|
||||||
|
|
||||||
return cmd.ExitCode(), cmd.err
|
return cmd.ExitCode(), cmd.err
|
||||||
}
|
}
|
||||||
|
@ -147,8 +148,13 @@ func (c *Client) RunWithString(command string, stdin string) (string, string, in
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", 1, err
|
return "", "", 1, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(stdin) > 0 {
|
if len(stdin) > 0 {
|
||||||
cmd.Stdin.Write([]byte(stdin))
|
defer cmd.Stdin.Close()
|
||||||
|
_, err := cmd.Stdin.Write([]byte(stdin))
|
||||||
|
if err != nil {
|
||||||
|
return "", "", -1, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var outWriter, errWriter bytes.Buffer
|
var outWriter, errWriter bytes.Buffer
|
||||||
|
@ -166,6 +172,7 @@ func (c *Client) RunWithString(command string, stdin string) (string, string, in
|
||||||
|
|
||||||
cmd.Wait()
|
cmd.Wait()
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
|
cmd.Close()
|
||||||
|
|
||||||
return outWriter.String(), errWriter.String(), cmd.ExitCode(), cmd.err
|
return outWriter.String(), errWriter.String(), cmd.ExitCode(), cmd.err
|
||||||
}
|
}
|
||||||
|
@ -190,7 +197,10 @@ func (c Client) RunWithInput(command string, stdout, stderr io.Writer, stdin io.
|
||||||
wg.Add(3)
|
wg.Add(3)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
defer wg.Done()
|
defer func() {
|
||||||
|
cmd.Stdin.Close()
|
||||||
|
wg.Done()
|
||||||
|
}()
|
||||||
io.Copy(cmd.Stdin, stdin)
|
io.Copy(cmd.Stdin, stdin)
|
||||||
}()
|
}()
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -204,6 +214,7 @@ func (c Client) RunWithInput(command string, stdout, stderr io.Writer, stdin io.
|
||||||
|
|
||||||
cmd.Wait()
|
cmd.Wait()
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
|
cmd.Close()
|
||||||
|
|
||||||
return cmd.ExitCode(), cmd.err
|
return cmd.ExitCode(), cmd.err
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,13 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
type commandWriter struct {
|
type commandWriter struct {
|
||||||
*Command
|
*Command
|
||||||
eof bool
|
mutex sync.Mutex
|
||||||
|
eof bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type commandReader struct {
|
type commandReader struct {
|
||||||
|
@ -167,12 +169,12 @@ func (c *Command) slurpAllOutput() (bool, error) {
|
||||||
return finished, nil
|
return finished, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Command) sendInput(data []byte) error {
|
func (c *Command) sendInput(data []byte, eof bool) error {
|
||||||
if err := c.check(); err != nil {
|
if err := c.check(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
request := NewSendInputRequest(c.client.url, c.shell.id, c.id, data, &c.client.Parameters)
|
request := NewSendInputRequest(c.client.url, c.shell.id, c.id, data, eof, &c.client.Parameters)
|
||||||
defer request.Free()
|
defer request.Free()
|
||||||
|
|
||||||
_, err := c.client.sendRequest(request)
|
_, err := c.client.sendRequest(request)
|
||||||
|
@ -191,30 +193,44 @@ func (c *Command) Wait() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write data to this Pipe
|
// Write data to this Pipe
|
||||||
// commandWriter implements io.Writer interface
|
// commandWriter implements io.Writer and io.Closer interface
|
||||||
func (w *commandWriter) Write(data []byte) (int, error) {
|
func (w *commandWriter) Write(data []byte) (int, error) {
|
||||||
|
w.mutex.Lock()
|
||||||
|
defer w.mutex.Unlock()
|
||||||
|
|
||||||
|
if w.eof {
|
||||||
|
return 0, io.ErrClosedPipe
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
written int
|
written int
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
|
origLen := len(data)
|
||||||
for len(data) > 0 {
|
for len(data) > 0 {
|
||||||
if w.eof {
|
|
||||||
return written, io.EOF
|
|
||||||
}
|
|
||||||
// never send more data than our EnvelopeSize.
|
// never send more data than our EnvelopeSize.
|
||||||
n := min(w.client.Parameters.EnvelopeSize-1000, len(data))
|
n := min(w.client.Parameters.EnvelopeSize-1000, len(data))
|
||||||
if err := w.sendInput(data[:n]); err != nil {
|
if err := w.sendInput(data[:n], false); err != nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
data = data[n:]
|
data = data[n:]
|
||||||
written += n
|
written += n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// signal that we couldn't write all data
|
||||||
|
if err == nil && written < origLen {
|
||||||
|
err = io.ErrShortWrite
|
||||||
|
}
|
||||||
|
|
||||||
return written, err
|
return written, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write data to this Pipe and mark EOF
|
||||||
|
func (w *commandWriter) WriteClose(data []byte) (int, error) {
|
||||||
|
w.eof = true
|
||||||
|
return w.Write(data)
|
||||||
|
}
|
||||||
|
|
||||||
func min(a int, b int) int {
|
func min(a int, b int) int {
|
||||||
if a < b {
|
if a < b {
|
||||||
return a
|
return a
|
||||||
|
@ -225,8 +241,14 @@ func min(a int, b int) int {
|
||||||
// Close method wrapper
|
// Close method wrapper
|
||||||
// commandWriter implements io.Closer interface
|
// commandWriter implements io.Closer interface
|
||||||
func (w *commandWriter) Close() error {
|
func (w *commandWriter) Close() error {
|
||||||
|
w.mutex.Lock()
|
||||||
|
defer w.mutex.Unlock()
|
||||||
|
|
||||||
|
if w.eof {
|
||||||
|
return io.ErrClosedPipe
|
||||||
|
}
|
||||||
w.eof = true
|
w.eof = true
|
||||||
return w.Close()
|
return w.sendInput(nil, w.eof)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read data from this Pipe
|
// Read data from this Pipe
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
module github.com/masterzen/winrm
|
module github.com/masterzen/winrm
|
||||||
|
|
||||||
|
go 1.14
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4
|
github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4
|
||||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022
|
||||||
|
github.com/gofrs/uuid v3.2.0+incompatible
|
||||||
github.com/kr/pretty v0.1.0 // indirect
|
github.com/kr/pretty v0.1.0 // indirect
|
||||||
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9
|
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9
|
||||||
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d
|
|
||||||
golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f // indirect
|
golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f // indirect
|
||||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd // indirect
|
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd // indirect
|
||||||
golang.org/x/text v0.3.0 // indirect
|
golang.org/x/text v0.3.0 // indirect
|
||||||
|
|
|
@ -2,6 +2,8 @@ github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4 h1:pSm8mp0T2OH2CP
|
||||||
github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
||||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022 h1:y8Gs8CzNfDF5AZvjr+5UyGQvQEBL7pwo+v+wX6q9JI8=
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022 h1:y8Gs8CzNfDF5AZvjr+5UyGQvQEBL7pwo+v+wX6q9JI8=
|
||||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4=
|
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4=
|
||||||
|
github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE=
|
||||||
|
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
|
@ -9,8 +11,6 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9 h1:SmVbOZFWAlyQshuMfOkiAx1f5oUTsOGG5IXplAEYeeM=
|
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9 h1:SmVbOZFWAlyQshuMfOkiAx1f5oUTsOGG5IXplAEYeeM=
|
||||||
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc=
|
github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc=
|
||||||
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ=
|
|
||||||
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U=
|
|
||||||
golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f h1:qWFY9ZxP3tfI37wYIs/MnIAqK0vlXp1xnYEa5HxFSSY=
|
golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f h1:qWFY9ZxP3tfI37wYIs/MnIAqK0vlXp1xnYEa5HxFSSY=
|
||||||
golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd h1:HuTn7WObtcDo9uEEU7rEqL0jYthdXAmZ6PP+meazmaU=
|
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd h1:HuTn7WObtcDo9uEEU7rEqL0jYthdXAmZ6PP+meazmaU=
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -39,7 +40,8 @@ func body(response *http.Response) (string, error) {
|
||||||
|
|
||||||
type clientRequest struct {
|
type clientRequest struct {
|
||||||
transport http.RoundTripper
|
transport http.RoundTripper
|
||||||
dial func(network, addr string) (net.Conn, error)
|
dial func(network, addr string) (net.Conn, error)
|
||||||
|
proxyfunc func(req *http.Request) (*url.URL, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *clientRequest) Transport(endpoint *Endpoint) error {
|
func (c *clientRequest) Transport(endpoint *Endpoint) error {
|
||||||
|
@ -53,13 +55,18 @@ func (c *clientRequest) Transport(endpoint *Endpoint) error {
|
||||||
dial = c.dial
|
dial = c.dial
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proxyfunc := http.ProxyFromEnvironment
|
||||||
|
if c.proxyfunc != nil {
|
||||||
|
proxyfunc = c.proxyfunc
|
||||||
|
}
|
||||||
|
|
||||||
transport := &http.Transport{
|
transport := &http.Transport{
|
||||||
Proxy: http.ProxyFromEnvironment,
|
Proxy: proxyfunc,
|
||||||
TLSClientConfig: &tls.Config{
|
TLSClientConfig: &tls.Config{
|
||||||
InsecureSkipVerify: endpoint.Insecure,
|
InsecureSkipVerify: endpoint.Insecure,
|
||||||
ServerName: endpoint.TLSServerName,
|
ServerName: endpoint.TLSServerName,
|
||||||
},
|
},
|
||||||
Dial: dial,
|
Dial: dial,
|
||||||
ResponseHeaderTimeout: endpoint.Timeout,
|
ResponseHeaderTimeout: endpoint.Timeout,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,9 +115,14 @@ func (c clientRequest) Post(client *Client, request *soap.SoapMessage) (string,
|
||||||
return body, err
|
return body, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func NewClientWithDial(dial func(network, addr string) (net.Conn, error)) *clientRequest {
|
func NewClientWithDial(dial func(network, addr string) (net.Conn, error)) *clientRequest {
|
||||||
return &clientRequest{
|
return &clientRequest{
|
||||||
dial:dial,
|
dial: dial,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClientWithProxyFunc(proxyfunc func(req *http.Request) (*url.URL, error)) *clientRequest {
|
||||||
|
return &clientRequest{
|
||||||
|
proxyfunc: proxyfunc,
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -3,12 +3,12 @@ package winrm
|
||||||
import (
|
import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
|
||||||
|
"github.com/gofrs/uuid"
|
||||||
"github.com/masterzen/winrm/soap"
|
"github.com/masterzen/winrm/soap"
|
||||||
"github.com/nu7hatch/gouuid"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func genUUID() string {
|
func genUUID() string {
|
||||||
id, _ := uuid.NewV4()
|
id := uuid.Must(uuid.NewV4())
|
||||||
return "uuid:" + id.String()
|
return "uuid:" + id.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ func NewGetOutputRequest(uri, shellId, commandId, streams string, params *Parame
|
||||||
return message
|
return message
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSendInputRequest(uri, shellId, commandId string, input []byte, params *Parameters) *soap.SoapMessage {
|
func NewSendInputRequest(uri, shellId, commandId string, input []byte, eof bool, params *Parameters) *soap.SoapMessage {
|
||||||
if params == nil {
|
if params == nil {
|
||||||
params = DefaultParameters
|
params = DefaultParameters
|
||||||
}
|
}
|
||||||
|
@ -131,6 +131,9 @@ func NewSendInputRequest(uri, shellId, commandId string, input []byte, params *P
|
||||||
streams.SetAttr("Name", "stdin")
|
streams.SetAttr("Name", "stdin")
|
||||||
streams.SetAttr("CommandId", commandId)
|
streams.SetAttr("CommandId", commandId)
|
||||||
streams.SetContent(content)
|
streams.SetContent(content)
|
||||||
|
if eof {
|
||||||
|
streams.SetAttr("End", "true")
|
||||||
|
}
|
||||||
return message
|
return message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,11 @@ func restoreContent(client *winrm.Client, fromPath, toPath string) error {
|
||||||
$tmp_file_path = [System.IO.Path]::GetFullPath("%s")
|
$tmp_file_path = [System.IO.Path]::GetFullPath("%s")
|
||||||
$dest_file_path = [System.IO.Path]::GetFullPath("%s".Trim("'"))
|
$dest_file_path = [System.IO.Path]::GetFullPath("%s".Trim("'"))
|
||||||
if (Test-Path $dest_file_path) {
|
if (Test-Path $dest_file_path) {
|
||||||
rm $dest_file_path
|
if (Test-Path -Path $dest_file_path -PathType container) {
|
||||||
|
Exit 1
|
||||||
|
} else {
|
||||||
|
rm $dest_file_path
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$dest_dir = ([System.IO.Path]::GetDirectoryName($dest_file_path))
|
$dest_dir = ([System.IO.Path]::GetDirectoryName($dest_file_path))
|
||||||
|
|
|
@ -240,7 +240,7 @@ func (m *mux) onePacket() error {
|
||||||
id := binary.BigEndian.Uint32(packet[1:])
|
id := binary.BigEndian.Uint32(packet[1:])
|
||||||
ch := m.chanList.getChan(id)
|
ch := m.chanList.getChan(id)
|
||||||
if ch == nil {
|
if ch == nil {
|
||||||
return fmt.Errorf("ssh: invalid channel %d", id)
|
return m.handleUnknownChannelPacket(id, packet)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ch.handlePacket(packet)
|
return ch.handlePacket(packet)
|
||||||
|
@ -328,3 +328,24 @@ func (m *mux) openChannel(chanType string, extra []byte) (*channel, error) {
|
||||||
return nil, fmt.Errorf("ssh: unexpected packet in response to channel open: %T", msg)
|
return nil, fmt.Errorf("ssh: unexpected packet in response to channel open: %T", msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *mux) handleUnknownChannelPacket(id uint32, packet []byte) error {
|
||||||
|
msg, err := decode(packet)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
switch msg := msg.(type) {
|
||||||
|
// RFC 4254 section 5.4 says unrecognized channel requests should
|
||||||
|
// receive a failure response.
|
||||||
|
case *channelRequestMsg:
|
||||||
|
if msg.WantReply {
|
||||||
|
return m.sendMessage(channelRequestFailureMsg{
|
||||||
|
PeersID: msg.PeersID,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("ssh: invalid channel %d", id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -107,6 +107,7 @@ func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMis
|
||||||
|
|
||||||
// dialCall is an in-flight Transport dial call to a host.
|
// dialCall is an in-flight Transport dial call to a host.
|
||||||
type dialCall struct {
|
type dialCall struct {
|
||||||
|
_ incomparable
|
||||||
p *clientConnPool
|
p *clientConnPool
|
||||||
done chan struct{} // closed when done
|
done chan struct{} // closed when done
|
||||||
res *ClientConn // valid after done is closed
|
res *ClientConn // valid after done is closed
|
||||||
|
@ -180,6 +181,7 @@ func (p *clientConnPool) addConnIfNeeded(key string, t *Transport, c *tls.Conn)
|
||||||
}
|
}
|
||||||
|
|
||||||
type addConnCall struct {
|
type addConnCall struct {
|
||||||
|
_ incomparable
|
||||||
p *clientConnPool
|
p *clientConnPool
|
||||||
done chan struct{} // closed when done
|
done chan struct{} // closed when done
|
||||||
err error
|
err error
|
||||||
|
@ -200,12 +202,6 @@ func (c *addConnCall) run(t *Transport, key string, tc *tls.Conn) {
|
||||||
close(c.done)
|
close(c.done)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *clientConnPool) addConn(key string, cc *ClientConn) {
|
|
||||||
p.mu.Lock()
|
|
||||||
p.addConnLocked(key, cc)
|
|
||||||
p.mu.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
// p.mu must be held
|
// p.mu must be held
|
||||||
func (p *clientConnPool) addConnLocked(key string, cc *ClientConn) {
|
func (p *clientConnPool) addConnLocked(key string, cc *ClientConn) {
|
||||||
for _, v := range p.conns[key] {
|
for _, v := range p.conns[key] {
|
||||||
|
|
|
@ -8,6 +8,8 @@ package http2
|
||||||
|
|
||||||
// flow is the flow control window's size.
|
// flow is the flow control window's size.
|
||||||
type flow struct {
|
type flow struct {
|
||||||
|
_ incomparable
|
||||||
|
|
||||||
// n is the number of DATA bytes we're allowed to send.
|
// n is the number of DATA bytes we're allowed to send.
|
||||||
// A flow is kept both on a conn and a per-stream.
|
// A flow is kept both on a conn and a per-stream.
|
||||||
n int32
|
n int32
|
||||||
|
|
|
@ -105,7 +105,14 @@ func huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// incomparable is a zero-width, non-comparable type. Adding it to a struct
|
||||||
|
// makes that struct also non-comparable, and generally doesn't add
|
||||||
|
// any size (as long as it's first).
|
||||||
|
type incomparable [0]func()
|
||||||
|
|
||||||
type node struct {
|
type node struct {
|
||||||
|
_ incomparable
|
||||||
|
|
||||||
// children is non-nil for internal nodes
|
// children is non-nil for internal nodes
|
||||||
children *[256]*node
|
children *[256]*node
|
||||||
|
|
||||||
|
|
|
@ -241,6 +241,7 @@ func (cw closeWaiter) Wait() {
|
||||||
// Its buffered writer is lazily allocated as needed, to minimize
|
// Its buffered writer is lazily allocated as needed, to minimize
|
||||||
// idle memory usage with many connections.
|
// idle memory usage with many connections.
|
||||||
type bufferedWriter struct {
|
type bufferedWriter struct {
|
||||||
|
_ incomparable
|
||||||
w io.Writer // immutable
|
w io.Writer // immutable
|
||||||
bw *bufio.Writer // non-nil when data is buffered
|
bw *bufio.Writer // non-nil when data is buffered
|
||||||
}
|
}
|
||||||
|
@ -313,6 +314,7 @@ func bodyAllowedForStatus(status int) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
type httpError struct {
|
type httpError struct {
|
||||||
|
_ incomparable
|
||||||
msg string
|
msg string
|
||||||
timeout bool
|
timeout bool
|
||||||
}
|
}
|
||||||
|
@ -376,3 +378,8 @@ func (s *sorter) SortStrings(ss []string) {
|
||||||
func validPseudoPath(v string) bool {
|
func validPseudoPath(v string) bool {
|
||||||
return (len(v) > 0 && v[0] == '/') || v == "*"
|
return (len(v) > 0 && v[0] == '/') || v == "*"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// incomparable is a zero-width, non-comparable type. Adding it to a struct
|
||||||
|
// makes that struct also non-comparable, and generally doesn't add
|
||||||
|
// any size (as long as it's first).
|
||||||
|
type incomparable [0]func()
|
||||||
|
|
|
@ -761,6 +761,7 @@ func (sc *serverConn) readFrames() {
|
||||||
|
|
||||||
// frameWriteResult is the message passed from writeFrameAsync to the serve goroutine.
|
// frameWriteResult is the message passed from writeFrameAsync to the serve goroutine.
|
||||||
type frameWriteResult struct {
|
type frameWriteResult struct {
|
||||||
|
_ incomparable
|
||||||
wr FrameWriteRequest // what was written (or attempted)
|
wr FrameWriteRequest // what was written (or attempted)
|
||||||
err error // result of the writeFrame call
|
err error // result of the writeFrame call
|
||||||
}
|
}
|
||||||
|
@ -771,7 +772,7 @@ type frameWriteResult struct {
|
||||||
// serverConn.
|
// serverConn.
|
||||||
func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest) {
|
func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest) {
|
||||||
err := wr.write.writeFrame(sc)
|
err := wr.write.writeFrame(sc)
|
||||||
sc.wroteFrameCh <- frameWriteResult{wr, err}
|
sc.wroteFrameCh <- frameWriteResult{wr: wr, err: err}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sc *serverConn) closeAllStreamsOnConnClose() {
|
func (sc *serverConn) closeAllStreamsOnConnClose() {
|
||||||
|
@ -1161,7 +1162,7 @@ func (sc *serverConn) startFrameWrite(wr FrameWriteRequest) {
|
||||||
if wr.write.staysWithinBuffer(sc.bw.Available()) {
|
if wr.write.staysWithinBuffer(sc.bw.Available()) {
|
||||||
sc.writingFrameAsync = false
|
sc.writingFrameAsync = false
|
||||||
err := wr.write.writeFrame(sc)
|
err := wr.write.writeFrame(sc)
|
||||||
sc.wroteFrame(frameWriteResult{wr, err})
|
sc.wroteFrame(frameWriteResult{wr: wr, err: err})
|
||||||
} else {
|
} else {
|
||||||
sc.writingFrameAsync = true
|
sc.writingFrameAsync = true
|
||||||
go sc.writeFrameAsync(wr)
|
go sc.writeFrameAsync(wr)
|
||||||
|
@ -2057,7 +2058,7 @@ func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*r
|
||||||
var trailer http.Header
|
var trailer http.Header
|
||||||
for _, v := range rp.header["Trailer"] {
|
for _, v := range rp.header["Trailer"] {
|
||||||
for _, key := range strings.Split(v, ",") {
|
for _, key := range strings.Split(v, ",") {
|
||||||
key = http.CanonicalHeaderKey(strings.TrimSpace(key))
|
key = http.CanonicalHeaderKey(textproto.TrimString(key))
|
||||||
switch key {
|
switch key {
|
||||||
case "Transfer-Encoding", "Trailer", "Content-Length":
|
case "Transfer-Encoding", "Trailer", "Content-Length":
|
||||||
// Bogus. (copy of http1 rules)
|
// Bogus. (copy of http1 rules)
|
||||||
|
@ -2275,6 +2276,7 @@ func (sc *serverConn) sendWindowUpdate32(st *stream, n int32) {
|
||||||
// requestBody is the Handler's Request.Body type.
|
// requestBody is the Handler's Request.Body type.
|
||||||
// Read and Close may be called concurrently.
|
// Read and Close may be called concurrently.
|
||||||
type requestBody struct {
|
type requestBody struct {
|
||||||
|
_ incomparable
|
||||||
stream *stream
|
stream *stream
|
||||||
conn *serverConn
|
conn *serverConn
|
||||||
closed bool // for use by Close only
|
closed bool // for use by Close only
|
||||||
|
|
|
@ -108,6 +108,19 @@ type Transport struct {
|
||||||
// waiting for their turn.
|
// waiting for their turn.
|
||||||
StrictMaxConcurrentStreams bool
|
StrictMaxConcurrentStreams bool
|
||||||
|
|
||||||
|
// ReadIdleTimeout is the timeout after which a health check using ping
|
||||||
|
// frame will be carried out if no frame is received on the connection.
|
||||||
|
// Note that a ping response will is considered a received frame, so if
|
||||||
|
// there is no other traffic on the connection, the health check will
|
||||||
|
// be performed every ReadIdleTimeout interval.
|
||||||
|
// If zero, no health check is performed.
|
||||||
|
ReadIdleTimeout time.Duration
|
||||||
|
|
||||||
|
// PingTimeout is the timeout after which the connection will be closed
|
||||||
|
// if a response to Ping is not received.
|
||||||
|
// Defaults to 15s.
|
||||||
|
PingTimeout time.Duration
|
||||||
|
|
||||||
// t1, if non-nil, is the standard library Transport using
|
// t1, if non-nil, is the standard library Transport using
|
||||||
// this transport. Its settings are used (but not its
|
// this transport. Its settings are used (but not its
|
||||||
// RoundTrip method, etc).
|
// RoundTrip method, etc).
|
||||||
|
@ -131,6 +144,14 @@ func (t *Transport) disableCompression() bool {
|
||||||
return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression)
|
return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *Transport) pingTimeout() time.Duration {
|
||||||
|
if t.PingTimeout == 0 {
|
||||||
|
return 15 * time.Second
|
||||||
|
}
|
||||||
|
return t.PingTimeout
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// 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.
|
||||||
func ConfigureTransport(t1 *http.Transport) error {
|
func ConfigureTransport(t1 *http.Transport) error {
|
||||||
|
@ -675,6 +696,20 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro
|
||||||
return cc, nil
|
return cc, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cc *ClientConn) healthCheck() {
|
||||||
|
pingTimeout := cc.t.pingTimeout()
|
||||||
|
// We don't need to periodically ping in the health check, because the readLoop of ClientConn will
|
||||||
|
// trigger the healthCheck again if there is no frame received.
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), pingTimeout)
|
||||||
|
defer cancel()
|
||||||
|
err := cc.Ping(ctx)
|
||||||
|
if err != nil {
|
||||||
|
cc.closeForLostPing()
|
||||||
|
cc.t.connPool().MarkDead(cc)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (cc *ClientConn) setGoAway(f *GoAwayFrame) {
|
func (cc *ClientConn) setGoAway(f *GoAwayFrame) {
|
||||||
cc.mu.Lock()
|
cc.mu.Lock()
|
||||||
defer cc.mu.Unlock()
|
defer cc.mu.Unlock()
|
||||||
|
@ -846,14 +881,12 @@ func (cc *ClientConn) sendGoAway() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close closes the client connection immediately.
|
// closes the client connection immediately. In-flight requests are interrupted.
|
||||||
//
|
// err is sent to streams.
|
||||||
// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.
|
func (cc *ClientConn) closeForError(err error) error {
|
||||||
func (cc *ClientConn) Close() error {
|
|
||||||
cc.mu.Lock()
|
cc.mu.Lock()
|
||||||
defer cc.cond.Broadcast()
|
defer cc.cond.Broadcast()
|
||||||
defer cc.mu.Unlock()
|
defer cc.mu.Unlock()
|
||||||
err := errors.New("http2: client connection force closed via ClientConn.Close")
|
|
||||||
for id, cs := range cc.streams {
|
for id, cs := range cc.streams {
|
||||||
select {
|
select {
|
||||||
case cs.resc <- resAndError{err: err}:
|
case cs.resc <- resAndError{err: err}:
|
||||||
|
@ -866,6 +899,20 @@ func (cc *ClientConn) Close() error {
|
||||||
return cc.tconn.Close()
|
return cc.tconn.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Close closes the client connection immediately.
|
||||||
|
//
|
||||||
|
// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.
|
||||||
|
func (cc *ClientConn) Close() error {
|
||||||
|
err := errors.New("http2: client connection force closed via ClientConn.Close")
|
||||||
|
return cc.closeForError(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// closes the client connection immediately. In-flight requests are interrupted.
|
||||||
|
func (cc *ClientConn) closeForLostPing() error {
|
||||||
|
err := errors.New("http2: client connection lost")
|
||||||
|
return cc.closeForError(err)
|
||||||
|
}
|
||||||
|
|
||||||
const maxAllocFrameSize = 512 << 10
|
const maxAllocFrameSize = 512 << 10
|
||||||
|
|
||||||
// frameBuffer returns a scratch buffer suitable for writing DATA frames.
|
// frameBuffer returns a scratch buffer suitable for writing DATA frames.
|
||||||
|
@ -916,7 +963,7 @@ func commaSeparatedTrailers(req *http.Request) (string, error) {
|
||||||
k = http.CanonicalHeaderKey(k)
|
k = http.CanonicalHeaderKey(k)
|
||||||
switch k {
|
switch k {
|
||||||
case "Transfer-Encoding", "Trailer", "Content-Length":
|
case "Transfer-Encoding", "Trailer", "Content-Length":
|
||||||
return "", &badStringError{"invalid Trailer key", k}
|
return "", fmt.Errorf("invalid Trailer key %q", k)
|
||||||
}
|
}
|
||||||
keys = append(keys, k)
|
keys = append(keys, k)
|
||||||
}
|
}
|
||||||
|
@ -1394,13 +1441,6 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type badStringError struct {
|
|
||||||
what string
|
|
||||||
str string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *badStringError) Error() string { return fmt.Sprintf("%s %q", e.what, e.str) }
|
|
||||||
|
|
||||||
// requires cc.mu be held.
|
// requires cc.mu be held.
|
||||||
func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) {
|
func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) {
|
||||||
cc.hbuf.Reset()
|
cc.hbuf.Reset()
|
||||||
|
@ -1616,6 +1656,7 @@ func (cc *ClientConn) writeHeader(name, value string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
type resAndError struct {
|
type resAndError struct {
|
||||||
|
_ incomparable
|
||||||
res *http.Response
|
res *http.Response
|
||||||
err error
|
err error
|
||||||
}
|
}
|
||||||
|
@ -1663,6 +1704,7 @@ func (cc *ClientConn) streamByID(id uint32, andRemove bool) *clientStream {
|
||||||
|
|
||||||
// clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop.
|
// clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop.
|
||||||
type clientConnReadLoop struct {
|
type clientConnReadLoop struct {
|
||||||
|
_ incomparable
|
||||||
cc *ClientConn
|
cc *ClientConn
|
||||||
closeWhenIdle bool
|
closeWhenIdle bool
|
||||||
}
|
}
|
||||||
|
@ -1742,8 +1784,17 @@ func (rl *clientConnReadLoop) run() error {
|
||||||
rl.closeWhenIdle = cc.t.disableKeepAlives() || cc.singleUse
|
rl.closeWhenIdle = cc.t.disableKeepAlives() || cc.singleUse
|
||||||
gotReply := false // ever saw a HEADERS reply
|
gotReply := false // ever saw a HEADERS reply
|
||||||
gotSettings := false
|
gotSettings := false
|
||||||
|
readIdleTimeout := cc.t.ReadIdleTimeout
|
||||||
|
var t *time.Timer
|
||||||
|
if readIdleTimeout != 0 {
|
||||||
|
t = time.AfterFunc(readIdleTimeout, cc.healthCheck)
|
||||||
|
defer t.Stop()
|
||||||
|
}
|
||||||
for {
|
for {
|
||||||
f, err := cc.fr.ReadFrame()
|
f, err := cc.fr.ReadFrame()
|
||||||
|
if t != nil {
|
||||||
|
t.Reset(readIdleTimeout)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cc.vlogf("http2: Transport readFrame error on conn %p: (%T) %v", cc, err, err)
|
cc.vlogf("http2: Transport readFrame error on conn %p: (%T) %v", cc, err, err)
|
||||||
}
|
}
|
||||||
|
@ -1892,7 +1943,9 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
|
||||||
return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header")
|
return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header")
|
||||||
}
|
}
|
||||||
|
|
||||||
header := make(http.Header)
|
regularFields := f.RegularFields()
|
||||||
|
strs := make([]string, len(regularFields))
|
||||||
|
header := make(http.Header, len(regularFields))
|
||||||
res := &http.Response{
|
res := &http.Response{
|
||||||
Proto: "HTTP/2.0",
|
Proto: "HTTP/2.0",
|
||||||
ProtoMajor: 2,
|
ProtoMajor: 2,
|
||||||
|
@ -1900,7 +1953,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
|
||||||
StatusCode: statusCode,
|
StatusCode: statusCode,
|
||||||
Status: status + " " + http.StatusText(statusCode),
|
Status: status + " " + http.StatusText(statusCode),
|
||||||
}
|
}
|
||||||
for _, hf := range f.RegularFields() {
|
for _, hf := range regularFields {
|
||||||
key := http.CanonicalHeaderKey(hf.Name)
|
key := http.CanonicalHeaderKey(hf.Name)
|
||||||
if key == "Trailer" {
|
if key == "Trailer" {
|
||||||
t := res.Trailer
|
t := res.Trailer
|
||||||
|
@ -1912,7 +1965,18 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
|
||||||
t[http.CanonicalHeaderKey(v)] = nil
|
t[http.CanonicalHeaderKey(v)] = nil
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
header[key] = append(header[key], hf.Value)
|
vv := header[key]
|
||||||
|
if vv == nil && len(strs) > 0 {
|
||||||
|
// More than likely this will be a single-element key.
|
||||||
|
// Most headers aren't multi-valued.
|
||||||
|
// Set the capacity on strs[0] to 1, so any future append
|
||||||
|
// won't extend the slice into the other strings.
|
||||||
|
vv, strs = strs[:1:1], strs[1:]
|
||||||
|
vv[0] = hf.Value
|
||||||
|
header[key] = vv
|
||||||
|
} else {
|
||||||
|
header[key] = append(vv, hf.Value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2466,6 +2530,7 @@ func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) {
|
||||||
// gzipReader wraps a response body so it can lazily
|
// gzipReader wraps a response body so it can lazily
|
||||||
// call gzip.NewReader on the first call to Read
|
// call gzip.NewReader on the first call to Read
|
||||||
type gzipReader struct {
|
type gzipReader struct {
|
||||||
|
_ incomparable
|
||||||
body io.ReadCloser // underlying Response.Body
|
body io.ReadCloser // underlying Response.Body
|
||||||
zr *gzip.Reader // lazily-initialized gzip reader
|
zr *gzip.Reader // lazily-initialized gzip reader
|
||||||
zerr error // sticky error
|
zerr error // sticky error
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
package unix
|
package unix
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
DLT_HHDLC = 0x79
|
||||||
IFF_SMART = 0x20
|
IFF_SMART = 0x20
|
||||||
IFT_1822 = 0x2
|
IFT_1822 = 0x2
|
||||||
IFT_A12MPPSWITCH = 0x82
|
IFT_A12MPPSWITCH = 0x82
|
||||||
|
@ -210,13 +211,18 @@ const (
|
||||||
IFT_XETHER = 0x1a
|
IFT_XETHER = 0x1a
|
||||||
IPPROTO_MAXID = 0x34
|
IPPROTO_MAXID = 0x34
|
||||||
IPV6_FAITH = 0x1d
|
IPV6_FAITH = 0x1d
|
||||||
|
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||||
IP_FAITH = 0x16
|
IP_FAITH = 0x16
|
||||||
|
IP_MAX_SOURCE_FILTER = 0x400
|
||||||
|
IP_MIN_MEMBERSHIPS = 0x1f
|
||||||
MAP_NORESERVE = 0x40
|
MAP_NORESERVE = 0x40
|
||||||
MAP_RENAME = 0x20
|
MAP_RENAME = 0x20
|
||||||
NET_RT_MAXID = 0x6
|
NET_RT_MAXID = 0x6
|
||||||
RTF_PRCLONING = 0x10000
|
RTF_PRCLONING = 0x10000
|
||||||
RTM_OLDADD = 0x9
|
RTM_OLDADD = 0x9
|
||||||
RTM_OLDDEL = 0xa
|
RTM_OLDDEL = 0xa
|
||||||
|
RT_CACHING_CONTEXT = 0x1
|
||||||
|
RT_NORTREF = 0x2
|
||||||
SIOCADDRT = 0x8030720a
|
SIOCADDRT = 0x8030720a
|
||||||
SIOCALIFADDR = 0x8118691b
|
SIOCALIFADDR = 0x8118691b
|
||||||
SIOCDELRT = 0x8030720b
|
SIOCDELRT = 0x8030720b
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
package unix
|
package unix
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
DLT_HHDLC = 0x79
|
||||||
IFF_SMART = 0x20
|
IFF_SMART = 0x20
|
||||||
IFT_1822 = 0x2
|
IFT_1822 = 0x2
|
||||||
IFT_A12MPPSWITCH = 0x82
|
IFT_A12MPPSWITCH = 0x82
|
||||||
|
@ -210,13 +211,18 @@ const (
|
||||||
IFT_XETHER = 0x1a
|
IFT_XETHER = 0x1a
|
||||||
IPPROTO_MAXID = 0x34
|
IPPROTO_MAXID = 0x34
|
||||||
IPV6_FAITH = 0x1d
|
IPV6_FAITH = 0x1d
|
||||||
|
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||||
IP_FAITH = 0x16
|
IP_FAITH = 0x16
|
||||||
|
IP_MAX_SOURCE_FILTER = 0x400
|
||||||
|
IP_MIN_MEMBERSHIPS = 0x1f
|
||||||
MAP_NORESERVE = 0x40
|
MAP_NORESERVE = 0x40
|
||||||
MAP_RENAME = 0x20
|
MAP_RENAME = 0x20
|
||||||
NET_RT_MAXID = 0x6
|
NET_RT_MAXID = 0x6
|
||||||
RTF_PRCLONING = 0x10000
|
RTF_PRCLONING = 0x10000
|
||||||
RTM_OLDADD = 0x9
|
RTM_OLDADD = 0x9
|
||||||
RTM_OLDDEL = 0xa
|
RTM_OLDDEL = 0xa
|
||||||
|
RT_CACHING_CONTEXT = 0x1
|
||||||
|
RT_NORTREF = 0x2
|
||||||
SIOCADDRT = 0x8040720a
|
SIOCADDRT = 0x8040720a
|
||||||
SIOCALIFADDR = 0x8118691b
|
SIOCALIFADDR = 0x8118691b
|
||||||
SIOCDELRT = 0x8040720b
|
SIOCDELRT = 0x8040720b
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
// Copyright 2020 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
|
||||||
|
// them here for backwards compatibility.
|
||||||
|
|
||||||
|
package unix
|
||||||
|
|
||||||
|
const (
|
||||||
|
DLT_HHDLC = 0x79
|
||||||
|
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||||
|
IP_MAX_SOURCE_FILTER = 0x400
|
||||||
|
IP_MIN_MEMBERSHIPS = 0x1f
|
||||||
|
RT_CACHING_CONTEXT = 0x1
|
||||||
|
RT_NORTREF = 0x2
|
||||||
|
)
|
|
@ -124,7 +124,7 @@ freebsd_arm)
|
||||||
freebsd_arm64)
|
freebsd_arm64)
|
||||||
mkerrors="$mkerrors -m64"
|
mkerrors="$mkerrors -m64"
|
||||||
mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
|
mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
|
||||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
|
||||||
;;
|
;;
|
||||||
netbsd_386)
|
netbsd_386)
|
||||||
mkerrors="$mkerrors -m32"
|
mkerrors="$mkerrors -m32"
|
||||||
|
@ -190,6 +190,12 @@ solaris_amd64)
|
||||||
mksysnum=
|
mksysnum=
|
||||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
||||||
;;
|
;;
|
||||||
|
illumos_amd64)
|
||||||
|
mksyscall="go run mksyscall_solaris.go"
|
||||||
|
mkerrors=
|
||||||
|
mksysnum=
|
||||||
|
mktypes=
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2
|
echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -217,6 +223,11 @@ esac
|
||||||
echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
|
echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
|
||||||
# 1.13 and later, syscalls via libSystem (including syscallPtr)
|
# 1.13 and later, syscalls via libSystem (including syscallPtr)
|
||||||
echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go";
|
echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go";
|
||||||
|
elif [ "$GOOS" == "illumos" ]; then
|
||||||
|
# illumos code generation requires a --illumos switch
|
||||||
|
echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go";
|
||||||
|
# illumos implies solaris, so solaris code generation is also required
|
||||||
|
echo "$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go";
|
||||||
else
|
else
|
||||||
echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
|
echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -105,6 +105,7 @@ includes_FreeBSD='
|
||||||
#include <sys/capsicum.h>
|
#include <sys/capsicum.h>
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#include <sys/disk.h>
|
||||||
#include <sys/event.h>
|
#include <sys/event.h>
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
@ -280,6 +281,11 @@ struct ltchars {
|
||||||
// for the tipc_subscr timeout __u32 field.
|
// for the tipc_subscr timeout __u32 field.
|
||||||
#undef TIPC_WAIT_FOREVER
|
#undef TIPC_WAIT_FOREVER
|
||||||
#define TIPC_WAIT_FOREVER 0xffffffff
|
#define TIPC_WAIT_FOREVER 0xffffffff
|
||||||
|
|
||||||
|
// Copied from linux/l2tp.h
|
||||||
|
// Including linux/l2tp.h here causes conflicts between linux/in.h
|
||||||
|
// and netinet/in.h included via net/route.h above.
|
||||||
|
#define IPPROTO_L2TP 115
|
||||||
'
|
'
|
||||||
|
|
||||||
includes_NetBSD='
|
includes_NetBSD='
|
||||||
|
@ -488,6 +494,7 @@ ccflags="$@"
|
||||||
$2 !~ "RTF_BITS" &&
|
$2 !~ "RTF_BITS" &&
|
||||||
$2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ ||
|
$2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ ||
|
||||||
$2 ~ /^BIOC/ ||
|
$2 ~ /^BIOC/ ||
|
||||||
|
$2 ~ /^DIOC/ ||
|
||||||
$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||
|
$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||
|
||||||
$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||
|
$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||
|
||||||
$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||
|
$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||
|
||||||
|
|
|
@ -521,10 +521,6 @@ func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {
|
||||||
return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
|
return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
|
|
||||||
return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
func PtraceGetRegs(pid int, regsout *Reg) (err error) {
|
func PtraceGetRegs(pid int, regsout *Reg) (err error) {
|
||||||
return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
|
return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,10 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
||||||
|
|
||||||
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
||||||
|
|
||||||
|
func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
|
||||||
|
return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
||||||
|
}
|
||||||
|
|
||||||
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
||||||
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
|
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
|
||||||
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||||
|
|
|
@ -55,6 +55,10 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
||||||
|
|
||||||
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
||||||
|
|
||||||
|
func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
|
||||||
|
return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
||||||
|
}
|
||||||
|
|
||||||
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
||||||
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
|
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
|
||||||
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
// Copyright 2009 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// illumos system calls not present on Solaris.
|
||||||
|
|
||||||
|
// +build amd64,illumos
|
||||||
|
|
||||||
|
package unix
|
||||||
|
|
||||||
|
import "unsafe"
|
||||||
|
|
||||||
|
func bytes2iovec(bs [][]byte) []Iovec {
|
||||||
|
iovecs := make([]Iovec, len(bs))
|
||||||
|
for i, b := range bs {
|
||||||
|
iovecs[i].SetLen(len(b))
|
||||||
|
if len(b) > 0 {
|
||||||
|
// somehow Iovec.Base on illumos is (*int8), not (*byte)
|
||||||
|
iovecs[i].Base = (*int8)(unsafe.Pointer(&b[0]))
|
||||||
|
} else {
|
||||||
|
iovecs[i].Base = (*int8)(unsafe.Pointer(&_zero))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return iovecs
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys readv(fd int, iovs []Iovec) (n int, err error)
|
||||||
|
|
||||||
|
func Readv(fd int, iovs [][]byte) (n int, err error) {
|
||||||
|
iovecs := bytes2iovec(iovs)
|
||||||
|
n, err = readv(fd, iovecs)
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error)
|
||||||
|
|
||||||
|
func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) {
|
||||||
|
iovecs := bytes2iovec(iovs)
|
||||||
|
n, err = preadv(fd, iovecs, off)
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys writev(fd int, iovs []Iovec) (n int, err error)
|
||||||
|
|
||||||
|
func Writev(fd int, iovs [][]byte) (n int, err error) {
|
||||||
|
iovecs := bytes2iovec(iovs)
|
||||||
|
n, err = writev(fd, iovecs)
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error)
|
||||||
|
|
||||||
|
func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) {
|
||||||
|
iovecs := bytes2iovec(iovs)
|
||||||
|
n, err = pwritev(fd, iovecs, off)
|
||||||
|
return n, err
|
||||||
|
}
|
|
@ -839,6 +839,40 @@ func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||||
return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil
|
return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets.
|
||||||
|
type SockaddrL2TPIP struct {
|
||||||
|
Addr [4]byte
|
||||||
|
ConnId uint32
|
||||||
|
raw RawSockaddrL2TPIP
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||||
|
sa.raw.Family = AF_INET
|
||||||
|
sa.raw.Conn_id = sa.ConnId
|
||||||
|
for i := 0; i < len(sa.Addr); i++ {
|
||||||
|
sa.raw.Addr[i] = sa.Addr[i]
|
||||||
|
}
|
||||||
|
return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets.
|
||||||
|
type SockaddrL2TPIP6 struct {
|
||||||
|
Addr [16]byte
|
||||||
|
ZoneId uint32
|
||||||
|
ConnId uint32
|
||||||
|
raw RawSockaddrL2TPIP6
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||||
|
sa.raw.Family = AF_INET6
|
||||||
|
sa.raw.Conn_id = sa.ConnId
|
||||||
|
sa.raw.Scope_id = sa.ZoneId
|
||||||
|
for i := 0; i < len(sa.Addr); i++ {
|
||||||
|
sa.raw.Addr[i] = sa.Addr[i]
|
||||||
|
}
|
||||||
|
return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil
|
||||||
|
}
|
||||||
|
|
||||||
func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
|
func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
|
||||||
switch rsa.Addr.Family {
|
switch rsa.Addr.Family {
|
||||||
case AF_NETLINK:
|
case AF_NETLINK:
|
||||||
|
@ -889,25 +923,58 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
|
||||||
return sa, nil
|
return sa, nil
|
||||||
|
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
|
proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
|
||||||
sa := new(SockaddrInet4)
|
if err != nil {
|
||||||
p := (*[2]byte)(unsafe.Pointer(&pp.Port))
|
return nil, err
|
||||||
sa.Port = int(p[0])<<8 + int(p[1])
|
}
|
||||||
for i := 0; i < len(sa.Addr); i++ {
|
|
||||||
sa.Addr[i] = pp.Addr[i]
|
switch proto {
|
||||||
|
case IPPROTO_L2TP:
|
||||||
|
pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa))
|
||||||
|
sa := new(SockaddrL2TPIP)
|
||||||
|
sa.ConnId = pp.Conn_id
|
||||||
|
for i := 0; i < len(sa.Addr); i++ {
|
||||||
|
sa.Addr[i] = pp.Addr[i]
|
||||||
|
}
|
||||||
|
return sa, nil
|
||||||
|
default:
|
||||||
|
pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
|
||||||
|
sa := new(SockaddrInet4)
|
||||||
|
p := (*[2]byte)(unsafe.Pointer(&pp.Port))
|
||||||
|
sa.Port = int(p[0])<<8 + int(p[1])
|
||||||
|
for i := 0; i < len(sa.Addr); i++ {
|
||||||
|
sa.Addr[i] = pp.Addr[i]
|
||||||
|
}
|
||||||
|
return sa, nil
|
||||||
}
|
}
|
||||||
return sa, nil
|
|
||||||
|
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
|
proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
|
||||||
sa := new(SockaddrInet6)
|
if err != nil {
|
||||||
p := (*[2]byte)(unsafe.Pointer(&pp.Port))
|
return nil, err
|
||||||
sa.Port = int(p[0])<<8 + int(p[1])
|
}
|
||||||
sa.ZoneId = pp.Scope_id
|
|
||||||
for i := 0; i < len(sa.Addr); i++ {
|
switch proto {
|
||||||
sa.Addr[i] = pp.Addr[i]
|
case IPPROTO_L2TP:
|
||||||
|
pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa))
|
||||||
|
sa := new(SockaddrL2TPIP6)
|
||||||
|
sa.ConnId = pp.Conn_id
|
||||||
|
sa.ZoneId = pp.Scope_id
|
||||||
|
for i := 0; i < len(sa.Addr); i++ {
|
||||||
|
sa.Addr[i] = pp.Addr[i]
|
||||||
|
}
|
||||||
|
return sa, nil
|
||||||
|
default:
|
||||||
|
pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
|
||||||
|
sa := new(SockaddrInet6)
|
||||||
|
p := (*[2]byte)(unsafe.Pointer(&pp.Port))
|
||||||
|
sa.Port = int(p[0])<<8 + int(p[1])
|
||||||
|
sa.ZoneId = pp.Scope_id
|
||||||
|
for i := 0; i < len(sa.Addr); i++ {
|
||||||
|
sa.Addr[i] = pp.Addr[i]
|
||||||
|
}
|
||||||
|
return sa, nil
|
||||||
}
|
}
|
||||||
return sa, nil
|
|
||||||
|
|
||||||
case AF_VSOCK:
|
case AF_VSOCK:
|
||||||
pp := (*RawSockaddrVM)(unsafe.Pointer(rsa))
|
pp := (*RawSockaddrVM)(unsafe.Pointer(rsa))
|
||||||
|
|
|
@ -76,7 +76,7 @@ func SignalName(s syscall.Signal) string {
|
||||||
// The signal name should start with "SIG".
|
// The signal name should start with "SIG".
|
||||||
func SignalNum(s string) syscall.Signal {
|
func SignalNum(s string) syscall.Signal {
|
||||||
signalNameMapOnce.Do(func() {
|
signalNameMapOnce.Do(func() {
|
||||||
signalNameMap = make(map[string]syscall.Signal)
|
signalNameMap = make(map[string]syscall.Signal, len(signalList))
|
||||||
for _, signal := range signalList {
|
for _, signal := range signalList {
|
||||||
signalNameMap[signal.name] = signal.num
|
signalNameMap[signal.name] = signal.num
|
||||||
}
|
}
|
||||||
|
|
|
@ -355,6 +355,22 @@ const (
|
||||||
CTL_KERN = 0x1
|
CTL_KERN = 0x1
|
||||||
CTL_MAXNAME = 0x18
|
CTL_MAXNAME = 0x18
|
||||||
CTL_NET = 0x4
|
CTL_NET = 0x4
|
||||||
|
DIOCGATTR = 0xc144648e
|
||||||
|
DIOCGDELETE = 0x80106488
|
||||||
|
DIOCGFLUSH = 0x20006487
|
||||||
|
DIOCGFRONTSTUFF = 0x40086486
|
||||||
|
DIOCGFWHEADS = 0x40046483
|
||||||
|
DIOCGFWSECTORS = 0x40046482
|
||||||
|
DIOCGIDENT = 0x41006489
|
||||||
|
DIOCGMEDIASIZE = 0x40086481
|
||||||
|
DIOCGPHYSPATH = 0x4400648d
|
||||||
|
DIOCGPROVIDERNAME = 0x4400648a
|
||||||
|
DIOCGSECTORSIZE = 0x40046480
|
||||||
|
DIOCGSTRIPEOFFSET = 0x4008648c
|
||||||
|
DIOCGSTRIPESIZE = 0x4008648b
|
||||||
|
DIOCSKERNELDUMP = 0x804c6490
|
||||||
|
DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
|
||||||
|
DIOCZONECMD = 0xc06c648f
|
||||||
DLT_A429 = 0xb8
|
DLT_A429 = 0xb8
|
||||||
DLT_A653_ICM = 0xb9
|
DLT_A653_ICM = 0xb9
|
||||||
DLT_AIRONET_HEADER = 0x78
|
DLT_AIRONET_HEADER = 0x78
|
||||||
|
@ -379,11 +395,14 @@ const (
|
||||||
DLT_CHAOS = 0x5
|
DLT_CHAOS = 0x5
|
||||||
DLT_CHDLC = 0x68
|
DLT_CHDLC = 0x68
|
||||||
DLT_CISCO_IOS = 0x76
|
DLT_CISCO_IOS = 0x76
|
||||||
|
DLT_CLASS_NETBSD_RAWAF = 0x2240000
|
||||||
DLT_C_HDLC = 0x68
|
DLT_C_HDLC = 0x68
|
||||||
DLT_C_HDLC_WITH_DIR = 0xcd
|
DLT_C_HDLC_WITH_DIR = 0xcd
|
||||||
DLT_DBUS = 0xe7
|
DLT_DBUS = 0xe7
|
||||||
DLT_DECT = 0xdd
|
DLT_DECT = 0xdd
|
||||||
|
DLT_DISPLAYPORT_AUX = 0x113
|
||||||
DLT_DOCSIS = 0x8f
|
DLT_DOCSIS = 0x8f
|
||||||
|
DLT_DOCSIS31_XRA31 = 0x111
|
||||||
DLT_DVB_CI = 0xeb
|
DLT_DVB_CI = 0xeb
|
||||||
DLT_ECONET = 0x73
|
DLT_ECONET = 0x73
|
||||||
DLT_EN10MB = 0x1
|
DLT_EN10MB = 0x1
|
||||||
|
@ -393,6 +412,7 @@ const (
|
||||||
DLT_ERF = 0xc5
|
DLT_ERF = 0xc5
|
||||||
DLT_ERF_ETH = 0xaf
|
DLT_ERF_ETH = 0xaf
|
||||||
DLT_ERF_POS = 0xb0
|
DLT_ERF_POS = 0xb0
|
||||||
|
DLT_ETHERNET_MPACKET = 0x112
|
||||||
DLT_FC_2 = 0xe0
|
DLT_FC_2 = 0xe0
|
||||||
DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
|
DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
|
||||||
DLT_FDDI = 0xa
|
DLT_FDDI = 0xa
|
||||||
|
@ -406,7 +426,6 @@ const (
|
||||||
DLT_GPRS_LLC = 0xa9
|
DLT_GPRS_LLC = 0xa9
|
||||||
DLT_GSMTAP_ABIS = 0xda
|
DLT_GSMTAP_ABIS = 0xda
|
||||||
DLT_GSMTAP_UM = 0xd9
|
DLT_GSMTAP_UM = 0xd9
|
||||||
DLT_HHDLC = 0x79
|
|
||||||
DLT_IBM_SN = 0x92
|
DLT_IBM_SN = 0x92
|
||||||
DLT_IBM_SP = 0x91
|
DLT_IBM_SP = 0x91
|
||||||
DLT_IEEE802 = 0x6
|
DLT_IEEE802 = 0x6
|
||||||
|
@ -429,6 +448,7 @@ const (
|
||||||
DLT_IPV4 = 0xe4
|
DLT_IPV4 = 0xe4
|
||||||
DLT_IPV6 = 0xe5
|
DLT_IPV6 = 0xe5
|
||||||
DLT_IP_OVER_FC = 0x7a
|
DLT_IP_OVER_FC = 0x7a
|
||||||
|
DLT_ISO_14443 = 0x108
|
||||||
DLT_JUNIPER_ATM1 = 0x89
|
DLT_JUNIPER_ATM1 = 0x89
|
||||||
DLT_JUNIPER_ATM2 = 0x87
|
DLT_JUNIPER_ATM2 = 0x87
|
||||||
DLT_JUNIPER_ATM_CEMIC = 0xee
|
DLT_JUNIPER_ATM_CEMIC = 0xee
|
||||||
|
@ -461,8 +481,9 @@ const (
|
||||||
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
||||||
DLT_LINUX_SLL = 0x71
|
DLT_LINUX_SLL = 0x71
|
||||||
DLT_LOOP = 0x6c
|
DLT_LOOP = 0x6c
|
||||||
|
DLT_LORATAP = 0x10e
|
||||||
DLT_LTALK = 0x72
|
DLT_LTALK = 0x72
|
||||||
DLT_MATCHING_MAX = 0x104
|
DLT_MATCHING_MAX = 0x113
|
||||||
DLT_MATCHING_MIN = 0x68
|
DLT_MATCHING_MIN = 0x68
|
||||||
DLT_MFR = 0xb6
|
DLT_MFR = 0xb6
|
||||||
DLT_MOST = 0xd3
|
DLT_MOST = 0xd3
|
||||||
|
@ -478,14 +499,16 @@ const (
|
||||||
DLT_NFC_LLCP = 0xf5
|
DLT_NFC_LLCP = 0xf5
|
||||||
DLT_NFLOG = 0xef
|
DLT_NFLOG = 0xef
|
||||||
DLT_NG40 = 0xf4
|
DLT_NG40 = 0xf4
|
||||||
|
DLT_NORDIC_BLE = 0x110
|
||||||
DLT_NULL = 0x0
|
DLT_NULL = 0x0
|
||||||
|
DLT_OPENFLOW = 0x10b
|
||||||
DLT_PCI_EXP = 0x7d
|
DLT_PCI_EXP = 0x7d
|
||||||
DLT_PFLOG = 0x75
|
DLT_PFLOG = 0x75
|
||||||
DLT_PFSYNC = 0x79
|
DLT_PFSYNC = 0x79
|
||||||
DLT_PKTAP = 0x102
|
DLT_PKTAP = 0x102
|
||||||
DLT_PPI = 0xc0
|
DLT_PPI = 0xc0
|
||||||
DLT_PPP = 0x9
|
DLT_PPP = 0x9
|
||||||
DLT_PPP_BSDOS = 0x10
|
DLT_PPP_BSDOS = 0xe
|
||||||
DLT_PPP_ETHER = 0x33
|
DLT_PPP_ETHER = 0x33
|
||||||
DLT_PPP_PPPD = 0xa6
|
DLT_PPP_PPPD = 0xa6
|
||||||
DLT_PPP_SERIAL = 0x32
|
DLT_PPP_SERIAL = 0x32
|
||||||
|
@ -496,19 +519,25 @@ const (
|
||||||
DLT_PRONET = 0x4
|
DLT_PRONET = 0x4
|
||||||
DLT_RAIF1 = 0xc6
|
DLT_RAIF1 = 0xc6
|
||||||
DLT_RAW = 0xc
|
DLT_RAW = 0xc
|
||||||
|
DLT_RDS = 0x109
|
||||||
|
DLT_REDBACK_SMARTEDGE = 0x20
|
||||||
DLT_RIO = 0x7c
|
DLT_RIO = 0x7c
|
||||||
DLT_RTAC_SERIAL = 0xfa
|
DLT_RTAC_SERIAL = 0xfa
|
||||||
DLT_SCCP = 0x8e
|
DLT_SCCP = 0x8e
|
||||||
DLT_SCTP = 0xf8
|
DLT_SCTP = 0xf8
|
||||||
|
DLT_SDLC = 0x10c
|
||||||
DLT_SITA = 0xc4
|
DLT_SITA = 0xc4
|
||||||
DLT_SLIP = 0x8
|
DLT_SLIP = 0x8
|
||||||
DLT_SLIP_BSDOS = 0xf
|
DLT_SLIP_BSDOS = 0xd
|
||||||
DLT_STANAG_5066_D_PDU = 0xed
|
DLT_STANAG_5066_D_PDU = 0xed
|
||||||
DLT_SUNATM = 0x7b
|
DLT_SUNATM = 0x7b
|
||||||
DLT_SYMANTEC_FIREWALL = 0x63
|
DLT_SYMANTEC_FIREWALL = 0x63
|
||||||
|
DLT_TI_LLN_SNIFFER = 0x10d
|
||||||
DLT_TZSP = 0x80
|
DLT_TZSP = 0x80
|
||||||
DLT_USB = 0xba
|
DLT_USB = 0xba
|
||||||
DLT_USBPCAP = 0xf9
|
DLT_USBPCAP = 0xf9
|
||||||
|
DLT_USB_DARWIN = 0x10a
|
||||||
|
DLT_USB_FREEBSD = 0xba
|
||||||
DLT_USB_LINUX = 0xbd
|
DLT_USB_LINUX = 0xbd
|
||||||
DLT_USB_LINUX_MMAPPED = 0xdc
|
DLT_USB_LINUX_MMAPPED = 0xdc
|
||||||
DLT_USER0 = 0x93
|
DLT_USER0 = 0x93
|
||||||
|
@ -527,10 +556,14 @@ const (
|
||||||
DLT_USER7 = 0x9a
|
DLT_USER7 = 0x9a
|
||||||
DLT_USER8 = 0x9b
|
DLT_USER8 = 0x9b
|
||||||
DLT_USER9 = 0x9c
|
DLT_USER9 = 0x9c
|
||||||
|
DLT_VSOCK = 0x10f
|
||||||
|
DLT_WATTSTOPPER_DLM = 0x107
|
||||||
DLT_WIHART = 0xdf
|
DLT_WIHART = 0xdf
|
||||||
DLT_WIRESHARK_UPPER_PDU = 0xfc
|
DLT_WIRESHARK_UPPER_PDU = 0xfc
|
||||||
DLT_X2E_SERIAL = 0xd5
|
DLT_X2E_SERIAL = 0xd5
|
||||||
DLT_X2E_XORAYA = 0xd6
|
DLT_X2E_XORAYA = 0xd6
|
||||||
|
DLT_ZWAVE_R1_R2 = 0x105
|
||||||
|
DLT_ZWAVE_R3 = 0x106
|
||||||
DT_BLK = 0x6
|
DT_BLK = 0x6
|
||||||
DT_CHR = 0x2
|
DT_CHR = 0x2
|
||||||
DT_DIR = 0x4
|
DT_DIR = 0x4
|
||||||
|
@ -548,6 +581,7 @@ const (
|
||||||
ECHONL = 0x10
|
ECHONL = 0x10
|
||||||
ECHOPRT = 0x20
|
ECHOPRT = 0x20
|
||||||
EVFILT_AIO = -0x3
|
EVFILT_AIO = -0x3
|
||||||
|
EVFILT_EMPTY = -0xd
|
||||||
EVFILT_FS = -0x9
|
EVFILT_FS = -0x9
|
||||||
EVFILT_LIO = -0xa
|
EVFILT_LIO = -0xa
|
||||||
EVFILT_PROC = -0x5
|
EVFILT_PROC = -0x5
|
||||||
|
@ -555,11 +589,12 @@ const (
|
||||||
EVFILT_READ = -0x1
|
EVFILT_READ = -0x1
|
||||||
EVFILT_SENDFILE = -0xc
|
EVFILT_SENDFILE = -0xc
|
||||||
EVFILT_SIGNAL = -0x6
|
EVFILT_SIGNAL = -0x6
|
||||||
EVFILT_SYSCOUNT = 0xc
|
EVFILT_SYSCOUNT = 0xd
|
||||||
EVFILT_TIMER = -0x7
|
EVFILT_TIMER = -0x7
|
||||||
EVFILT_USER = -0xb
|
EVFILT_USER = -0xb
|
||||||
EVFILT_VNODE = -0x4
|
EVFILT_VNODE = -0x4
|
||||||
EVFILT_WRITE = -0x2
|
EVFILT_WRITE = -0x2
|
||||||
|
EVNAMEMAP_NAME_SIZE = 0x40
|
||||||
EV_ADD = 0x1
|
EV_ADD = 0x1
|
||||||
EV_CLEAR = 0x20
|
EV_CLEAR = 0x20
|
||||||
EV_DELETE = 0x2
|
EV_DELETE = 0x2
|
||||||
|
@ -576,6 +611,7 @@ const (
|
||||||
EV_RECEIPT = 0x40
|
EV_RECEIPT = 0x40
|
||||||
EV_SYSFLAGS = 0xf000
|
EV_SYSFLAGS = 0xf000
|
||||||
EXTA = 0x4b00
|
EXTA = 0x4b00
|
||||||
|
EXTATTR_MAXNAMELEN = 0xff
|
||||||
EXTATTR_NAMESPACE_EMPTY = 0x0
|
EXTATTR_NAMESPACE_EMPTY = 0x0
|
||||||
EXTATTR_NAMESPACE_SYSTEM = 0x2
|
EXTATTR_NAMESPACE_SYSTEM = 0x2
|
||||||
EXTATTR_NAMESPACE_USER = 0x1
|
EXTATTR_NAMESPACE_USER = 0x1
|
||||||
|
@ -617,6 +653,7 @@ const (
|
||||||
IEXTEN = 0x400
|
IEXTEN = 0x400
|
||||||
IFAN_ARRIVAL = 0x0
|
IFAN_ARRIVAL = 0x0
|
||||||
IFAN_DEPARTURE = 0x1
|
IFAN_DEPARTURE = 0x1
|
||||||
|
IFCAP_WOL_MAGIC = 0x2000
|
||||||
IFF_ALLMULTI = 0x200
|
IFF_ALLMULTI = 0x200
|
||||||
IFF_ALTPHYS = 0x4000
|
IFF_ALTPHYS = 0x4000
|
||||||
IFF_BROADCAST = 0x2
|
IFF_BROADCAST = 0x2
|
||||||
|
@ -633,6 +670,7 @@ const (
|
||||||
IFF_MONITOR = 0x40000
|
IFF_MONITOR = 0x40000
|
||||||
IFF_MULTICAST = 0x8000
|
IFF_MULTICAST = 0x8000
|
||||||
IFF_NOARP = 0x80
|
IFF_NOARP = 0x80
|
||||||
|
IFF_NOGROUP = 0x800000
|
||||||
IFF_OACTIVE = 0x400
|
IFF_OACTIVE = 0x400
|
||||||
IFF_POINTOPOINT = 0x10
|
IFF_POINTOPOINT = 0x10
|
||||||
IFF_PPROMISC = 0x20000
|
IFF_PPROMISC = 0x20000
|
||||||
|
@ -807,6 +845,7 @@ const (
|
||||||
IPV6_DSTOPTS = 0x32
|
IPV6_DSTOPTS = 0x32
|
||||||
IPV6_FLOWID = 0x43
|
IPV6_FLOWID = 0x43
|
||||||
IPV6_FLOWINFO_MASK = 0xffffff0f
|
IPV6_FLOWINFO_MASK = 0xffffff0f
|
||||||
|
IPV6_FLOWLABEL_LEN = 0x14
|
||||||
IPV6_FLOWLABEL_MASK = 0xffff0f00
|
IPV6_FLOWLABEL_MASK = 0xffff0f00
|
||||||
IPV6_FLOWTYPE = 0x44
|
IPV6_FLOWTYPE = 0x44
|
||||||
IPV6_FRAGTTL = 0x78
|
IPV6_FRAGTTL = 0x78
|
||||||
|
@ -827,13 +866,13 @@ const (
|
||||||
IPV6_MAX_GROUP_SRC_FILTER = 0x200
|
IPV6_MAX_GROUP_SRC_FILTER = 0x200
|
||||||
IPV6_MAX_MEMBERSHIPS = 0xfff
|
IPV6_MAX_MEMBERSHIPS = 0xfff
|
||||||
IPV6_MAX_SOCK_SRC_FILTER = 0x80
|
IPV6_MAX_SOCK_SRC_FILTER = 0x80
|
||||||
IPV6_MIN_MEMBERSHIPS = 0x1f
|
|
||||||
IPV6_MMTU = 0x500
|
IPV6_MMTU = 0x500
|
||||||
IPV6_MSFILTER = 0x4a
|
IPV6_MSFILTER = 0x4a
|
||||||
IPV6_MULTICAST_HOPS = 0xa
|
IPV6_MULTICAST_HOPS = 0xa
|
||||||
IPV6_MULTICAST_IF = 0x9
|
IPV6_MULTICAST_IF = 0x9
|
||||||
IPV6_MULTICAST_LOOP = 0xb
|
IPV6_MULTICAST_LOOP = 0xb
|
||||||
IPV6_NEXTHOP = 0x30
|
IPV6_NEXTHOP = 0x30
|
||||||
|
IPV6_ORIGDSTADDR = 0x48
|
||||||
IPV6_PATHMTU = 0x2c
|
IPV6_PATHMTU = 0x2c
|
||||||
IPV6_PKTINFO = 0x2e
|
IPV6_PKTINFO = 0x2e
|
||||||
IPV6_PORTRANGE = 0xe
|
IPV6_PORTRANGE = 0xe
|
||||||
|
@ -845,6 +884,7 @@ const (
|
||||||
IPV6_RECVFLOWID = 0x46
|
IPV6_RECVFLOWID = 0x46
|
||||||
IPV6_RECVHOPLIMIT = 0x25
|
IPV6_RECVHOPLIMIT = 0x25
|
||||||
IPV6_RECVHOPOPTS = 0x27
|
IPV6_RECVHOPOPTS = 0x27
|
||||||
|
IPV6_RECVORIGDSTADDR = 0x48
|
||||||
IPV6_RECVPATHMTU = 0x2b
|
IPV6_RECVPATHMTU = 0x2b
|
||||||
IPV6_RECVPKTINFO = 0x24
|
IPV6_RECVPKTINFO = 0x24
|
||||||
IPV6_RECVRSSBUCKETID = 0x47
|
IPV6_RECVRSSBUCKETID = 0x47
|
||||||
|
@ -905,10 +945,8 @@ const (
|
||||||
IP_MAX_MEMBERSHIPS = 0xfff
|
IP_MAX_MEMBERSHIPS = 0xfff
|
||||||
IP_MAX_SOCK_MUTE_FILTER = 0x80
|
IP_MAX_SOCK_MUTE_FILTER = 0x80
|
||||||
IP_MAX_SOCK_SRC_FILTER = 0x80
|
IP_MAX_SOCK_SRC_FILTER = 0x80
|
||||||
IP_MAX_SOURCE_FILTER = 0x400
|
|
||||||
IP_MF = 0x2000
|
IP_MF = 0x2000
|
||||||
IP_MINTTL = 0x42
|
IP_MINTTL = 0x42
|
||||||
IP_MIN_MEMBERSHIPS = 0x1f
|
|
||||||
IP_MSFILTER = 0x4a
|
IP_MSFILTER = 0x4a
|
||||||
IP_MSS = 0x240
|
IP_MSS = 0x240
|
||||||
IP_MULTICAST_IF = 0x9
|
IP_MULTICAST_IF = 0x9
|
||||||
|
@ -918,6 +956,7 @@ const (
|
||||||
IP_OFFMASK = 0x1fff
|
IP_OFFMASK = 0x1fff
|
||||||
IP_ONESBCAST = 0x17
|
IP_ONESBCAST = 0x17
|
||||||
IP_OPTIONS = 0x1
|
IP_OPTIONS = 0x1
|
||||||
|
IP_ORIGDSTADDR = 0x1b
|
||||||
IP_PORTRANGE = 0x13
|
IP_PORTRANGE = 0x13
|
||||||
IP_PORTRANGE_DEFAULT = 0x0
|
IP_PORTRANGE_DEFAULT = 0x0
|
||||||
IP_PORTRANGE_HIGH = 0x1
|
IP_PORTRANGE_HIGH = 0x1
|
||||||
|
@ -926,6 +965,7 @@ const (
|
||||||
IP_RECVFLOWID = 0x5d
|
IP_RECVFLOWID = 0x5d
|
||||||
IP_RECVIF = 0x14
|
IP_RECVIF = 0x14
|
||||||
IP_RECVOPTS = 0x5
|
IP_RECVOPTS = 0x5
|
||||||
|
IP_RECVORIGDSTADDR = 0x1b
|
||||||
IP_RECVRETOPTS = 0x6
|
IP_RECVRETOPTS = 0x6
|
||||||
IP_RECVRSSBUCKETID = 0x5e
|
IP_RECVRSSBUCKETID = 0x5e
|
||||||
IP_RECVTOS = 0x44
|
IP_RECVTOS = 0x44
|
||||||
|
@ -975,6 +1015,7 @@ const (
|
||||||
MAP_EXCL = 0x4000
|
MAP_EXCL = 0x4000
|
||||||
MAP_FILE = 0x0
|
MAP_FILE = 0x0
|
||||||
MAP_FIXED = 0x10
|
MAP_FIXED = 0x10
|
||||||
|
MAP_GUARD = 0x2000
|
||||||
MAP_HASSEMAPHORE = 0x200
|
MAP_HASSEMAPHORE = 0x200
|
||||||
MAP_NOCORE = 0x20000
|
MAP_NOCORE = 0x20000
|
||||||
MAP_NOSYNC = 0x800
|
MAP_NOSYNC = 0x800
|
||||||
|
@ -986,6 +1027,15 @@ const (
|
||||||
MAP_RESERVED0100 = 0x100
|
MAP_RESERVED0100 = 0x100
|
||||||
MAP_SHARED = 0x1
|
MAP_SHARED = 0x1
|
||||||
MAP_STACK = 0x400
|
MAP_STACK = 0x400
|
||||||
|
MCAST_BLOCK_SOURCE = 0x54
|
||||||
|
MCAST_EXCLUDE = 0x2
|
||||||
|
MCAST_INCLUDE = 0x1
|
||||||
|
MCAST_JOIN_GROUP = 0x50
|
||||||
|
MCAST_JOIN_SOURCE_GROUP = 0x52
|
||||||
|
MCAST_LEAVE_GROUP = 0x51
|
||||||
|
MCAST_LEAVE_SOURCE_GROUP = 0x53
|
||||||
|
MCAST_UNBLOCK_SOURCE = 0x55
|
||||||
|
MCAST_UNDEFINED = 0x0
|
||||||
MCL_CURRENT = 0x1
|
MCL_CURRENT = 0x1
|
||||||
MCL_FUTURE = 0x2
|
MCL_FUTURE = 0x2
|
||||||
MNT_ACLS = 0x8000000
|
MNT_ACLS = 0x8000000
|
||||||
|
@ -1026,10 +1076,12 @@ const (
|
||||||
MNT_SUSPEND = 0x4
|
MNT_SUSPEND = 0x4
|
||||||
MNT_SYNCHRONOUS = 0x2
|
MNT_SYNCHRONOUS = 0x2
|
||||||
MNT_UNION = 0x20
|
MNT_UNION = 0x20
|
||||||
|
MNT_UNTRUSTED = 0x800000000
|
||||||
MNT_UPDATE = 0x10000
|
MNT_UPDATE = 0x10000
|
||||||
MNT_UPDATEMASK = 0x2d8d0807e
|
MNT_UPDATEMASK = 0xad8d0807e
|
||||||
MNT_USER = 0x8000
|
MNT_USER = 0x8000
|
||||||
MNT_VISFLAGMASK = 0x3fef0ffff
|
MNT_VERIFIED = 0x400000000
|
||||||
|
MNT_VISFLAGMASK = 0xffef0ffff
|
||||||
MNT_WAIT = 0x1
|
MNT_WAIT = 0x1
|
||||||
MSG_CMSG_CLOEXEC = 0x40000
|
MSG_CMSG_CLOEXEC = 0x40000
|
||||||
MSG_COMPAT = 0x8000
|
MSG_COMPAT = 0x8000
|
||||||
|
@ -1058,6 +1110,7 @@ const (
|
||||||
NFDBITS = 0x20
|
NFDBITS = 0x20
|
||||||
NOFLSH = 0x80000000
|
NOFLSH = 0x80000000
|
||||||
NOKERNINFO = 0x2000000
|
NOKERNINFO = 0x2000000
|
||||||
|
NOTE_ABSTIME = 0x10
|
||||||
NOTE_ATTRIB = 0x8
|
NOTE_ATTRIB = 0x8
|
||||||
NOTE_CHILD = 0x4
|
NOTE_CHILD = 0x4
|
||||||
NOTE_CLOSE = 0x100
|
NOTE_CLOSE = 0x100
|
||||||
|
@ -1212,7 +1265,6 @@ const (
|
||||||
RTV_WEIGHT = 0x100
|
RTV_WEIGHT = 0x100
|
||||||
RT_ALL_FIBS = -0x1
|
RT_ALL_FIBS = -0x1
|
||||||
RT_BLACKHOLE = 0x40
|
RT_BLACKHOLE = 0x40
|
||||||
RT_CACHING_CONTEXT = 0x1
|
|
||||||
RT_DEFAULT_FIB = 0x0
|
RT_DEFAULT_FIB = 0x0
|
||||||
RT_HAS_GW = 0x80
|
RT_HAS_GW = 0x80
|
||||||
RT_HAS_HEADER = 0x10
|
RT_HAS_HEADER = 0x10
|
||||||
|
@ -1222,15 +1274,17 @@ const (
|
||||||
RT_LLE_CACHE = 0x100
|
RT_LLE_CACHE = 0x100
|
||||||
RT_MAY_LOOP = 0x8
|
RT_MAY_LOOP = 0x8
|
||||||
RT_MAY_LOOP_BIT = 0x3
|
RT_MAY_LOOP_BIT = 0x3
|
||||||
RT_NORTREF = 0x2
|
|
||||||
RT_REJECT = 0x20
|
RT_REJECT = 0x20
|
||||||
RUSAGE_CHILDREN = -0x1
|
RUSAGE_CHILDREN = -0x1
|
||||||
RUSAGE_SELF = 0x0
|
RUSAGE_SELF = 0x0
|
||||||
RUSAGE_THREAD = 0x1
|
RUSAGE_THREAD = 0x1
|
||||||
SCM_BINTIME = 0x4
|
SCM_BINTIME = 0x4
|
||||||
SCM_CREDS = 0x3
|
SCM_CREDS = 0x3
|
||||||
|
SCM_MONOTONIC = 0x6
|
||||||
|
SCM_REALTIME = 0x5
|
||||||
SCM_RIGHTS = 0x1
|
SCM_RIGHTS = 0x1
|
||||||
SCM_TIMESTAMP = 0x2
|
SCM_TIMESTAMP = 0x2
|
||||||
|
SCM_TIME_INFO = 0x7
|
||||||
SHUT_RD = 0x0
|
SHUT_RD = 0x0
|
||||||
SHUT_RDWR = 0x2
|
SHUT_RDWR = 0x2
|
||||||
SHUT_WR = 0x1
|
SHUT_WR = 0x1
|
||||||
|
@ -1246,6 +1300,7 @@ const (
|
||||||
SIOCGETSGCNT = 0xc0147210
|
SIOCGETSGCNT = 0xc0147210
|
||||||
SIOCGETVIFCNT = 0xc014720f
|
SIOCGETVIFCNT = 0xc014720f
|
||||||
SIOCGHIWAT = 0x40047301
|
SIOCGHIWAT = 0x40047301
|
||||||
|
SIOCGHWADDR = 0xc020693e
|
||||||
SIOCGI2C = 0xc020693d
|
SIOCGI2C = 0xc020693d
|
||||||
SIOCGIFADDR = 0xc0206921
|
SIOCGIFADDR = 0xc0206921
|
||||||
SIOCGIFBRDADDR = 0xc0206923
|
SIOCGIFBRDADDR = 0xc0206923
|
||||||
|
@ -1267,8 +1322,11 @@ const (
|
||||||
SIOCGIFPDSTADDR = 0xc0206948
|
SIOCGIFPDSTADDR = 0xc0206948
|
||||||
SIOCGIFPHYS = 0xc0206935
|
SIOCGIFPHYS = 0xc0206935
|
||||||
SIOCGIFPSRCADDR = 0xc0206947
|
SIOCGIFPSRCADDR = 0xc0206947
|
||||||
|
SIOCGIFRSSHASH = 0xc0186997
|
||||||
|
SIOCGIFRSSKEY = 0xc0946996
|
||||||
SIOCGIFSTATUS = 0xc331693b
|
SIOCGIFSTATUS = 0xc331693b
|
||||||
SIOCGIFXMEDIA = 0xc028698b
|
SIOCGIFXMEDIA = 0xc028698b
|
||||||
|
SIOCGLANPCP = 0xc0206998
|
||||||
SIOCGLOWAT = 0x40047303
|
SIOCGLOWAT = 0x40047303
|
||||||
SIOCGPGRP = 0x40047309
|
SIOCGPGRP = 0x40047309
|
||||||
SIOCGPRIVATE_0 = 0xc0206950
|
SIOCGPRIVATE_0 = 0xc0206950
|
||||||
|
@ -1299,6 +1357,7 @@ const (
|
||||||
SIOCSIFPHYS = 0x80206936
|
SIOCSIFPHYS = 0x80206936
|
||||||
SIOCSIFRVNET = 0xc020695b
|
SIOCSIFRVNET = 0xc020695b
|
||||||
SIOCSIFVNET = 0xc020695a
|
SIOCSIFVNET = 0xc020695a
|
||||||
|
SIOCSLANPCP = 0x80206999
|
||||||
SIOCSLOWAT = 0x80047302
|
SIOCSLOWAT = 0x80047302
|
||||||
SIOCSPGRP = 0x80047308
|
SIOCSPGRP = 0x80047308
|
||||||
SIOCSTUNFIB = 0x8020695f
|
SIOCSTUNFIB = 0x8020695f
|
||||||
|
@ -1317,6 +1376,7 @@ const (
|
||||||
SO_BINTIME = 0x2000
|
SO_BINTIME = 0x2000
|
||||||
SO_BROADCAST = 0x20
|
SO_BROADCAST = 0x20
|
||||||
SO_DEBUG = 0x1
|
SO_DEBUG = 0x1
|
||||||
|
SO_DOMAIN = 0x1019
|
||||||
SO_DONTROUTE = 0x10
|
SO_DONTROUTE = 0x10
|
||||||
SO_ERROR = 0x1007
|
SO_ERROR = 0x1007
|
||||||
SO_KEEPALIVE = 0x8
|
SO_KEEPALIVE = 0x8
|
||||||
|
@ -1325,6 +1385,7 @@ const (
|
||||||
SO_LISTENINCQLEN = 0x1013
|
SO_LISTENINCQLEN = 0x1013
|
||||||
SO_LISTENQLEN = 0x1012
|
SO_LISTENQLEN = 0x1012
|
||||||
SO_LISTENQLIMIT = 0x1011
|
SO_LISTENQLIMIT = 0x1011
|
||||||
|
SO_MAX_PACING_RATE = 0x1018
|
||||||
SO_NOSIGPIPE = 0x800
|
SO_NOSIGPIPE = 0x800
|
||||||
SO_NO_DDP = 0x8000
|
SO_NO_DDP = 0x8000
|
||||||
SO_NO_OFFLOAD = 0x4000
|
SO_NO_OFFLOAD = 0x4000
|
||||||
|
@ -1337,11 +1398,19 @@ const (
|
||||||
SO_RCVTIMEO = 0x1006
|
SO_RCVTIMEO = 0x1006
|
||||||
SO_REUSEADDR = 0x4
|
SO_REUSEADDR = 0x4
|
||||||
SO_REUSEPORT = 0x200
|
SO_REUSEPORT = 0x200
|
||||||
|
SO_REUSEPORT_LB = 0x10000
|
||||||
SO_SETFIB = 0x1014
|
SO_SETFIB = 0x1014
|
||||||
SO_SNDBUF = 0x1001
|
SO_SNDBUF = 0x1001
|
||||||
SO_SNDLOWAT = 0x1003
|
SO_SNDLOWAT = 0x1003
|
||||||
SO_SNDTIMEO = 0x1005
|
SO_SNDTIMEO = 0x1005
|
||||||
SO_TIMESTAMP = 0x400
|
SO_TIMESTAMP = 0x400
|
||||||
|
SO_TS_BINTIME = 0x1
|
||||||
|
SO_TS_CLOCK = 0x1017
|
||||||
|
SO_TS_CLOCK_MAX = 0x3
|
||||||
|
SO_TS_DEFAULT = 0x0
|
||||||
|
SO_TS_MONOTONIC = 0x3
|
||||||
|
SO_TS_REALTIME = 0x2
|
||||||
|
SO_TS_REALTIME_MICRO = 0x0
|
||||||
SO_TYPE = 0x1008
|
SO_TYPE = 0x1008
|
||||||
SO_USELOOPBACK = 0x40
|
SO_USELOOPBACK = 0x40
|
||||||
SO_USER_COOKIE = 0x1015
|
SO_USER_COOKIE = 0x1015
|
||||||
|
@ -1385,10 +1454,45 @@ const (
|
||||||
TCOFLUSH = 0x2
|
TCOFLUSH = 0x2
|
||||||
TCOOFF = 0x1
|
TCOOFF = 0x1
|
||||||
TCOON = 0x2
|
TCOON = 0x2
|
||||||
|
TCP_BBR_ACK_COMP_ALG = 0x448
|
||||||
|
TCP_BBR_DRAIN_INC_EXTRA = 0x43c
|
||||||
|
TCP_BBR_DRAIN_PG = 0x42e
|
||||||
|
TCP_BBR_EXTRA_GAIN = 0x449
|
||||||
|
TCP_BBR_IWINTSO = 0x42b
|
||||||
|
TCP_BBR_LOWGAIN_FD = 0x436
|
||||||
|
TCP_BBR_LOWGAIN_HALF = 0x435
|
||||||
|
TCP_BBR_LOWGAIN_THRESH = 0x434
|
||||||
|
TCP_BBR_MAX_RTO = 0x439
|
||||||
|
TCP_BBR_MIN_RTO = 0x438
|
||||||
|
TCP_BBR_ONE_RETRAN = 0x431
|
||||||
|
TCP_BBR_PACE_CROSS = 0x442
|
||||||
|
TCP_BBR_PACE_DEL_TAR = 0x43f
|
||||||
|
TCP_BBR_PACE_PER_SEC = 0x43e
|
||||||
|
TCP_BBR_PACE_SEG_MAX = 0x440
|
||||||
|
TCP_BBR_PACE_SEG_MIN = 0x441
|
||||||
|
TCP_BBR_PROBE_RTT_GAIN = 0x44d
|
||||||
|
TCP_BBR_PROBE_RTT_INT = 0x430
|
||||||
|
TCP_BBR_PROBE_RTT_LEN = 0x44e
|
||||||
|
TCP_BBR_RACK_RTT_USE = 0x44a
|
||||||
|
TCP_BBR_RECFORCE = 0x42c
|
||||||
|
TCP_BBR_REC_OVER_HPTS = 0x43a
|
||||||
|
TCP_BBR_RETRAN_WTSO = 0x44b
|
||||||
|
TCP_BBR_RWND_IS_APP = 0x42f
|
||||||
|
TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
|
||||||
|
TCP_BBR_STARTUP_LOSS_EXIT = 0x432
|
||||||
|
TCP_BBR_STARTUP_PG = 0x42d
|
||||||
|
TCP_BBR_UNLIMITED = 0x43b
|
||||||
|
TCP_BBR_USEDEL_RATE = 0x437
|
||||||
|
TCP_BBR_USE_LOWGAIN = 0x433
|
||||||
TCP_CA_NAME_MAX = 0x10
|
TCP_CA_NAME_MAX = 0x10
|
||||||
TCP_CCALGOOPT = 0x41
|
TCP_CCALGOOPT = 0x41
|
||||||
TCP_CONGESTION = 0x40
|
TCP_CONGESTION = 0x40
|
||||||
|
TCP_DATA_AFTER_CLOSE = 0x44c
|
||||||
|
TCP_DELACK = 0x48
|
||||||
TCP_FASTOPEN = 0x401
|
TCP_FASTOPEN = 0x401
|
||||||
|
TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10
|
||||||
|
TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4
|
||||||
|
TCP_FASTOPEN_PSK_LEN = 0x10
|
||||||
TCP_FUNCTION_BLK = 0x2000
|
TCP_FUNCTION_BLK = 0x2000
|
||||||
TCP_FUNCTION_NAME_LEN_MAX = 0x20
|
TCP_FUNCTION_NAME_LEN_MAX = 0x20
|
||||||
TCP_INFO = 0x20
|
TCP_INFO = 0x20
|
||||||
|
@ -1396,6 +1500,12 @@ const (
|
||||||
TCP_KEEPIDLE = 0x100
|
TCP_KEEPIDLE = 0x100
|
||||||
TCP_KEEPINIT = 0x80
|
TCP_KEEPINIT = 0x80
|
||||||
TCP_KEEPINTVL = 0x200
|
TCP_KEEPINTVL = 0x200
|
||||||
|
TCP_LOG = 0x22
|
||||||
|
TCP_LOGBUF = 0x23
|
||||||
|
TCP_LOGDUMP = 0x25
|
||||||
|
TCP_LOGDUMPID = 0x26
|
||||||
|
TCP_LOGID = 0x24
|
||||||
|
TCP_LOG_ID_LEN = 0x40
|
||||||
TCP_MAXBURST = 0x4
|
TCP_MAXBURST = 0x4
|
||||||
TCP_MAXHLEN = 0x3c
|
TCP_MAXHLEN = 0x3c
|
||||||
TCP_MAXOLEN = 0x28
|
TCP_MAXOLEN = 0x28
|
||||||
|
@ -1411,8 +1521,30 @@ const (
|
||||||
TCP_NOPUSH = 0x4
|
TCP_NOPUSH = 0x4
|
||||||
TCP_PCAP_IN = 0x1000
|
TCP_PCAP_IN = 0x1000
|
||||||
TCP_PCAP_OUT = 0x800
|
TCP_PCAP_OUT = 0x800
|
||||||
|
TCP_RACK_EARLY_RECOV = 0x423
|
||||||
|
TCP_RACK_EARLY_SEG = 0x424
|
||||||
|
TCP_RACK_IDLE_REDUCE_HIGH = 0x444
|
||||||
|
TCP_RACK_MIN_PACE = 0x445
|
||||||
|
TCP_RACK_MIN_PACE_SEG = 0x446
|
||||||
|
TCP_RACK_MIN_TO = 0x422
|
||||||
|
TCP_RACK_PACE_ALWAYS = 0x41f
|
||||||
|
TCP_RACK_PACE_MAX_SEG = 0x41e
|
||||||
|
TCP_RACK_PACE_REDUCE = 0x41d
|
||||||
|
TCP_RACK_PKT_DELAY = 0x428
|
||||||
|
TCP_RACK_PROP = 0x41b
|
||||||
|
TCP_RACK_PROP_RATE = 0x420
|
||||||
|
TCP_RACK_PRR_SENDALOT = 0x421
|
||||||
|
TCP_RACK_REORD_FADE = 0x426
|
||||||
|
TCP_RACK_REORD_THRESH = 0x425
|
||||||
|
TCP_RACK_SESS_CWV = 0x42a
|
||||||
|
TCP_RACK_TLP_INC_VAR = 0x429
|
||||||
|
TCP_RACK_TLP_REDUCE = 0x41c
|
||||||
|
TCP_RACK_TLP_THRESH = 0x427
|
||||||
|
TCP_RACK_TLP_USE = 0x447
|
||||||
TCP_VENDOR = 0x80000000
|
TCP_VENDOR = 0x80000000
|
||||||
TCSAFLUSH = 0x2
|
TCSAFLUSH = 0x2
|
||||||
|
TIMER_ABSTIME = 0x1
|
||||||
|
TIMER_RELTIME = 0x0
|
||||||
TIOCCBRK = 0x2000747a
|
TIOCCBRK = 0x2000747a
|
||||||
TIOCCDTR = 0x20007478
|
TIOCCDTR = 0x20007478
|
||||||
TIOCCONS = 0x80047462
|
TIOCCONS = 0x80047462
|
||||||
|
@ -1476,6 +1608,8 @@ const (
|
||||||
TIOCTIMESTAMP = 0x40087459
|
TIOCTIMESTAMP = 0x40087459
|
||||||
TIOCUCNTL = 0x80047466
|
TIOCUCNTL = 0x80047466
|
||||||
TOSTOP = 0x400000
|
TOSTOP = 0x400000
|
||||||
|
UTIME_NOW = -0x1
|
||||||
|
UTIME_OMIT = -0x2
|
||||||
VDISCARD = 0xf
|
VDISCARD = 0xf
|
||||||
VDSUSP = 0xb
|
VDSUSP = 0xb
|
||||||
VEOF = 0x0
|
VEOF = 0x0
|
||||||
|
@ -1487,6 +1621,8 @@ const (
|
||||||
VKILL = 0x5
|
VKILL = 0x5
|
||||||
VLNEXT = 0xe
|
VLNEXT = 0xe
|
||||||
VMIN = 0x10
|
VMIN = 0x10
|
||||||
|
VM_BCACHE_SIZE_MAX = 0x70e0000
|
||||||
|
VM_SWZONE_SIZE_MAX = 0x2280000
|
||||||
VQUIT = 0x9
|
VQUIT = 0x9
|
||||||
VREPRINT = 0x6
|
VREPRINT = 0x6
|
||||||
VSTART = 0xc
|
VSTART = 0xc
|
||||||
|
|
|
@ -355,6 +355,22 @@ const (
|
||||||
CTL_KERN = 0x1
|
CTL_KERN = 0x1
|
||||||
CTL_MAXNAME = 0x18
|
CTL_MAXNAME = 0x18
|
||||||
CTL_NET = 0x4
|
CTL_NET = 0x4
|
||||||
|
DIOCGATTR = 0xc148648e
|
||||||
|
DIOCGDELETE = 0x80106488
|
||||||
|
DIOCGFLUSH = 0x20006487
|
||||||
|
DIOCGFRONTSTUFF = 0x40086486
|
||||||
|
DIOCGFWHEADS = 0x40046483
|
||||||
|
DIOCGFWSECTORS = 0x40046482
|
||||||
|
DIOCGIDENT = 0x41006489
|
||||||
|
DIOCGMEDIASIZE = 0x40086481
|
||||||
|
DIOCGPHYSPATH = 0x4400648d
|
||||||
|
DIOCGPROVIDERNAME = 0x4400648a
|
||||||
|
DIOCGSECTORSIZE = 0x40046480
|
||||||
|
DIOCGSTRIPEOFFSET = 0x4008648c
|
||||||
|
DIOCGSTRIPESIZE = 0x4008648b
|
||||||
|
DIOCSKERNELDUMP = 0x80506490
|
||||||
|
DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
|
||||||
|
DIOCZONECMD = 0xc080648f
|
||||||
DLT_A429 = 0xb8
|
DLT_A429 = 0xb8
|
||||||
DLT_A653_ICM = 0xb9
|
DLT_A653_ICM = 0xb9
|
||||||
DLT_AIRONET_HEADER = 0x78
|
DLT_AIRONET_HEADER = 0x78
|
||||||
|
@ -379,11 +395,14 @@ const (
|
||||||
DLT_CHAOS = 0x5
|
DLT_CHAOS = 0x5
|
||||||
DLT_CHDLC = 0x68
|
DLT_CHDLC = 0x68
|
||||||
DLT_CISCO_IOS = 0x76
|
DLT_CISCO_IOS = 0x76
|
||||||
|
DLT_CLASS_NETBSD_RAWAF = 0x2240000
|
||||||
DLT_C_HDLC = 0x68
|
DLT_C_HDLC = 0x68
|
||||||
DLT_C_HDLC_WITH_DIR = 0xcd
|
DLT_C_HDLC_WITH_DIR = 0xcd
|
||||||
DLT_DBUS = 0xe7
|
DLT_DBUS = 0xe7
|
||||||
DLT_DECT = 0xdd
|
DLT_DECT = 0xdd
|
||||||
|
DLT_DISPLAYPORT_AUX = 0x113
|
||||||
DLT_DOCSIS = 0x8f
|
DLT_DOCSIS = 0x8f
|
||||||
|
DLT_DOCSIS31_XRA31 = 0x111
|
||||||
DLT_DVB_CI = 0xeb
|
DLT_DVB_CI = 0xeb
|
||||||
DLT_ECONET = 0x73
|
DLT_ECONET = 0x73
|
||||||
DLT_EN10MB = 0x1
|
DLT_EN10MB = 0x1
|
||||||
|
@ -393,6 +412,7 @@ const (
|
||||||
DLT_ERF = 0xc5
|
DLT_ERF = 0xc5
|
||||||
DLT_ERF_ETH = 0xaf
|
DLT_ERF_ETH = 0xaf
|
||||||
DLT_ERF_POS = 0xb0
|
DLT_ERF_POS = 0xb0
|
||||||
|
DLT_ETHERNET_MPACKET = 0x112
|
||||||
DLT_FC_2 = 0xe0
|
DLT_FC_2 = 0xe0
|
||||||
DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
|
DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
|
||||||
DLT_FDDI = 0xa
|
DLT_FDDI = 0xa
|
||||||
|
@ -406,7 +426,6 @@ const (
|
||||||
DLT_GPRS_LLC = 0xa9
|
DLT_GPRS_LLC = 0xa9
|
||||||
DLT_GSMTAP_ABIS = 0xda
|
DLT_GSMTAP_ABIS = 0xda
|
||||||
DLT_GSMTAP_UM = 0xd9
|
DLT_GSMTAP_UM = 0xd9
|
||||||
DLT_HHDLC = 0x79
|
|
||||||
DLT_IBM_SN = 0x92
|
DLT_IBM_SN = 0x92
|
||||||
DLT_IBM_SP = 0x91
|
DLT_IBM_SP = 0x91
|
||||||
DLT_IEEE802 = 0x6
|
DLT_IEEE802 = 0x6
|
||||||
|
@ -429,6 +448,7 @@ const (
|
||||||
DLT_IPV4 = 0xe4
|
DLT_IPV4 = 0xe4
|
||||||
DLT_IPV6 = 0xe5
|
DLT_IPV6 = 0xe5
|
||||||
DLT_IP_OVER_FC = 0x7a
|
DLT_IP_OVER_FC = 0x7a
|
||||||
|
DLT_ISO_14443 = 0x108
|
||||||
DLT_JUNIPER_ATM1 = 0x89
|
DLT_JUNIPER_ATM1 = 0x89
|
||||||
DLT_JUNIPER_ATM2 = 0x87
|
DLT_JUNIPER_ATM2 = 0x87
|
||||||
DLT_JUNIPER_ATM_CEMIC = 0xee
|
DLT_JUNIPER_ATM_CEMIC = 0xee
|
||||||
|
@ -461,8 +481,9 @@ const (
|
||||||
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
||||||
DLT_LINUX_SLL = 0x71
|
DLT_LINUX_SLL = 0x71
|
||||||
DLT_LOOP = 0x6c
|
DLT_LOOP = 0x6c
|
||||||
|
DLT_LORATAP = 0x10e
|
||||||
DLT_LTALK = 0x72
|
DLT_LTALK = 0x72
|
||||||
DLT_MATCHING_MAX = 0x104
|
DLT_MATCHING_MAX = 0x113
|
||||||
DLT_MATCHING_MIN = 0x68
|
DLT_MATCHING_MIN = 0x68
|
||||||
DLT_MFR = 0xb6
|
DLT_MFR = 0xb6
|
||||||
DLT_MOST = 0xd3
|
DLT_MOST = 0xd3
|
||||||
|
@ -478,14 +499,16 @@ const (
|
||||||
DLT_NFC_LLCP = 0xf5
|
DLT_NFC_LLCP = 0xf5
|
||||||
DLT_NFLOG = 0xef
|
DLT_NFLOG = 0xef
|
||||||
DLT_NG40 = 0xf4
|
DLT_NG40 = 0xf4
|
||||||
|
DLT_NORDIC_BLE = 0x110
|
||||||
DLT_NULL = 0x0
|
DLT_NULL = 0x0
|
||||||
|
DLT_OPENFLOW = 0x10b
|
||||||
DLT_PCI_EXP = 0x7d
|
DLT_PCI_EXP = 0x7d
|
||||||
DLT_PFLOG = 0x75
|
DLT_PFLOG = 0x75
|
||||||
DLT_PFSYNC = 0x79
|
DLT_PFSYNC = 0x79
|
||||||
DLT_PKTAP = 0x102
|
DLT_PKTAP = 0x102
|
||||||
DLT_PPI = 0xc0
|
DLT_PPI = 0xc0
|
||||||
DLT_PPP = 0x9
|
DLT_PPP = 0x9
|
||||||
DLT_PPP_BSDOS = 0x10
|
DLT_PPP_BSDOS = 0xe
|
||||||
DLT_PPP_ETHER = 0x33
|
DLT_PPP_ETHER = 0x33
|
||||||
DLT_PPP_PPPD = 0xa6
|
DLT_PPP_PPPD = 0xa6
|
||||||
DLT_PPP_SERIAL = 0x32
|
DLT_PPP_SERIAL = 0x32
|
||||||
|
@ -496,19 +519,25 @@ const (
|
||||||
DLT_PRONET = 0x4
|
DLT_PRONET = 0x4
|
||||||
DLT_RAIF1 = 0xc6
|
DLT_RAIF1 = 0xc6
|
||||||
DLT_RAW = 0xc
|
DLT_RAW = 0xc
|
||||||
|
DLT_RDS = 0x109
|
||||||
|
DLT_REDBACK_SMARTEDGE = 0x20
|
||||||
DLT_RIO = 0x7c
|
DLT_RIO = 0x7c
|
||||||
DLT_RTAC_SERIAL = 0xfa
|
DLT_RTAC_SERIAL = 0xfa
|
||||||
DLT_SCCP = 0x8e
|
DLT_SCCP = 0x8e
|
||||||
DLT_SCTP = 0xf8
|
DLT_SCTP = 0xf8
|
||||||
|
DLT_SDLC = 0x10c
|
||||||
DLT_SITA = 0xc4
|
DLT_SITA = 0xc4
|
||||||
DLT_SLIP = 0x8
|
DLT_SLIP = 0x8
|
||||||
DLT_SLIP_BSDOS = 0xf
|
DLT_SLIP_BSDOS = 0xd
|
||||||
DLT_STANAG_5066_D_PDU = 0xed
|
DLT_STANAG_5066_D_PDU = 0xed
|
||||||
DLT_SUNATM = 0x7b
|
DLT_SUNATM = 0x7b
|
||||||
DLT_SYMANTEC_FIREWALL = 0x63
|
DLT_SYMANTEC_FIREWALL = 0x63
|
||||||
|
DLT_TI_LLN_SNIFFER = 0x10d
|
||||||
DLT_TZSP = 0x80
|
DLT_TZSP = 0x80
|
||||||
DLT_USB = 0xba
|
DLT_USB = 0xba
|
||||||
DLT_USBPCAP = 0xf9
|
DLT_USBPCAP = 0xf9
|
||||||
|
DLT_USB_DARWIN = 0x10a
|
||||||
|
DLT_USB_FREEBSD = 0xba
|
||||||
DLT_USB_LINUX = 0xbd
|
DLT_USB_LINUX = 0xbd
|
||||||
DLT_USB_LINUX_MMAPPED = 0xdc
|
DLT_USB_LINUX_MMAPPED = 0xdc
|
||||||
DLT_USER0 = 0x93
|
DLT_USER0 = 0x93
|
||||||
|
@ -527,10 +556,14 @@ const (
|
||||||
DLT_USER7 = 0x9a
|
DLT_USER7 = 0x9a
|
||||||
DLT_USER8 = 0x9b
|
DLT_USER8 = 0x9b
|
||||||
DLT_USER9 = 0x9c
|
DLT_USER9 = 0x9c
|
||||||
|
DLT_VSOCK = 0x10f
|
||||||
|
DLT_WATTSTOPPER_DLM = 0x107
|
||||||
DLT_WIHART = 0xdf
|
DLT_WIHART = 0xdf
|
||||||
DLT_WIRESHARK_UPPER_PDU = 0xfc
|
DLT_WIRESHARK_UPPER_PDU = 0xfc
|
||||||
DLT_X2E_SERIAL = 0xd5
|
DLT_X2E_SERIAL = 0xd5
|
||||||
DLT_X2E_XORAYA = 0xd6
|
DLT_X2E_XORAYA = 0xd6
|
||||||
|
DLT_ZWAVE_R1_R2 = 0x105
|
||||||
|
DLT_ZWAVE_R3 = 0x106
|
||||||
DT_BLK = 0x6
|
DT_BLK = 0x6
|
||||||
DT_CHR = 0x2
|
DT_CHR = 0x2
|
||||||
DT_DIR = 0x4
|
DT_DIR = 0x4
|
||||||
|
@ -548,6 +581,7 @@ const (
|
||||||
ECHONL = 0x10
|
ECHONL = 0x10
|
||||||
ECHOPRT = 0x20
|
ECHOPRT = 0x20
|
||||||
EVFILT_AIO = -0x3
|
EVFILT_AIO = -0x3
|
||||||
|
EVFILT_EMPTY = -0xd
|
||||||
EVFILT_FS = -0x9
|
EVFILT_FS = -0x9
|
||||||
EVFILT_LIO = -0xa
|
EVFILT_LIO = -0xa
|
||||||
EVFILT_PROC = -0x5
|
EVFILT_PROC = -0x5
|
||||||
|
@ -555,11 +589,12 @@ const (
|
||||||
EVFILT_READ = -0x1
|
EVFILT_READ = -0x1
|
||||||
EVFILT_SENDFILE = -0xc
|
EVFILT_SENDFILE = -0xc
|
||||||
EVFILT_SIGNAL = -0x6
|
EVFILT_SIGNAL = -0x6
|
||||||
EVFILT_SYSCOUNT = 0xc
|
EVFILT_SYSCOUNT = 0xd
|
||||||
EVFILT_TIMER = -0x7
|
EVFILT_TIMER = -0x7
|
||||||
EVFILT_USER = -0xb
|
EVFILT_USER = -0xb
|
||||||
EVFILT_VNODE = -0x4
|
EVFILT_VNODE = -0x4
|
||||||
EVFILT_WRITE = -0x2
|
EVFILT_WRITE = -0x2
|
||||||
|
EVNAMEMAP_NAME_SIZE = 0x40
|
||||||
EV_ADD = 0x1
|
EV_ADD = 0x1
|
||||||
EV_CLEAR = 0x20
|
EV_CLEAR = 0x20
|
||||||
EV_DELETE = 0x2
|
EV_DELETE = 0x2
|
||||||
|
@ -576,6 +611,7 @@ const (
|
||||||
EV_RECEIPT = 0x40
|
EV_RECEIPT = 0x40
|
||||||
EV_SYSFLAGS = 0xf000
|
EV_SYSFLAGS = 0xf000
|
||||||
EXTA = 0x4b00
|
EXTA = 0x4b00
|
||||||
|
EXTATTR_MAXNAMELEN = 0xff
|
||||||
EXTATTR_NAMESPACE_EMPTY = 0x0
|
EXTATTR_NAMESPACE_EMPTY = 0x0
|
||||||
EXTATTR_NAMESPACE_SYSTEM = 0x2
|
EXTATTR_NAMESPACE_SYSTEM = 0x2
|
||||||
EXTATTR_NAMESPACE_USER = 0x1
|
EXTATTR_NAMESPACE_USER = 0x1
|
||||||
|
@ -617,6 +653,7 @@ const (
|
||||||
IEXTEN = 0x400
|
IEXTEN = 0x400
|
||||||
IFAN_ARRIVAL = 0x0
|
IFAN_ARRIVAL = 0x0
|
||||||
IFAN_DEPARTURE = 0x1
|
IFAN_DEPARTURE = 0x1
|
||||||
|
IFCAP_WOL_MAGIC = 0x2000
|
||||||
IFF_ALLMULTI = 0x200
|
IFF_ALLMULTI = 0x200
|
||||||
IFF_ALTPHYS = 0x4000
|
IFF_ALTPHYS = 0x4000
|
||||||
IFF_BROADCAST = 0x2
|
IFF_BROADCAST = 0x2
|
||||||
|
@ -633,6 +670,7 @@ const (
|
||||||
IFF_MONITOR = 0x40000
|
IFF_MONITOR = 0x40000
|
||||||
IFF_MULTICAST = 0x8000
|
IFF_MULTICAST = 0x8000
|
||||||
IFF_NOARP = 0x80
|
IFF_NOARP = 0x80
|
||||||
|
IFF_NOGROUP = 0x800000
|
||||||
IFF_OACTIVE = 0x400
|
IFF_OACTIVE = 0x400
|
||||||
IFF_POINTOPOINT = 0x10
|
IFF_POINTOPOINT = 0x10
|
||||||
IFF_PPROMISC = 0x20000
|
IFF_PPROMISC = 0x20000
|
||||||
|
@ -807,6 +845,7 @@ const (
|
||||||
IPV6_DSTOPTS = 0x32
|
IPV6_DSTOPTS = 0x32
|
||||||
IPV6_FLOWID = 0x43
|
IPV6_FLOWID = 0x43
|
||||||
IPV6_FLOWINFO_MASK = 0xffffff0f
|
IPV6_FLOWINFO_MASK = 0xffffff0f
|
||||||
|
IPV6_FLOWLABEL_LEN = 0x14
|
||||||
IPV6_FLOWLABEL_MASK = 0xffff0f00
|
IPV6_FLOWLABEL_MASK = 0xffff0f00
|
||||||
IPV6_FLOWTYPE = 0x44
|
IPV6_FLOWTYPE = 0x44
|
||||||
IPV6_FRAGTTL = 0x78
|
IPV6_FRAGTTL = 0x78
|
||||||
|
@ -827,13 +866,13 @@ const (
|
||||||
IPV6_MAX_GROUP_SRC_FILTER = 0x200
|
IPV6_MAX_GROUP_SRC_FILTER = 0x200
|
||||||
IPV6_MAX_MEMBERSHIPS = 0xfff
|
IPV6_MAX_MEMBERSHIPS = 0xfff
|
||||||
IPV6_MAX_SOCK_SRC_FILTER = 0x80
|
IPV6_MAX_SOCK_SRC_FILTER = 0x80
|
||||||
IPV6_MIN_MEMBERSHIPS = 0x1f
|
|
||||||
IPV6_MMTU = 0x500
|
IPV6_MMTU = 0x500
|
||||||
IPV6_MSFILTER = 0x4a
|
IPV6_MSFILTER = 0x4a
|
||||||
IPV6_MULTICAST_HOPS = 0xa
|
IPV6_MULTICAST_HOPS = 0xa
|
||||||
IPV6_MULTICAST_IF = 0x9
|
IPV6_MULTICAST_IF = 0x9
|
||||||
IPV6_MULTICAST_LOOP = 0xb
|
IPV6_MULTICAST_LOOP = 0xb
|
||||||
IPV6_NEXTHOP = 0x30
|
IPV6_NEXTHOP = 0x30
|
||||||
|
IPV6_ORIGDSTADDR = 0x48
|
||||||
IPV6_PATHMTU = 0x2c
|
IPV6_PATHMTU = 0x2c
|
||||||
IPV6_PKTINFO = 0x2e
|
IPV6_PKTINFO = 0x2e
|
||||||
IPV6_PORTRANGE = 0xe
|
IPV6_PORTRANGE = 0xe
|
||||||
|
@ -845,6 +884,7 @@ const (
|
||||||
IPV6_RECVFLOWID = 0x46
|
IPV6_RECVFLOWID = 0x46
|
||||||
IPV6_RECVHOPLIMIT = 0x25
|
IPV6_RECVHOPLIMIT = 0x25
|
||||||
IPV6_RECVHOPOPTS = 0x27
|
IPV6_RECVHOPOPTS = 0x27
|
||||||
|
IPV6_RECVORIGDSTADDR = 0x48
|
||||||
IPV6_RECVPATHMTU = 0x2b
|
IPV6_RECVPATHMTU = 0x2b
|
||||||
IPV6_RECVPKTINFO = 0x24
|
IPV6_RECVPKTINFO = 0x24
|
||||||
IPV6_RECVRSSBUCKETID = 0x47
|
IPV6_RECVRSSBUCKETID = 0x47
|
||||||
|
@ -905,10 +945,8 @@ const (
|
||||||
IP_MAX_MEMBERSHIPS = 0xfff
|
IP_MAX_MEMBERSHIPS = 0xfff
|
||||||
IP_MAX_SOCK_MUTE_FILTER = 0x80
|
IP_MAX_SOCK_MUTE_FILTER = 0x80
|
||||||
IP_MAX_SOCK_SRC_FILTER = 0x80
|
IP_MAX_SOCK_SRC_FILTER = 0x80
|
||||||
IP_MAX_SOURCE_FILTER = 0x400
|
|
||||||
IP_MF = 0x2000
|
IP_MF = 0x2000
|
||||||
IP_MINTTL = 0x42
|
IP_MINTTL = 0x42
|
||||||
IP_MIN_MEMBERSHIPS = 0x1f
|
|
||||||
IP_MSFILTER = 0x4a
|
IP_MSFILTER = 0x4a
|
||||||
IP_MSS = 0x240
|
IP_MSS = 0x240
|
||||||
IP_MULTICAST_IF = 0x9
|
IP_MULTICAST_IF = 0x9
|
||||||
|
@ -918,6 +956,7 @@ const (
|
||||||
IP_OFFMASK = 0x1fff
|
IP_OFFMASK = 0x1fff
|
||||||
IP_ONESBCAST = 0x17
|
IP_ONESBCAST = 0x17
|
||||||
IP_OPTIONS = 0x1
|
IP_OPTIONS = 0x1
|
||||||
|
IP_ORIGDSTADDR = 0x1b
|
||||||
IP_PORTRANGE = 0x13
|
IP_PORTRANGE = 0x13
|
||||||
IP_PORTRANGE_DEFAULT = 0x0
|
IP_PORTRANGE_DEFAULT = 0x0
|
||||||
IP_PORTRANGE_HIGH = 0x1
|
IP_PORTRANGE_HIGH = 0x1
|
||||||
|
@ -926,6 +965,7 @@ const (
|
||||||
IP_RECVFLOWID = 0x5d
|
IP_RECVFLOWID = 0x5d
|
||||||
IP_RECVIF = 0x14
|
IP_RECVIF = 0x14
|
||||||
IP_RECVOPTS = 0x5
|
IP_RECVOPTS = 0x5
|
||||||
|
IP_RECVORIGDSTADDR = 0x1b
|
||||||
IP_RECVRETOPTS = 0x6
|
IP_RECVRETOPTS = 0x6
|
||||||
IP_RECVRSSBUCKETID = 0x5e
|
IP_RECVRSSBUCKETID = 0x5e
|
||||||
IP_RECVTOS = 0x44
|
IP_RECVTOS = 0x44
|
||||||
|
@ -976,6 +1016,7 @@ const (
|
||||||
MAP_EXCL = 0x4000
|
MAP_EXCL = 0x4000
|
||||||
MAP_FILE = 0x0
|
MAP_FILE = 0x0
|
||||||
MAP_FIXED = 0x10
|
MAP_FIXED = 0x10
|
||||||
|
MAP_GUARD = 0x2000
|
||||||
MAP_HASSEMAPHORE = 0x200
|
MAP_HASSEMAPHORE = 0x200
|
||||||
MAP_NOCORE = 0x20000
|
MAP_NOCORE = 0x20000
|
||||||
MAP_NOSYNC = 0x800
|
MAP_NOSYNC = 0x800
|
||||||
|
@ -987,6 +1028,15 @@ const (
|
||||||
MAP_RESERVED0100 = 0x100
|
MAP_RESERVED0100 = 0x100
|
||||||
MAP_SHARED = 0x1
|
MAP_SHARED = 0x1
|
||||||
MAP_STACK = 0x400
|
MAP_STACK = 0x400
|
||||||
|
MCAST_BLOCK_SOURCE = 0x54
|
||||||
|
MCAST_EXCLUDE = 0x2
|
||||||
|
MCAST_INCLUDE = 0x1
|
||||||
|
MCAST_JOIN_GROUP = 0x50
|
||||||
|
MCAST_JOIN_SOURCE_GROUP = 0x52
|
||||||
|
MCAST_LEAVE_GROUP = 0x51
|
||||||
|
MCAST_LEAVE_SOURCE_GROUP = 0x53
|
||||||
|
MCAST_UNBLOCK_SOURCE = 0x55
|
||||||
|
MCAST_UNDEFINED = 0x0
|
||||||
MCL_CURRENT = 0x1
|
MCL_CURRENT = 0x1
|
||||||
MCL_FUTURE = 0x2
|
MCL_FUTURE = 0x2
|
||||||
MNT_ACLS = 0x8000000
|
MNT_ACLS = 0x8000000
|
||||||
|
@ -1027,10 +1077,12 @@ const (
|
||||||
MNT_SUSPEND = 0x4
|
MNT_SUSPEND = 0x4
|
||||||
MNT_SYNCHRONOUS = 0x2
|
MNT_SYNCHRONOUS = 0x2
|
||||||
MNT_UNION = 0x20
|
MNT_UNION = 0x20
|
||||||
|
MNT_UNTRUSTED = 0x800000000
|
||||||
MNT_UPDATE = 0x10000
|
MNT_UPDATE = 0x10000
|
||||||
MNT_UPDATEMASK = 0x2d8d0807e
|
MNT_UPDATEMASK = 0xad8d0807e
|
||||||
MNT_USER = 0x8000
|
MNT_USER = 0x8000
|
||||||
MNT_VISFLAGMASK = 0x3fef0ffff
|
MNT_VERIFIED = 0x400000000
|
||||||
|
MNT_VISFLAGMASK = 0xffef0ffff
|
||||||
MNT_WAIT = 0x1
|
MNT_WAIT = 0x1
|
||||||
MSG_CMSG_CLOEXEC = 0x40000
|
MSG_CMSG_CLOEXEC = 0x40000
|
||||||
MSG_COMPAT = 0x8000
|
MSG_COMPAT = 0x8000
|
||||||
|
@ -1059,6 +1111,7 @@ const (
|
||||||
NFDBITS = 0x40
|
NFDBITS = 0x40
|
||||||
NOFLSH = 0x80000000
|
NOFLSH = 0x80000000
|
||||||
NOKERNINFO = 0x2000000
|
NOKERNINFO = 0x2000000
|
||||||
|
NOTE_ABSTIME = 0x10
|
||||||
NOTE_ATTRIB = 0x8
|
NOTE_ATTRIB = 0x8
|
||||||
NOTE_CHILD = 0x4
|
NOTE_CHILD = 0x4
|
||||||
NOTE_CLOSE = 0x100
|
NOTE_CLOSE = 0x100
|
||||||
|
@ -1213,7 +1266,6 @@ const (
|
||||||
RTV_WEIGHT = 0x100
|
RTV_WEIGHT = 0x100
|
||||||
RT_ALL_FIBS = -0x1
|
RT_ALL_FIBS = -0x1
|
||||||
RT_BLACKHOLE = 0x40
|
RT_BLACKHOLE = 0x40
|
||||||
RT_CACHING_CONTEXT = 0x1
|
|
||||||
RT_DEFAULT_FIB = 0x0
|
RT_DEFAULT_FIB = 0x0
|
||||||
RT_HAS_GW = 0x80
|
RT_HAS_GW = 0x80
|
||||||
RT_HAS_HEADER = 0x10
|
RT_HAS_HEADER = 0x10
|
||||||
|
@ -1223,15 +1275,17 @@ const (
|
||||||
RT_LLE_CACHE = 0x100
|
RT_LLE_CACHE = 0x100
|
||||||
RT_MAY_LOOP = 0x8
|
RT_MAY_LOOP = 0x8
|
||||||
RT_MAY_LOOP_BIT = 0x3
|
RT_MAY_LOOP_BIT = 0x3
|
||||||
RT_NORTREF = 0x2
|
|
||||||
RT_REJECT = 0x20
|
RT_REJECT = 0x20
|
||||||
RUSAGE_CHILDREN = -0x1
|
RUSAGE_CHILDREN = -0x1
|
||||||
RUSAGE_SELF = 0x0
|
RUSAGE_SELF = 0x0
|
||||||
RUSAGE_THREAD = 0x1
|
RUSAGE_THREAD = 0x1
|
||||||
SCM_BINTIME = 0x4
|
SCM_BINTIME = 0x4
|
||||||
SCM_CREDS = 0x3
|
SCM_CREDS = 0x3
|
||||||
|
SCM_MONOTONIC = 0x6
|
||||||
|
SCM_REALTIME = 0x5
|
||||||
SCM_RIGHTS = 0x1
|
SCM_RIGHTS = 0x1
|
||||||
SCM_TIMESTAMP = 0x2
|
SCM_TIMESTAMP = 0x2
|
||||||
|
SCM_TIME_INFO = 0x7
|
||||||
SHUT_RD = 0x0
|
SHUT_RD = 0x0
|
||||||
SHUT_RDWR = 0x2
|
SHUT_RDWR = 0x2
|
||||||
SHUT_WR = 0x1
|
SHUT_WR = 0x1
|
||||||
|
@ -1247,6 +1301,7 @@ const (
|
||||||
SIOCGETSGCNT = 0xc0207210
|
SIOCGETSGCNT = 0xc0207210
|
||||||
SIOCGETVIFCNT = 0xc028720f
|
SIOCGETVIFCNT = 0xc028720f
|
||||||
SIOCGHIWAT = 0x40047301
|
SIOCGHIWAT = 0x40047301
|
||||||
|
SIOCGHWADDR = 0xc020693e
|
||||||
SIOCGI2C = 0xc020693d
|
SIOCGI2C = 0xc020693d
|
||||||
SIOCGIFADDR = 0xc0206921
|
SIOCGIFADDR = 0xc0206921
|
||||||
SIOCGIFBRDADDR = 0xc0206923
|
SIOCGIFBRDADDR = 0xc0206923
|
||||||
|
@ -1268,8 +1323,11 @@ const (
|
||||||
SIOCGIFPDSTADDR = 0xc0206948
|
SIOCGIFPDSTADDR = 0xc0206948
|
||||||
SIOCGIFPHYS = 0xc0206935
|
SIOCGIFPHYS = 0xc0206935
|
||||||
SIOCGIFPSRCADDR = 0xc0206947
|
SIOCGIFPSRCADDR = 0xc0206947
|
||||||
|
SIOCGIFRSSHASH = 0xc0186997
|
||||||
|
SIOCGIFRSSKEY = 0xc0946996
|
||||||
SIOCGIFSTATUS = 0xc331693b
|
SIOCGIFSTATUS = 0xc331693b
|
||||||
SIOCGIFXMEDIA = 0xc030698b
|
SIOCGIFXMEDIA = 0xc030698b
|
||||||
|
SIOCGLANPCP = 0xc0206998
|
||||||
SIOCGLOWAT = 0x40047303
|
SIOCGLOWAT = 0x40047303
|
||||||
SIOCGPGRP = 0x40047309
|
SIOCGPGRP = 0x40047309
|
||||||
SIOCGPRIVATE_0 = 0xc0206950
|
SIOCGPRIVATE_0 = 0xc0206950
|
||||||
|
@ -1300,6 +1358,7 @@ const (
|
||||||
SIOCSIFPHYS = 0x80206936
|
SIOCSIFPHYS = 0x80206936
|
||||||
SIOCSIFRVNET = 0xc020695b
|
SIOCSIFRVNET = 0xc020695b
|
||||||
SIOCSIFVNET = 0xc020695a
|
SIOCSIFVNET = 0xc020695a
|
||||||
|
SIOCSLANPCP = 0x80206999
|
||||||
SIOCSLOWAT = 0x80047302
|
SIOCSLOWAT = 0x80047302
|
||||||
SIOCSPGRP = 0x80047308
|
SIOCSPGRP = 0x80047308
|
||||||
SIOCSTUNFIB = 0x8020695f
|
SIOCSTUNFIB = 0x8020695f
|
||||||
|
@ -1318,6 +1377,7 @@ const (
|
||||||
SO_BINTIME = 0x2000
|
SO_BINTIME = 0x2000
|
||||||
SO_BROADCAST = 0x20
|
SO_BROADCAST = 0x20
|
||||||
SO_DEBUG = 0x1
|
SO_DEBUG = 0x1
|
||||||
|
SO_DOMAIN = 0x1019
|
||||||
SO_DONTROUTE = 0x10
|
SO_DONTROUTE = 0x10
|
||||||
SO_ERROR = 0x1007
|
SO_ERROR = 0x1007
|
||||||
SO_KEEPALIVE = 0x8
|
SO_KEEPALIVE = 0x8
|
||||||
|
@ -1326,6 +1386,7 @@ const (
|
||||||
SO_LISTENINCQLEN = 0x1013
|
SO_LISTENINCQLEN = 0x1013
|
||||||
SO_LISTENQLEN = 0x1012
|
SO_LISTENQLEN = 0x1012
|
||||||
SO_LISTENQLIMIT = 0x1011
|
SO_LISTENQLIMIT = 0x1011
|
||||||
|
SO_MAX_PACING_RATE = 0x1018
|
||||||
SO_NOSIGPIPE = 0x800
|
SO_NOSIGPIPE = 0x800
|
||||||
SO_NO_DDP = 0x8000
|
SO_NO_DDP = 0x8000
|
||||||
SO_NO_OFFLOAD = 0x4000
|
SO_NO_OFFLOAD = 0x4000
|
||||||
|
@ -1338,11 +1399,19 @@ const (
|
||||||
SO_RCVTIMEO = 0x1006
|
SO_RCVTIMEO = 0x1006
|
||||||
SO_REUSEADDR = 0x4
|
SO_REUSEADDR = 0x4
|
||||||
SO_REUSEPORT = 0x200
|
SO_REUSEPORT = 0x200
|
||||||
|
SO_REUSEPORT_LB = 0x10000
|
||||||
SO_SETFIB = 0x1014
|
SO_SETFIB = 0x1014
|
||||||
SO_SNDBUF = 0x1001
|
SO_SNDBUF = 0x1001
|
||||||
SO_SNDLOWAT = 0x1003
|
SO_SNDLOWAT = 0x1003
|
||||||
SO_SNDTIMEO = 0x1005
|
SO_SNDTIMEO = 0x1005
|
||||||
SO_TIMESTAMP = 0x400
|
SO_TIMESTAMP = 0x400
|
||||||
|
SO_TS_BINTIME = 0x1
|
||||||
|
SO_TS_CLOCK = 0x1017
|
||||||
|
SO_TS_CLOCK_MAX = 0x3
|
||||||
|
SO_TS_DEFAULT = 0x0
|
||||||
|
SO_TS_MONOTONIC = 0x3
|
||||||
|
SO_TS_REALTIME = 0x2
|
||||||
|
SO_TS_REALTIME_MICRO = 0x0
|
||||||
SO_TYPE = 0x1008
|
SO_TYPE = 0x1008
|
||||||
SO_USELOOPBACK = 0x40
|
SO_USELOOPBACK = 0x40
|
||||||
SO_USER_COOKIE = 0x1015
|
SO_USER_COOKIE = 0x1015
|
||||||
|
@ -1386,10 +1455,45 @@ const (
|
||||||
TCOFLUSH = 0x2
|
TCOFLUSH = 0x2
|
||||||
TCOOFF = 0x1
|
TCOOFF = 0x1
|
||||||
TCOON = 0x2
|
TCOON = 0x2
|
||||||
|
TCP_BBR_ACK_COMP_ALG = 0x448
|
||||||
|
TCP_BBR_DRAIN_INC_EXTRA = 0x43c
|
||||||
|
TCP_BBR_DRAIN_PG = 0x42e
|
||||||
|
TCP_BBR_EXTRA_GAIN = 0x449
|
||||||
|
TCP_BBR_IWINTSO = 0x42b
|
||||||
|
TCP_BBR_LOWGAIN_FD = 0x436
|
||||||
|
TCP_BBR_LOWGAIN_HALF = 0x435
|
||||||
|
TCP_BBR_LOWGAIN_THRESH = 0x434
|
||||||
|
TCP_BBR_MAX_RTO = 0x439
|
||||||
|
TCP_BBR_MIN_RTO = 0x438
|
||||||
|
TCP_BBR_ONE_RETRAN = 0x431
|
||||||
|
TCP_BBR_PACE_CROSS = 0x442
|
||||||
|
TCP_BBR_PACE_DEL_TAR = 0x43f
|
||||||
|
TCP_BBR_PACE_PER_SEC = 0x43e
|
||||||
|
TCP_BBR_PACE_SEG_MAX = 0x440
|
||||||
|
TCP_BBR_PACE_SEG_MIN = 0x441
|
||||||
|
TCP_BBR_PROBE_RTT_GAIN = 0x44d
|
||||||
|
TCP_BBR_PROBE_RTT_INT = 0x430
|
||||||
|
TCP_BBR_PROBE_RTT_LEN = 0x44e
|
||||||
|
TCP_BBR_RACK_RTT_USE = 0x44a
|
||||||
|
TCP_BBR_RECFORCE = 0x42c
|
||||||
|
TCP_BBR_REC_OVER_HPTS = 0x43a
|
||||||
|
TCP_BBR_RETRAN_WTSO = 0x44b
|
||||||
|
TCP_BBR_RWND_IS_APP = 0x42f
|
||||||
|
TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
|
||||||
|
TCP_BBR_STARTUP_LOSS_EXIT = 0x432
|
||||||
|
TCP_BBR_STARTUP_PG = 0x42d
|
||||||
|
TCP_BBR_UNLIMITED = 0x43b
|
||||||
|
TCP_BBR_USEDEL_RATE = 0x437
|
||||||
|
TCP_BBR_USE_LOWGAIN = 0x433
|
||||||
TCP_CA_NAME_MAX = 0x10
|
TCP_CA_NAME_MAX = 0x10
|
||||||
TCP_CCALGOOPT = 0x41
|
TCP_CCALGOOPT = 0x41
|
||||||
TCP_CONGESTION = 0x40
|
TCP_CONGESTION = 0x40
|
||||||
|
TCP_DATA_AFTER_CLOSE = 0x44c
|
||||||
|
TCP_DELACK = 0x48
|
||||||
TCP_FASTOPEN = 0x401
|
TCP_FASTOPEN = 0x401
|
||||||
|
TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10
|
||||||
|
TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4
|
||||||
|
TCP_FASTOPEN_PSK_LEN = 0x10
|
||||||
TCP_FUNCTION_BLK = 0x2000
|
TCP_FUNCTION_BLK = 0x2000
|
||||||
TCP_FUNCTION_NAME_LEN_MAX = 0x20
|
TCP_FUNCTION_NAME_LEN_MAX = 0x20
|
||||||
TCP_INFO = 0x20
|
TCP_INFO = 0x20
|
||||||
|
@ -1397,6 +1501,12 @@ const (
|
||||||
TCP_KEEPIDLE = 0x100
|
TCP_KEEPIDLE = 0x100
|
||||||
TCP_KEEPINIT = 0x80
|
TCP_KEEPINIT = 0x80
|
||||||
TCP_KEEPINTVL = 0x200
|
TCP_KEEPINTVL = 0x200
|
||||||
|
TCP_LOG = 0x22
|
||||||
|
TCP_LOGBUF = 0x23
|
||||||
|
TCP_LOGDUMP = 0x25
|
||||||
|
TCP_LOGDUMPID = 0x26
|
||||||
|
TCP_LOGID = 0x24
|
||||||
|
TCP_LOG_ID_LEN = 0x40
|
||||||
TCP_MAXBURST = 0x4
|
TCP_MAXBURST = 0x4
|
||||||
TCP_MAXHLEN = 0x3c
|
TCP_MAXHLEN = 0x3c
|
||||||
TCP_MAXOLEN = 0x28
|
TCP_MAXOLEN = 0x28
|
||||||
|
@ -1412,8 +1522,30 @@ const (
|
||||||
TCP_NOPUSH = 0x4
|
TCP_NOPUSH = 0x4
|
||||||
TCP_PCAP_IN = 0x1000
|
TCP_PCAP_IN = 0x1000
|
||||||
TCP_PCAP_OUT = 0x800
|
TCP_PCAP_OUT = 0x800
|
||||||
|
TCP_RACK_EARLY_RECOV = 0x423
|
||||||
|
TCP_RACK_EARLY_SEG = 0x424
|
||||||
|
TCP_RACK_IDLE_REDUCE_HIGH = 0x444
|
||||||
|
TCP_RACK_MIN_PACE = 0x445
|
||||||
|
TCP_RACK_MIN_PACE_SEG = 0x446
|
||||||
|
TCP_RACK_MIN_TO = 0x422
|
||||||
|
TCP_RACK_PACE_ALWAYS = 0x41f
|
||||||
|
TCP_RACK_PACE_MAX_SEG = 0x41e
|
||||||
|
TCP_RACK_PACE_REDUCE = 0x41d
|
||||||
|
TCP_RACK_PKT_DELAY = 0x428
|
||||||
|
TCP_RACK_PROP = 0x41b
|
||||||
|
TCP_RACK_PROP_RATE = 0x420
|
||||||
|
TCP_RACK_PRR_SENDALOT = 0x421
|
||||||
|
TCP_RACK_REORD_FADE = 0x426
|
||||||
|
TCP_RACK_REORD_THRESH = 0x425
|
||||||
|
TCP_RACK_SESS_CWV = 0x42a
|
||||||
|
TCP_RACK_TLP_INC_VAR = 0x429
|
||||||
|
TCP_RACK_TLP_REDUCE = 0x41c
|
||||||
|
TCP_RACK_TLP_THRESH = 0x427
|
||||||
|
TCP_RACK_TLP_USE = 0x447
|
||||||
TCP_VENDOR = 0x80000000
|
TCP_VENDOR = 0x80000000
|
||||||
TCSAFLUSH = 0x2
|
TCSAFLUSH = 0x2
|
||||||
|
TIMER_ABSTIME = 0x1
|
||||||
|
TIMER_RELTIME = 0x0
|
||||||
TIOCCBRK = 0x2000747a
|
TIOCCBRK = 0x2000747a
|
||||||
TIOCCDTR = 0x20007478
|
TIOCCDTR = 0x20007478
|
||||||
TIOCCONS = 0x80047462
|
TIOCCONS = 0x80047462
|
||||||
|
@ -1477,6 +1609,8 @@ const (
|
||||||
TIOCTIMESTAMP = 0x40107459
|
TIOCTIMESTAMP = 0x40107459
|
||||||
TIOCUCNTL = 0x80047466
|
TIOCUCNTL = 0x80047466
|
||||||
TOSTOP = 0x400000
|
TOSTOP = 0x400000
|
||||||
|
UTIME_NOW = -0x1
|
||||||
|
UTIME_OMIT = -0x2
|
||||||
VDISCARD = 0xf
|
VDISCARD = 0xf
|
||||||
VDSUSP = 0xb
|
VDSUSP = 0xb
|
||||||
VEOF = 0x0
|
VEOF = 0x0
|
||||||
|
|
|
@ -355,6 +355,22 @@ const (
|
||||||
CTL_KERN = 0x1
|
CTL_KERN = 0x1
|
||||||
CTL_MAXNAME = 0x18
|
CTL_MAXNAME = 0x18
|
||||||
CTL_NET = 0x4
|
CTL_NET = 0x4
|
||||||
|
DIOCGATTR = 0xc144648e
|
||||||
|
DIOCGDELETE = 0x80106488
|
||||||
|
DIOCGFLUSH = 0x20006487
|
||||||
|
DIOCGFRONTSTUFF = 0x40086486
|
||||||
|
DIOCGFWHEADS = 0x40046483
|
||||||
|
DIOCGFWSECTORS = 0x40046482
|
||||||
|
DIOCGIDENT = 0x41006489
|
||||||
|
DIOCGMEDIASIZE = 0x40086481
|
||||||
|
DIOCGPHYSPATH = 0x4400648d
|
||||||
|
DIOCGPROVIDERNAME = 0x4400648a
|
||||||
|
DIOCGSECTORSIZE = 0x40046480
|
||||||
|
DIOCGSTRIPEOFFSET = 0x4008648c
|
||||||
|
DIOCGSTRIPESIZE = 0x4008648b
|
||||||
|
DIOCSKERNELDUMP = 0x804c6490
|
||||||
|
DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
|
||||||
|
DIOCZONECMD = 0xc06c648f
|
||||||
DLT_A429 = 0xb8
|
DLT_A429 = 0xb8
|
||||||
DLT_A653_ICM = 0xb9
|
DLT_A653_ICM = 0xb9
|
||||||
DLT_AIRONET_HEADER = 0x78
|
DLT_AIRONET_HEADER = 0x78
|
||||||
|
|
|
@ -355,6 +355,22 @@ const (
|
||||||
CTL_KERN = 0x1
|
CTL_KERN = 0x1
|
||||||
CTL_MAXNAME = 0x18
|
CTL_MAXNAME = 0x18
|
||||||
CTL_NET = 0x4
|
CTL_NET = 0x4
|
||||||
|
DIOCGATTR = 0xc148648e
|
||||||
|
DIOCGDELETE = 0x80106488
|
||||||
|
DIOCGFLUSH = 0x20006487
|
||||||
|
DIOCGFRONTSTUFF = 0x40086486
|
||||||
|
DIOCGFWHEADS = 0x40046483
|
||||||
|
DIOCGFWSECTORS = 0x40046482
|
||||||
|
DIOCGIDENT = 0x41006489
|
||||||
|
DIOCGMEDIASIZE = 0x40086481
|
||||||
|
DIOCGPHYSPATH = 0x4400648d
|
||||||
|
DIOCGPROVIDERNAME = 0x4400648a
|
||||||
|
DIOCGSECTORSIZE = 0x40046480
|
||||||
|
DIOCGSTRIPEOFFSET = 0x4008648c
|
||||||
|
DIOCGSTRIPESIZE = 0x4008648b
|
||||||
|
DIOCSKERNELDUMP = 0x80506490
|
||||||
|
DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
|
||||||
|
DIOCZONECMD = 0xc080648f
|
||||||
DLT_A429 = 0xb8
|
DLT_A429 = 0xb8
|
||||||
DLT_A653_ICM = 0xb9
|
DLT_A653_ICM = 0xb9
|
||||||
DLT_AIRONET_HEADER = 0x78
|
DLT_AIRONET_HEADER = 0x78
|
||||||
|
@ -379,11 +395,14 @@ const (
|
||||||
DLT_CHAOS = 0x5
|
DLT_CHAOS = 0x5
|
||||||
DLT_CHDLC = 0x68
|
DLT_CHDLC = 0x68
|
||||||
DLT_CISCO_IOS = 0x76
|
DLT_CISCO_IOS = 0x76
|
||||||
|
DLT_CLASS_NETBSD_RAWAF = 0x2240000
|
||||||
DLT_C_HDLC = 0x68
|
DLT_C_HDLC = 0x68
|
||||||
DLT_C_HDLC_WITH_DIR = 0xcd
|
DLT_C_HDLC_WITH_DIR = 0xcd
|
||||||
DLT_DBUS = 0xe7
|
DLT_DBUS = 0xe7
|
||||||
DLT_DECT = 0xdd
|
DLT_DECT = 0xdd
|
||||||
|
DLT_DISPLAYPORT_AUX = 0x113
|
||||||
DLT_DOCSIS = 0x8f
|
DLT_DOCSIS = 0x8f
|
||||||
|
DLT_DOCSIS31_XRA31 = 0x111
|
||||||
DLT_DVB_CI = 0xeb
|
DLT_DVB_CI = 0xeb
|
||||||
DLT_ECONET = 0x73
|
DLT_ECONET = 0x73
|
||||||
DLT_EN10MB = 0x1
|
DLT_EN10MB = 0x1
|
||||||
|
@ -393,6 +412,7 @@ const (
|
||||||
DLT_ERF = 0xc5
|
DLT_ERF = 0xc5
|
||||||
DLT_ERF_ETH = 0xaf
|
DLT_ERF_ETH = 0xaf
|
||||||
DLT_ERF_POS = 0xb0
|
DLT_ERF_POS = 0xb0
|
||||||
|
DLT_ETHERNET_MPACKET = 0x112
|
||||||
DLT_FC_2 = 0xe0
|
DLT_FC_2 = 0xe0
|
||||||
DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
|
DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
|
||||||
DLT_FDDI = 0xa
|
DLT_FDDI = 0xa
|
||||||
|
@ -406,7 +426,6 @@ const (
|
||||||
DLT_GPRS_LLC = 0xa9
|
DLT_GPRS_LLC = 0xa9
|
||||||
DLT_GSMTAP_ABIS = 0xda
|
DLT_GSMTAP_ABIS = 0xda
|
||||||
DLT_GSMTAP_UM = 0xd9
|
DLT_GSMTAP_UM = 0xd9
|
||||||
DLT_HHDLC = 0x79
|
|
||||||
DLT_IBM_SN = 0x92
|
DLT_IBM_SN = 0x92
|
||||||
DLT_IBM_SP = 0x91
|
DLT_IBM_SP = 0x91
|
||||||
DLT_IEEE802 = 0x6
|
DLT_IEEE802 = 0x6
|
||||||
|
@ -429,6 +448,7 @@ const (
|
||||||
DLT_IPV4 = 0xe4
|
DLT_IPV4 = 0xe4
|
||||||
DLT_IPV6 = 0xe5
|
DLT_IPV6 = 0xe5
|
||||||
DLT_IP_OVER_FC = 0x7a
|
DLT_IP_OVER_FC = 0x7a
|
||||||
|
DLT_ISO_14443 = 0x108
|
||||||
DLT_JUNIPER_ATM1 = 0x89
|
DLT_JUNIPER_ATM1 = 0x89
|
||||||
DLT_JUNIPER_ATM2 = 0x87
|
DLT_JUNIPER_ATM2 = 0x87
|
||||||
DLT_JUNIPER_ATM_CEMIC = 0xee
|
DLT_JUNIPER_ATM_CEMIC = 0xee
|
||||||
|
@ -461,8 +481,9 @@ const (
|
||||||
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
||||||
DLT_LINUX_SLL = 0x71
|
DLT_LINUX_SLL = 0x71
|
||||||
DLT_LOOP = 0x6c
|
DLT_LOOP = 0x6c
|
||||||
|
DLT_LORATAP = 0x10e
|
||||||
DLT_LTALK = 0x72
|
DLT_LTALK = 0x72
|
||||||
DLT_MATCHING_MAX = 0x104
|
DLT_MATCHING_MAX = 0x113
|
||||||
DLT_MATCHING_MIN = 0x68
|
DLT_MATCHING_MIN = 0x68
|
||||||
DLT_MFR = 0xb6
|
DLT_MFR = 0xb6
|
||||||
DLT_MOST = 0xd3
|
DLT_MOST = 0xd3
|
||||||
|
@ -478,14 +499,16 @@ const (
|
||||||
DLT_NFC_LLCP = 0xf5
|
DLT_NFC_LLCP = 0xf5
|
||||||
DLT_NFLOG = 0xef
|
DLT_NFLOG = 0xef
|
||||||
DLT_NG40 = 0xf4
|
DLT_NG40 = 0xf4
|
||||||
|
DLT_NORDIC_BLE = 0x110
|
||||||
DLT_NULL = 0x0
|
DLT_NULL = 0x0
|
||||||
|
DLT_OPENFLOW = 0x10b
|
||||||
DLT_PCI_EXP = 0x7d
|
DLT_PCI_EXP = 0x7d
|
||||||
DLT_PFLOG = 0x75
|
DLT_PFLOG = 0x75
|
||||||
DLT_PFSYNC = 0x79
|
DLT_PFSYNC = 0x79
|
||||||
DLT_PKTAP = 0x102
|
DLT_PKTAP = 0x102
|
||||||
DLT_PPI = 0xc0
|
DLT_PPI = 0xc0
|
||||||
DLT_PPP = 0x9
|
DLT_PPP = 0x9
|
||||||
DLT_PPP_BSDOS = 0x10
|
DLT_PPP_BSDOS = 0xe
|
||||||
DLT_PPP_ETHER = 0x33
|
DLT_PPP_ETHER = 0x33
|
||||||
DLT_PPP_PPPD = 0xa6
|
DLT_PPP_PPPD = 0xa6
|
||||||
DLT_PPP_SERIAL = 0x32
|
DLT_PPP_SERIAL = 0x32
|
||||||
|
@ -496,19 +519,25 @@ const (
|
||||||
DLT_PRONET = 0x4
|
DLT_PRONET = 0x4
|
||||||
DLT_RAIF1 = 0xc6
|
DLT_RAIF1 = 0xc6
|
||||||
DLT_RAW = 0xc
|
DLT_RAW = 0xc
|
||||||
|
DLT_RDS = 0x109
|
||||||
|
DLT_REDBACK_SMARTEDGE = 0x20
|
||||||
DLT_RIO = 0x7c
|
DLT_RIO = 0x7c
|
||||||
DLT_RTAC_SERIAL = 0xfa
|
DLT_RTAC_SERIAL = 0xfa
|
||||||
DLT_SCCP = 0x8e
|
DLT_SCCP = 0x8e
|
||||||
DLT_SCTP = 0xf8
|
DLT_SCTP = 0xf8
|
||||||
|
DLT_SDLC = 0x10c
|
||||||
DLT_SITA = 0xc4
|
DLT_SITA = 0xc4
|
||||||
DLT_SLIP = 0x8
|
DLT_SLIP = 0x8
|
||||||
DLT_SLIP_BSDOS = 0xf
|
DLT_SLIP_BSDOS = 0xd
|
||||||
DLT_STANAG_5066_D_PDU = 0xed
|
DLT_STANAG_5066_D_PDU = 0xed
|
||||||
DLT_SUNATM = 0x7b
|
DLT_SUNATM = 0x7b
|
||||||
DLT_SYMANTEC_FIREWALL = 0x63
|
DLT_SYMANTEC_FIREWALL = 0x63
|
||||||
|
DLT_TI_LLN_SNIFFER = 0x10d
|
||||||
DLT_TZSP = 0x80
|
DLT_TZSP = 0x80
|
||||||
DLT_USB = 0xba
|
DLT_USB = 0xba
|
||||||
DLT_USBPCAP = 0xf9
|
DLT_USBPCAP = 0xf9
|
||||||
|
DLT_USB_DARWIN = 0x10a
|
||||||
|
DLT_USB_FREEBSD = 0xba
|
||||||
DLT_USB_LINUX = 0xbd
|
DLT_USB_LINUX = 0xbd
|
||||||
DLT_USB_LINUX_MMAPPED = 0xdc
|
DLT_USB_LINUX_MMAPPED = 0xdc
|
||||||
DLT_USER0 = 0x93
|
DLT_USER0 = 0x93
|
||||||
|
@ -527,10 +556,14 @@ const (
|
||||||
DLT_USER7 = 0x9a
|
DLT_USER7 = 0x9a
|
||||||
DLT_USER8 = 0x9b
|
DLT_USER8 = 0x9b
|
||||||
DLT_USER9 = 0x9c
|
DLT_USER9 = 0x9c
|
||||||
|
DLT_VSOCK = 0x10f
|
||||||
|
DLT_WATTSTOPPER_DLM = 0x107
|
||||||
DLT_WIHART = 0xdf
|
DLT_WIHART = 0xdf
|
||||||
DLT_WIRESHARK_UPPER_PDU = 0xfc
|
DLT_WIRESHARK_UPPER_PDU = 0xfc
|
||||||
DLT_X2E_SERIAL = 0xd5
|
DLT_X2E_SERIAL = 0xd5
|
||||||
DLT_X2E_XORAYA = 0xd6
|
DLT_X2E_XORAYA = 0xd6
|
||||||
|
DLT_ZWAVE_R1_R2 = 0x105
|
||||||
|
DLT_ZWAVE_R3 = 0x106
|
||||||
DT_BLK = 0x6
|
DT_BLK = 0x6
|
||||||
DT_CHR = 0x2
|
DT_CHR = 0x2
|
||||||
DT_DIR = 0x4
|
DT_DIR = 0x4
|
||||||
|
@ -548,6 +581,7 @@ const (
|
||||||
ECHONL = 0x10
|
ECHONL = 0x10
|
||||||
ECHOPRT = 0x20
|
ECHOPRT = 0x20
|
||||||
EVFILT_AIO = -0x3
|
EVFILT_AIO = -0x3
|
||||||
|
EVFILT_EMPTY = -0xd
|
||||||
EVFILT_FS = -0x9
|
EVFILT_FS = -0x9
|
||||||
EVFILT_LIO = -0xa
|
EVFILT_LIO = -0xa
|
||||||
EVFILT_PROC = -0x5
|
EVFILT_PROC = -0x5
|
||||||
|
@ -555,11 +589,12 @@ const (
|
||||||
EVFILT_READ = -0x1
|
EVFILT_READ = -0x1
|
||||||
EVFILT_SENDFILE = -0xc
|
EVFILT_SENDFILE = -0xc
|
||||||
EVFILT_SIGNAL = -0x6
|
EVFILT_SIGNAL = -0x6
|
||||||
EVFILT_SYSCOUNT = 0xc
|
EVFILT_SYSCOUNT = 0xd
|
||||||
EVFILT_TIMER = -0x7
|
EVFILT_TIMER = -0x7
|
||||||
EVFILT_USER = -0xb
|
EVFILT_USER = -0xb
|
||||||
EVFILT_VNODE = -0x4
|
EVFILT_VNODE = -0x4
|
||||||
EVFILT_WRITE = -0x2
|
EVFILT_WRITE = -0x2
|
||||||
|
EVNAMEMAP_NAME_SIZE = 0x40
|
||||||
EV_ADD = 0x1
|
EV_ADD = 0x1
|
||||||
EV_CLEAR = 0x20
|
EV_CLEAR = 0x20
|
||||||
EV_DELETE = 0x2
|
EV_DELETE = 0x2
|
||||||
|
@ -576,6 +611,7 @@ const (
|
||||||
EV_RECEIPT = 0x40
|
EV_RECEIPT = 0x40
|
||||||
EV_SYSFLAGS = 0xf000
|
EV_SYSFLAGS = 0xf000
|
||||||
EXTA = 0x4b00
|
EXTA = 0x4b00
|
||||||
|
EXTATTR_MAXNAMELEN = 0xff
|
||||||
EXTATTR_NAMESPACE_EMPTY = 0x0
|
EXTATTR_NAMESPACE_EMPTY = 0x0
|
||||||
EXTATTR_NAMESPACE_SYSTEM = 0x2
|
EXTATTR_NAMESPACE_SYSTEM = 0x2
|
||||||
EXTATTR_NAMESPACE_USER = 0x1
|
EXTATTR_NAMESPACE_USER = 0x1
|
||||||
|
@ -617,6 +653,7 @@ const (
|
||||||
IEXTEN = 0x400
|
IEXTEN = 0x400
|
||||||
IFAN_ARRIVAL = 0x0
|
IFAN_ARRIVAL = 0x0
|
||||||
IFAN_DEPARTURE = 0x1
|
IFAN_DEPARTURE = 0x1
|
||||||
|
IFCAP_WOL_MAGIC = 0x2000
|
||||||
IFF_ALLMULTI = 0x200
|
IFF_ALLMULTI = 0x200
|
||||||
IFF_ALTPHYS = 0x4000
|
IFF_ALTPHYS = 0x4000
|
||||||
IFF_BROADCAST = 0x2
|
IFF_BROADCAST = 0x2
|
||||||
|
@ -633,6 +670,7 @@ const (
|
||||||
IFF_MONITOR = 0x40000
|
IFF_MONITOR = 0x40000
|
||||||
IFF_MULTICAST = 0x8000
|
IFF_MULTICAST = 0x8000
|
||||||
IFF_NOARP = 0x80
|
IFF_NOARP = 0x80
|
||||||
|
IFF_NOGROUP = 0x800000
|
||||||
IFF_OACTIVE = 0x400
|
IFF_OACTIVE = 0x400
|
||||||
IFF_POINTOPOINT = 0x10
|
IFF_POINTOPOINT = 0x10
|
||||||
IFF_PPROMISC = 0x20000
|
IFF_PPROMISC = 0x20000
|
||||||
|
@ -807,6 +845,7 @@ const (
|
||||||
IPV6_DSTOPTS = 0x32
|
IPV6_DSTOPTS = 0x32
|
||||||
IPV6_FLOWID = 0x43
|
IPV6_FLOWID = 0x43
|
||||||
IPV6_FLOWINFO_MASK = 0xffffff0f
|
IPV6_FLOWINFO_MASK = 0xffffff0f
|
||||||
|
IPV6_FLOWLABEL_LEN = 0x14
|
||||||
IPV6_FLOWLABEL_MASK = 0xffff0f00
|
IPV6_FLOWLABEL_MASK = 0xffff0f00
|
||||||
IPV6_FLOWTYPE = 0x44
|
IPV6_FLOWTYPE = 0x44
|
||||||
IPV6_FRAGTTL = 0x78
|
IPV6_FRAGTTL = 0x78
|
||||||
|
@ -827,13 +866,13 @@ const (
|
||||||
IPV6_MAX_GROUP_SRC_FILTER = 0x200
|
IPV6_MAX_GROUP_SRC_FILTER = 0x200
|
||||||
IPV6_MAX_MEMBERSHIPS = 0xfff
|
IPV6_MAX_MEMBERSHIPS = 0xfff
|
||||||
IPV6_MAX_SOCK_SRC_FILTER = 0x80
|
IPV6_MAX_SOCK_SRC_FILTER = 0x80
|
||||||
IPV6_MIN_MEMBERSHIPS = 0x1f
|
|
||||||
IPV6_MMTU = 0x500
|
IPV6_MMTU = 0x500
|
||||||
IPV6_MSFILTER = 0x4a
|
IPV6_MSFILTER = 0x4a
|
||||||
IPV6_MULTICAST_HOPS = 0xa
|
IPV6_MULTICAST_HOPS = 0xa
|
||||||
IPV6_MULTICAST_IF = 0x9
|
IPV6_MULTICAST_IF = 0x9
|
||||||
IPV6_MULTICAST_LOOP = 0xb
|
IPV6_MULTICAST_LOOP = 0xb
|
||||||
IPV6_NEXTHOP = 0x30
|
IPV6_NEXTHOP = 0x30
|
||||||
|
IPV6_ORIGDSTADDR = 0x48
|
||||||
IPV6_PATHMTU = 0x2c
|
IPV6_PATHMTU = 0x2c
|
||||||
IPV6_PKTINFO = 0x2e
|
IPV6_PKTINFO = 0x2e
|
||||||
IPV6_PORTRANGE = 0xe
|
IPV6_PORTRANGE = 0xe
|
||||||
|
@ -845,6 +884,7 @@ const (
|
||||||
IPV6_RECVFLOWID = 0x46
|
IPV6_RECVFLOWID = 0x46
|
||||||
IPV6_RECVHOPLIMIT = 0x25
|
IPV6_RECVHOPLIMIT = 0x25
|
||||||
IPV6_RECVHOPOPTS = 0x27
|
IPV6_RECVHOPOPTS = 0x27
|
||||||
|
IPV6_RECVORIGDSTADDR = 0x48
|
||||||
IPV6_RECVPATHMTU = 0x2b
|
IPV6_RECVPATHMTU = 0x2b
|
||||||
IPV6_RECVPKTINFO = 0x24
|
IPV6_RECVPKTINFO = 0x24
|
||||||
IPV6_RECVRSSBUCKETID = 0x47
|
IPV6_RECVRSSBUCKETID = 0x47
|
||||||
|
@ -905,10 +945,8 @@ const (
|
||||||
IP_MAX_MEMBERSHIPS = 0xfff
|
IP_MAX_MEMBERSHIPS = 0xfff
|
||||||
IP_MAX_SOCK_MUTE_FILTER = 0x80
|
IP_MAX_SOCK_MUTE_FILTER = 0x80
|
||||||
IP_MAX_SOCK_SRC_FILTER = 0x80
|
IP_MAX_SOCK_SRC_FILTER = 0x80
|
||||||
IP_MAX_SOURCE_FILTER = 0x400
|
|
||||||
IP_MF = 0x2000
|
IP_MF = 0x2000
|
||||||
IP_MINTTL = 0x42
|
IP_MINTTL = 0x42
|
||||||
IP_MIN_MEMBERSHIPS = 0x1f
|
|
||||||
IP_MSFILTER = 0x4a
|
IP_MSFILTER = 0x4a
|
||||||
IP_MSS = 0x240
|
IP_MSS = 0x240
|
||||||
IP_MULTICAST_IF = 0x9
|
IP_MULTICAST_IF = 0x9
|
||||||
|
@ -918,6 +956,7 @@ const (
|
||||||
IP_OFFMASK = 0x1fff
|
IP_OFFMASK = 0x1fff
|
||||||
IP_ONESBCAST = 0x17
|
IP_ONESBCAST = 0x17
|
||||||
IP_OPTIONS = 0x1
|
IP_OPTIONS = 0x1
|
||||||
|
IP_ORIGDSTADDR = 0x1b
|
||||||
IP_PORTRANGE = 0x13
|
IP_PORTRANGE = 0x13
|
||||||
IP_PORTRANGE_DEFAULT = 0x0
|
IP_PORTRANGE_DEFAULT = 0x0
|
||||||
IP_PORTRANGE_HIGH = 0x1
|
IP_PORTRANGE_HIGH = 0x1
|
||||||
|
@ -926,6 +965,7 @@ const (
|
||||||
IP_RECVFLOWID = 0x5d
|
IP_RECVFLOWID = 0x5d
|
||||||
IP_RECVIF = 0x14
|
IP_RECVIF = 0x14
|
||||||
IP_RECVOPTS = 0x5
|
IP_RECVOPTS = 0x5
|
||||||
|
IP_RECVORIGDSTADDR = 0x1b
|
||||||
IP_RECVRETOPTS = 0x6
|
IP_RECVRETOPTS = 0x6
|
||||||
IP_RECVRSSBUCKETID = 0x5e
|
IP_RECVRSSBUCKETID = 0x5e
|
||||||
IP_RECVTOS = 0x44
|
IP_RECVTOS = 0x44
|
||||||
|
@ -976,6 +1016,7 @@ const (
|
||||||
MAP_EXCL = 0x4000
|
MAP_EXCL = 0x4000
|
||||||
MAP_FILE = 0x0
|
MAP_FILE = 0x0
|
||||||
MAP_FIXED = 0x10
|
MAP_FIXED = 0x10
|
||||||
|
MAP_GUARD = 0x2000
|
||||||
MAP_HASSEMAPHORE = 0x200
|
MAP_HASSEMAPHORE = 0x200
|
||||||
MAP_NOCORE = 0x20000
|
MAP_NOCORE = 0x20000
|
||||||
MAP_NOSYNC = 0x800
|
MAP_NOSYNC = 0x800
|
||||||
|
@ -987,6 +1028,15 @@ const (
|
||||||
MAP_RESERVED0100 = 0x100
|
MAP_RESERVED0100 = 0x100
|
||||||
MAP_SHARED = 0x1
|
MAP_SHARED = 0x1
|
||||||
MAP_STACK = 0x400
|
MAP_STACK = 0x400
|
||||||
|
MCAST_BLOCK_SOURCE = 0x54
|
||||||
|
MCAST_EXCLUDE = 0x2
|
||||||
|
MCAST_INCLUDE = 0x1
|
||||||
|
MCAST_JOIN_GROUP = 0x50
|
||||||
|
MCAST_JOIN_SOURCE_GROUP = 0x52
|
||||||
|
MCAST_LEAVE_GROUP = 0x51
|
||||||
|
MCAST_LEAVE_SOURCE_GROUP = 0x53
|
||||||
|
MCAST_UNBLOCK_SOURCE = 0x55
|
||||||
|
MCAST_UNDEFINED = 0x0
|
||||||
MCL_CURRENT = 0x1
|
MCL_CURRENT = 0x1
|
||||||
MCL_FUTURE = 0x2
|
MCL_FUTURE = 0x2
|
||||||
MNT_ACLS = 0x8000000
|
MNT_ACLS = 0x8000000
|
||||||
|
@ -1027,10 +1077,12 @@ const (
|
||||||
MNT_SUSPEND = 0x4
|
MNT_SUSPEND = 0x4
|
||||||
MNT_SYNCHRONOUS = 0x2
|
MNT_SYNCHRONOUS = 0x2
|
||||||
MNT_UNION = 0x20
|
MNT_UNION = 0x20
|
||||||
|
MNT_UNTRUSTED = 0x800000000
|
||||||
MNT_UPDATE = 0x10000
|
MNT_UPDATE = 0x10000
|
||||||
MNT_UPDATEMASK = 0x2d8d0807e
|
MNT_UPDATEMASK = 0xad8d0807e
|
||||||
MNT_USER = 0x8000
|
MNT_USER = 0x8000
|
||||||
MNT_VISFLAGMASK = 0x3fef0ffff
|
MNT_VERIFIED = 0x400000000
|
||||||
|
MNT_VISFLAGMASK = 0xffef0ffff
|
||||||
MNT_WAIT = 0x1
|
MNT_WAIT = 0x1
|
||||||
MSG_CMSG_CLOEXEC = 0x40000
|
MSG_CMSG_CLOEXEC = 0x40000
|
||||||
MSG_COMPAT = 0x8000
|
MSG_COMPAT = 0x8000
|
||||||
|
@ -1059,6 +1111,7 @@ const (
|
||||||
NFDBITS = 0x40
|
NFDBITS = 0x40
|
||||||
NOFLSH = 0x80000000
|
NOFLSH = 0x80000000
|
||||||
NOKERNINFO = 0x2000000
|
NOKERNINFO = 0x2000000
|
||||||
|
NOTE_ABSTIME = 0x10
|
||||||
NOTE_ATTRIB = 0x8
|
NOTE_ATTRIB = 0x8
|
||||||
NOTE_CHILD = 0x4
|
NOTE_CHILD = 0x4
|
||||||
NOTE_CLOSE = 0x100
|
NOTE_CLOSE = 0x100
|
||||||
|
@ -1213,7 +1266,6 @@ const (
|
||||||
RTV_WEIGHT = 0x100
|
RTV_WEIGHT = 0x100
|
||||||
RT_ALL_FIBS = -0x1
|
RT_ALL_FIBS = -0x1
|
||||||
RT_BLACKHOLE = 0x40
|
RT_BLACKHOLE = 0x40
|
||||||
RT_CACHING_CONTEXT = 0x1
|
|
||||||
RT_DEFAULT_FIB = 0x0
|
RT_DEFAULT_FIB = 0x0
|
||||||
RT_HAS_GW = 0x80
|
RT_HAS_GW = 0x80
|
||||||
RT_HAS_HEADER = 0x10
|
RT_HAS_HEADER = 0x10
|
||||||
|
@ -1223,15 +1275,17 @@ const (
|
||||||
RT_LLE_CACHE = 0x100
|
RT_LLE_CACHE = 0x100
|
||||||
RT_MAY_LOOP = 0x8
|
RT_MAY_LOOP = 0x8
|
||||||
RT_MAY_LOOP_BIT = 0x3
|
RT_MAY_LOOP_BIT = 0x3
|
||||||
RT_NORTREF = 0x2
|
|
||||||
RT_REJECT = 0x20
|
RT_REJECT = 0x20
|
||||||
RUSAGE_CHILDREN = -0x1
|
RUSAGE_CHILDREN = -0x1
|
||||||
RUSAGE_SELF = 0x0
|
RUSAGE_SELF = 0x0
|
||||||
RUSAGE_THREAD = 0x1
|
RUSAGE_THREAD = 0x1
|
||||||
SCM_BINTIME = 0x4
|
SCM_BINTIME = 0x4
|
||||||
SCM_CREDS = 0x3
|
SCM_CREDS = 0x3
|
||||||
|
SCM_MONOTONIC = 0x6
|
||||||
|
SCM_REALTIME = 0x5
|
||||||
SCM_RIGHTS = 0x1
|
SCM_RIGHTS = 0x1
|
||||||
SCM_TIMESTAMP = 0x2
|
SCM_TIMESTAMP = 0x2
|
||||||
|
SCM_TIME_INFO = 0x7
|
||||||
SHUT_RD = 0x0
|
SHUT_RD = 0x0
|
||||||
SHUT_RDWR = 0x2
|
SHUT_RDWR = 0x2
|
||||||
SHUT_WR = 0x1
|
SHUT_WR = 0x1
|
||||||
|
@ -1247,6 +1301,7 @@ const (
|
||||||
SIOCGETSGCNT = 0xc0207210
|
SIOCGETSGCNT = 0xc0207210
|
||||||
SIOCGETVIFCNT = 0xc028720f
|
SIOCGETVIFCNT = 0xc028720f
|
||||||
SIOCGHIWAT = 0x40047301
|
SIOCGHIWAT = 0x40047301
|
||||||
|
SIOCGHWADDR = 0xc020693e
|
||||||
SIOCGI2C = 0xc020693d
|
SIOCGI2C = 0xc020693d
|
||||||
SIOCGIFADDR = 0xc0206921
|
SIOCGIFADDR = 0xc0206921
|
||||||
SIOCGIFBRDADDR = 0xc0206923
|
SIOCGIFBRDADDR = 0xc0206923
|
||||||
|
@ -1268,8 +1323,11 @@ const (
|
||||||
SIOCGIFPDSTADDR = 0xc0206948
|
SIOCGIFPDSTADDR = 0xc0206948
|
||||||
SIOCGIFPHYS = 0xc0206935
|
SIOCGIFPHYS = 0xc0206935
|
||||||
SIOCGIFPSRCADDR = 0xc0206947
|
SIOCGIFPSRCADDR = 0xc0206947
|
||||||
|
SIOCGIFRSSHASH = 0xc0186997
|
||||||
|
SIOCGIFRSSKEY = 0xc0946996
|
||||||
SIOCGIFSTATUS = 0xc331693b
|
SIOCGIFSTATUS = 0xc331693b
|
||||||
SIOCGIFXMEDIA = 0xc030698b
|
SIOCGIFXMEDIA = 0xc030698b
|
||||||
|
SIOCGLANPCP = 0xc0206998
|
||||||
SIOCGLOWAT = 0x40047303
|
SIOCGLOWAT = 0x40047303
|
||||||
SIOCGPGRP = 0x40047309
|
SIOCGPGRP = 0x40047309
|
||||||
SIOCGPRIVATE_0 = 0xc0206950
|
SIOCGPRIVATE_0 = 0xc0206950
|
||||||
|
@ -1300,6 +1358,7 @@ const (
|
||||||
SIOCSIFPHYS = 0x80206936
|
SIOCSIFPHYS = 0x80206936
|
||||||
SIOCSIFRVNET = 0xc020695b
|
SIOCSIFRVNET = 0xc020695b
|
||||||
SIOCSIFVNET = 0xc020695a
|
SIOCSIFVNET = 0xc020695a
|
||||||
|
SIOCSLANPCP = 0x80206999
|
||||||
SIOCSLOWAT = 0x80047302
|
SIOCSLOWAT = 0x80047302
|
||||||
SIOCSPGRP = 0x80047308
|
SIOCSPGRP = 0x80047308
|
||||||
SIOCSTUNFIB = 0x8020695f
|
SIOCSTUNFIB = 0x8020695f
|
||||||
|
@ -1318,6 +1377,7 @@ const (
|
||||||
SO_BINTIME = 0x2000
|
SO_BINTIME = 0x2000
|
||||||
SO_BROADCAST = 0x20
|
SO_BROADCAST = 0x20
|
||||||
SO_DEBUG = 0x1
|
SO_DEBUG = 0x1
|
||||||
|
SO_DOMAIN = 0x1019
|
||||||
SO_DONTROUTE = 0x10
|
SO_DONTROUTE = 0x10
|
||||||
SO_ERROR = 0x1007
|
SO_ERROR = 0x1007
|
||||||
SO_KEEPALIVE = 0x8
|
SO_KEEPALIVE = 0x8
|
||||||
|
@ -1326,6 +1386,7 @@ const (
|
||||||
SO_LISTENINCQLEN = 0x1013
|
SO_LISTENINCQLEN = 0x1013
|
||||||
SO_LISTENQLEN = 0x1012
|
SO_LISTENQLEN = 0x1012
|
||||||
SO_LISTENQLIMIT = 0x1011
|
SO_LISTENQLIMIT = 0x1011
|
||||||
|
SO_MAX_PACING_RATE = 0x1018
|
||||||
SO_NOSIGPIPE = 0x800
|
SO_NOSIGPIPE = 0x800
|
||||||
SO_NO_DDP = 0x8000
|
SO_NO_DDP = 0x8000
|
||||||
SO_NO_OFFLOAD = 0x4000
|
SO_NO_OFFLOAD = 0x4000
|
||||||
|
@ -1338,11 +1399,19 @@ const (
|
||||||
SO_RCVTIMEO = 0x1006
|
SO_RCVTIMEO = 0x1006
|
||||||
SO_REUSEADDR = 0x4
|
SO_REUSEADDR = 0x4
|
||||||
SO_REUSEPORT = 0x200
|
SO_REUSEPORT = 0x200
|
||||||
|
SO_REUSEPORT_LB = 0x10000
|
||||||
SO_SETFIB = 0x1014
|
SO_SETFIB = 0x1014
|
||||||
SO_SNDBUF = 0x1001
|
SO_SNDBUF = 0x1001
|
||||||
SO_SNDLOWAT = 0x1003
|
SO_SNDLOWAT = 0x1003
|
||||||
SO_SNDTIMEO = 0x1005
|
SO_SNDTIMEO = 0x1005
|
||||||
SO_TIMESTAMP = 0x400
|
SO_TIMESTAMP = 0x400
|
||||||
|
SO_TS_BINTIME = 0x1
|
||||||
|
SO_TS_CLOCK = 0x1017
|
||||||
|
SO_TS_CLOCK_MAX = 0x3
|
||||||
|
SO_TS_DEFAULT = 0x0
|
||||||
|
SO_TS_MONOTONIC = 0x3
|
||||||
|
SO_TS_REALTIME = 0x2
|
||||||
|
SO_TS_REALTIME_MICRO = 0x0
|
||||||
SO_TYPE = 0x1008
|
SO_TYPE = 0x1008
|
||||||
SO_USELOOPBACK = 0x40
|
SO_USELOOPBACK = 0x40
|
||||||
SO_USER_COOKIE = 0x1015
|
SO_USER_COOKIE = 0x1015
|
||||||
|
@ -1386,10 +1455,45 @@ const (
|
||||||
TCOFLUSH = 0x2
|
TCOFLUSH = 0x2
|
||||||
TCOOFF = 0x1
|
TCOOFF = 0x1
|
||||||
TCOON = 0x2
|
TCOON = 0x2
|
||||||
|
TCP_BBR_ACK_COMP_ALG = 0x448
|
||||||
|
TCP_BBR_DRAIN_INC_EXTRA = 0x43c
|
||||||
|
TCP_BBR_DRAIN_PG = 0x42e
|
||||||
|
TCP_BBR_EXTRA_GAIN = 0x449
|
||||||
|
TCP_BBR_IWINTSO = 0x42b
|
||||||
|
TCP_BBR_LOWGAIN_FD = 0x436
|
||||||
|
TCP_BBR_LOWGAIN_HALF = 0x435
|
||||||
|
TCP_BBR_LOWGAIN_THRESH = 0x434
|
||||||
|
TCP_BBR_MAX_RTO = 0x439
|
||||||
|
TCP_BBR_MIN_RTO = 0x438
|
||||||
|
TCP_BBR_ONE_RETRAN = 0x431
|
||||||
|
TCP_BBR_PACE_CROSS = 0x442
|
||||||
|
TCP_BBR_PACE_DEL_TAR = 0x43f
|
||||||
|
TCP_BBR_PACE_PER_SEC = 0x43e
|
||||||
|
TCP_BBR_PACE_SEG_MAX = 0x440
|
||||||
|
TCP_BBR_PACE_SEG_MIN = 0x441
|
||||||
|
TCP_BBR_PROBE_RTT_GAIN = 0x44d
|
||||||
|
TCP_BBR_PROBE_RTT_INT = 0x430
|
||||||
|
TCP_BBR_PROBE_RTT_LEN = 0x44e
|
||||||
|
TCP_BBR_RACK_RTT_USE = 0x44a
|
||||||
|
TCP_BBR_RECFORCE = 0x42c
|
||||||
|
TCP_BBR_REC_OVER_HPTS = 0x43a
|
||||||
|
TCP_BBR_RETRAN_WTSO = 0x44b
|
||||||
|
TCP_BBR_RWND_IS_APP = 0x42f
|
||||||
|
TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
|
||||||
|
TCP_BBR_STARTUP_LOSS_EXIT = 0x432
|
||||||
|
TCP_BBR_STARTUP_PG = 0x42d
|
||||||
|
TCP_BBR_UNLIMITED = 0x43b
|
||||||
|
TCP_BBR_USEDEL_RATE = 0x437
|
||||||
|
TCP_BBR_USE_LOWGAIN = 0x433
|
||||||
TCP_CA_NAME_MAX = 0x10
|
TCP_CA_NAME_MAX = 0x10
|
||||||
TCP_CCALGOOPT = 0x41
|
TCP_CCALGOOPT = 0x41
|
||||||
TCP_CONGESTION = 0x40
|
TCP_CONGESTION = 0x40
|
||||||
|
TCP_DATA_AFTER_CLOSE = 0x44c
|
||||||
|
TCP_DELACK = 0x48
|
||||||
TCP_FASTOPEN = 0x401
|
TCP_FASTOPEN = 0x401
|
||||||
|
TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10
|
||||||
|
TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4
|
||||||
|
TCP_FASTOPEN_PSK_LEN = 0x10
|
||||||
TCP_FUNCTION_BLK = 0x2000
|
TCP_FUNCTION_BLK = 0x2000
|
||||||
TCP_FUNCTION_NAME_LEN_MAX = 0x20
|
TCP_FUNCTION_NAME_LEN_MAX = 0x20
|
||||||
TCP_INFO = 0x20
|
TCP_INFO = 0x20
|
||||||
|
@ -1397,6 +1501,12 @@ const (
|
||||||
TCP_KEEPIDLE = 0x100
|
TCP_KEEPIDLE = 0x100
|
||||||
TCP_KEEPINIT = 0x80
|
TCP_KEEPINIT = 0x80
|
||||||
TCP_KEEPINTVL = 0x200
|
TCP_KEEPINTVL = 0x200
|
||||||
|
TCP_LOG = 0x22
|
||||||
|
TCP_LOGBUF = 0x23
|
||||||
|
TCP_LOGDUMP = 0x25
|
||||||
|
TCP_LOGDUMPID = 0x26
|
||||||
|
TCP_LOGID = 0x24
|
||||||
|
TCP_LOG_ID_LEN = 0x40
|
||||||
TCP_MAXBURST = 0x4
|
TCP_MAXBURST = 0x4
|
||||||
TCP_MAXHLEN = 0x3c
|
TCP_MAXHLEN = 0x3c
|
||||||
TCP_MAXOLEN = 0x28
|
TCP_MAXOLEN = 0x28
|
||||||
|
@ -1412,8 +1522,30 @@ const (
|
||||||
TCP_NOPUSH = 0x4
|
TCP_NOPUSH = 0x4
|
||||||
TCP_PCAP_IN = 0x1000
|
TCP_PCAP_IN = 0x1000
|
||||||
TCP_PCAP_OUT = 0x800
|
TCP_PCAP_OUT = 0x800
|
||||||
|
TCP_RACK_EARLY_RECOV = 0x423
|
||||||
|
TCP_RACK_EARLY_SEG = 0x424
|
||||||
|
TCP_RACK_IDLE_REDUCE_HIGH = 0x444
|
||||||
|
TCP_RACK_MIN_PACE = 0x445
|
||||||
|
TCP_RACK_MIN_PACE_SEG = 0x446
|
||||||
|
TCP_RACK_MIN_TO = 0x422
|
||||||
|
TCP_RACK_PACE_ALWAYS = 0x41f
|
||||||
|
TCP_RACK_PACE_MAX_SEG = 0x41e
|
||||||
|
TCP_RACK_PACE_REDUCE = 0x41d
|
||||||
|
TCP_RACK_PKT_DELAY = 0x428
|
||||||
|
TCP_RACK_PROP = 0x41b
|
||||||
|
TCP_RACK_PROP_RATE = 0x420
|
||||||
|
TCP_RACK_PRR_SENDALOT = 0x421
|
||||||
|
TCP_RACK_REORD_FADE = 0x426
|
||||||
|
TCP_RACK_REORD_THRESH = 0x425
|
||||||
|
TCP_RACK_SESS_CWV = 0x42a
|
||||||
|
TCP_RACK_TLP_INC_VAR = 0x429
|
||||||
|
TCP_RACK_TLP_REDUCE = 0x41c
|
||||||
|
TCP_RACK_TLP_THRESH = 0x427
|
||||||
|
TCP_RACK_TLP_USE = 0x447
|
||||||
TCP_VENDOR = 0x80000000
|
TCP_VENDOR = 0x80000000
|
||||||
TCSAFLUSH = 0x2
|
TCSAFLUSH = 0x2
|
||||||
|
TIMER_ABSTIME = 0x1
|
||||||
|
TIMER_RELTIME = 0x0
|
||||||
TIOCCBRK = 0x2000747a
|
TIOCCBRK = 0x2000747a
|
||||||
TIOCCDTR = 0x20007478
|
TIOCCDTR = 0x20007478
|
||||||
TIOCCONS = 0x80047462
|
TIOCCONS = 0x80047462
|
||||||
|
@ -1477,6 +1609,8 @@ const (
|
||||||
TIOCTIMESTAMP = 0x40107459
|
TIOCTIMESTAMP = 0x40107459
|
||||||
TIOCUCNTL = 0x80047466
|
TIOCUCNTL = 0x80047466
|
||||||
TOSTOP = 0x400000
|
TOSTOP = 0x400000
|
||||||
|
UTIME_NOW = -0x1
|
||||||
|
UTIME_OMIT = -0x2
|
||||||
VDISCARD = 0xf
|
VDISCARD = 0xf
|
||||||
VDSUSP = 0xb
|
VDSUSP = 0xb
|
||||||
VEOF = 0x0
|
VEOF = 0x0
|
||||||
|
@ -1488,6 +1622,7 @@ const (
|
||||||
VKILL = 0x5
|
VKILL = 0x5
|
||||||
VLNEXT = 0xe
|
VLNEXT = 0xe
|
||||||
VMIN = 0x10
|
VMIN = 0x10
|
||||||
|
VM_BCACHE_SIZE_MAX = 0x19000000
|
||||||
VQUIT = 0x9
|
VQUIT = 0x9
|
||||||
VREPRINT = 0x6
|
VREPRINT = 0x6
|
||||||
VSTART = 0xc
|
VSTART = 0xc
|
||||||
|
|
|
@ -890,6 +890,7 @@ const (
|
||||||
IPPROTO_IP = 0x0
|
IPPROTO_IP = 0x0
|
||||||
IPPROTO_IPIP = 0x4
|
IPPROTO_IPIP = 0x4
|
||||||
IPPROTO_IPV6 = 0x29
|
IPPROTO_IPV6 = 0x29
|
||||||
|
IPPROTO_L2TP = 0x73
|
||||||
IPPROTO_MH = 0x87
|
IPPROTO_MH = 0x87
|
||||||
IPPROTO_MPLS = 0x89
|
IPPROTO_MPLS = 0x89
|
||||||
IPPROTO_MTP = 0x5c
|
IPPROTO_MTP = 0x5c
|
||||||
|
|
|
@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
|
|
||||||
var _p0 unsafe.Pointer
|
|
||||||
if len(mib) > 0 {
|
|
||||||
_p0 = unsafe.Pointer(&mib[0])
|
|
||||||
} else {
|
|
||||||
_p0 = unsafe.Pointer(&_zero)
|
|
||||||
}
|
|
||||||
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
|
|
||||||
if e1 != 0 {
|
|
||||||
err = errnoErr(e1)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
|
||||||
|
|
||||||
func utimes(path string, timeval *[2]Timeval) (err error) {
|
func utimes(path string, timeval *[2]Timeval) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
@ -376,16 +360,6 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func ptrace(request int, pid int, addr uintptr, data int) (err error) {
|
|
||||||
_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
|
|
||||||
if e1 != 0 {
|
|
||||||
err = errnoErr(e1)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
|
||||||
|
|
||||||
func Getcwd(buf []byte) (n int, err error) {
|
func Getcwd(buf []byte) (n int, err error) {
|
||||||
var _p0 unsafe.Pointer
|
var _p0 unsafe.Pointer
|
||||||
if len(buf) > 0 {
|
if len(buf) > 0 {
|
||||||
|
@ -413,6 +387,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
|
||||||
|
var _p0 unsafe.Pointer
|
||||||
|
if len(mib) > 0 {
|
||||||
|
_p0 = unsafe.Pointer(&mib[0])
|
||||||
|
} else {
|
||||||
|
_p0 = unsafe.Pointer(&_zero)
|
||||||
|
}
|
||||||
|
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func ptrace(request int, pid int, addr uintptr, data int) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Access(path string, mode uint32) (err error) {
|
func Access(path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
@ -1352,7 +1352,7 @@ func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
|
_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
}
|
}
|
||||||
|
|
|
@ -350,22 +350,6 @@ func Munlockall() (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
|
|
||||||
var _p0 unsafe.Pointer
|
|
||||||
if len(mib) > 0 {
|
|
||||||
_p0 = unsafe.Pointer(&mib[0])
|
|
||||||
} else {
|
|
||||||
_p0 = unsafe.Pointer(&_zero)
|
|
||||||
}
|
|
||||||
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
|
|
||||||
if e1 != 0 {
|
|
||||||
err = errnoErr(e1)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
|
||||||
|
|
||||||
func pipe2(p *[2]_C_int, flags int) (err error) {
|
func pipe2(p *[2]_C_int, flags int) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
|
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
@ -403,6 +387,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
|
||||||
|
var _p0 unsafe.Pointer
|
||||||
|
if len(mib) > 0 {
|
||||||
|
_p0 = unsafe.Pointer(&mib[0])
|
||||||
|
} else {
|
||||||
|
_p0 = unsafe.Pointer(&_zero)
|
||||||
|
}
|
||||||
|
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func ptrace(request int, pid int, addr uintptr, data int) (err error) {
|
func ptrace(request int, pid int, addr uintptr, data int) (err error) {
|
||||||
_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
|
_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// go run mksyscall.go -tags freebsd,arm64 -- syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go
|
// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go
|
||||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||||
|
|
||||||
// +build freebsd,arm64
|
// +build freebsd,arm64
|
||||||
|
@ -350,22 +350,6 @@ func Munlockall() (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
|
|
||||||
var _p0 unsafe.Pointer
|
|
||||||
if len(mib) > 0 {
|
|
||||||
_p0 = unsafe.Pointer(&mib[0])
|
|
||||||
} else {
|
|
||||||
_p0 = unsafe.Pointer(&_zero)
|
|
||||||
}
|
|
||||||
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
|
|
||||||
if e1 != 0 {
|
|
||||||
err = errnoErr(e1)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
|
||||||
|
|
||||||
func pipe2(p *[2]_C_int, flags int) (err error) {
|
func pipe2(p *[2]_C_int, flags int) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
|
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
@ -403,6 +387,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
|
||||||
|
var _p0 unsafe.Pointer
|
||||||
|
if len(mib) > 0 {
|
||||||
|
_p0 = unsafe.Pointer(&mib[0])
|
||||||
|
} else {
|
||||||
|
_p0 = unsafe.Pointer(&_zero)
|
||||||
|
}
|
||||||
|
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func ptrace(request int, pid int, addr uintptr, data int) (err error) {
|
func ptrace(request int, pid int, addr uintptr, data int) (err error) {
|
||||||
_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
|
_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go
|
||||||
|
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||||
|
|
||||||
|
// +build illumos,amd64
|
||||||
|
|
||||||
|
package unix
|
||||||
|
|
||||||
|
import (
|
||||||
|
"unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
//go:cgo_import_dynamic libc_readv readv "libc.so"
|
||||||
|
//go:cgo_import_dynamic libc_preadv preadv "libc.so"
|
||||||
|
//go:cgo_import_dynamic libc_writev writev "libc.so"
|
||||||
|
//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
|
||||||
|
|
||||||
|
//go:linkname procreadv libc_readv
|
||||||
|
//go:linkname procpreadv libc_preadv
|
||||||
|
//go:linkname procwritev libc_writev
|
||||||
|
//go:linkname procpwritev libc_pwritev
|
||||||
|
|
||||||
|
var (
|
||||||
|
procreadv,
|
||||||
|
procpreadv,
|
||||||
|
procwritev,
|
||||||
|
procpwritev syscallFunc
|
||||||
|
)
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func readv(fd int, iovs []Iovec) (n int, err error) {
|
||||||
|
var _p0 *Iovec
|
||||||
|
if len(iovs) > 0 {
|
||||||
|
_p0 = &iovs[0]
|
||||||
|
}
|
||||||
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = e1
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func preadv(fd int, iovs []Iovec, off int64) (n int, err error) {
|
||||||
|
var _p0 *Iovec
|
||||||
|
if len(iovs) > 0 {
|
||||||
|
_p0 = &iovs[0]
|
||||||
|
}
|
||||||
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = e1
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func writev(fd int, iovs []Iovec) (n int, err error) {
|
||||||
|
var _p0 *Iovec
|
||||||
|
if len(iovs) > 0 {
|
||||||
|
_p0 = &iovs[0]
|
||||||
|
}
|
||||||
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = e1
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) {
|
||||||
|
var _p0 *Iovec
|
||||||
|
if len(iovs) > 0 {
|
||||||
|
_p0 = &iovs[0]
|
||||||
|
}
|
||||||
|
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = e1
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
|
@ -128,9 +128,9 @@ type Statfs_t struct {
|
||||||
Owner uint32
|
Owner uint32
|
||||||
Fsid Fsid
|
Fsid Fsid
|
||||||
Charspare [80]int8
|
Charspare [80]int8
|
||||||
Fstypename [16]int8
|
Fstypename [16]byte
|
||||||
Mntfromname [1024]int8
|
Mntfromname [1024]byte
|
||||||
Mntonname [1024]int8
|
Mntonname [1024]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type statfs_freebsd11_t struct {
|
type statfs_freebsd11_t struct {
|
||||||
|
@ -153,9 +153,9 @@ type statfs_freebsd11_t struct {
|
||||||
Owner uint32
|
Owner uint32
|
||||||
Fsid Fsid
|
Fsid Fsid
|
||||||
Charspare [80]int8
|
Charspare [80]int8
|
||||||
Fstypename [16]int8
|
Fstypename [16]byte
|
||||||
Mntfromname [88]int8
|
Mntfromname [88]byte
|
||||||
Mntonname [88]int8
|
Mntonname [88]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type Flock_t struct {
|
type Flock_t struct {
|
||||||
|
@ -375,15 +375,15 @@ type PtraceLwpInfoStruct struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type __Siginfo struct {
|
type __Siginfo struct {
|
||||||
Signo int32
|
Signo int32
|
||||||
Errno int32
|
Errno int32
|
||||||
Code int32
|
Code int32
|
||||||
Pid int32
|
Pid int32
|
||||||
Uid uint32
|
Uid uint32
|
||||||
Status int32
|
Status int32
|
||||||
Addr *byte
|
Addr *byte
|
||||||
Value [4]byte
|
Value [4]byte
|
||||||
X_reason [32]byte
|
_ [32]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type Sigset_t struct {
|
type Sigset_t struct {
|
||||||
|
@ -458,7 +458,7 @@ type ifMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
Data ifData
|
Data ifData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -469,7 +469,6 @@ type IfMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
|
||||||
Data IfData
|
Data IfData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -536,7 +535,7 @@ type IfaMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
Metric int32
|
Metric int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -547,7 +546,7 @@ type IfmaMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type IfAnnounceMsghdr struct {
|
type IfAnnounceMsghdr struct {
|
||||||
|
@ -564,7 +563,7 @@ type RtMsghdr struct {
|
||||||
Version uint8
|
Version uint8
|
||||||
Type uint8
|
Type uint8
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
Flags int32
|
Flags int32
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Pid int32
|
Pid int32
|
||||||
|
|
|
@ -123,9 +123,9 @@ type Statfs_t struct {
|
||||||
Owner uint32
|
Owner uint32
|
||||||
Fsid Fsid
|
Fsid Fsid
|
||||||
Charspare [80]int8
|
Charspare [80]int8
|
||||||
Fstypename [16]int8
|
Fstypename [16]byte
|
||||||
Mntfromname [1024]int8
|
Mntfromname [1024]byte
|
||||||
Mntonname [1024]int8
|
Mntonname [1024]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type statfs_freebsd11_t struct {
|
type statfs_freebsd11_t struct {
|
||||||
|
@ -148,9 +148,9 @@ type statfs_freebsd11_t struct {
|
||||||
Owner uint32
|
Owner uint32
|
||||||
Fsid Fsid
|
Fsid Fsid
|
||||||
Charspare [80]int8
|
Charspare [80]int8
|
||||||
Fstypename [16]int8
|
Fstypename [16]byte
|
||||||
Mntfromname [88]int8
|
Mntfromname [88]byte
|
||||||
Mntonname [88]int8
|
Mntonname [88]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type Flock_t struct {
|
type Flock_t struct {
|
||||||
|
@ -275,10 +275,8 @@ type IPv6Mreq struct {
|
||||||
type Msghdr struct {
|
type Msghdr struct {
|
||||||
Name *byte
|
Name *byte
|
||||||
Namelen uint32
|
Namelen uint32
|
||||||
_ [4]byte
|
|
||||||
Iov *Iovec
|
Iov *Iovec
|
||||||
Iovlen int32
|
Iovlen int32
|
||||||
_ [4]byte
|
|
||||||
Control *byte
|
Control *byte
|
||||||
Controllen uint32
|
Controllen uint32
|
||||||
Flags int32
|
Flags int32
|
||||||
|
@ -463,7 +461,7 @@ type ifMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
Data ifData
|
Data ifData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -474,7 +472,6 @@ type IfMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
|
||||||
Data IfData
|
Data IfData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -541,7 +538,7 @@ type IfaMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
Metric int32
|
Metric int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -552,7 +549,7 @@ type IfmaMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type IfAnnounceMsghdr struct {
|
type IfAnnounceMsghdr struct {
|
||||||
|
@ -569,7 +566,7 @@ type RtMsghdr struct {
|
||||||
Version uint8
|
Version uint8
|
||||||
Type uint8
|
Type uint8
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
Flags int32
|
Flags int32
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Pid int32
|
Pid int32
|
||||||
|
@ -623,7 +620,6 @@ type BpfZbuf struct {
|
||||||
|
|
||||||
type BpfProgram struct {
|
type BpfProgram struct {
|
||||||
Len uint32
|
Len uint32
|
||||||
_ [4]byte
|
|
||||||
Insns *BpfInsn
|
Insns *BpfInsn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// cgo -godefs types_freebsd.go | go run mkpost.go
|
// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go
|
||||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||||
|
|
||||||
// +build arm64,freebsd
|
// +build arm64,freebsd
|
||||||
|
@ -123,9 +123,9 @@ type Statfs_t struct {
|
||||||
Owner uint32
|
Owner uint32
|
||||||
Fsid Fsid
|
Fsid Fsid
|
||||||
Charspare [80]int8
|
Charspare [80]int8
|
||||||
Fstypename [16]int8
|
Fstypename [16]byte
|
||||||
Mntfromname [1024]int8
|
Mntfromname [1024]byte
|
||||||
Mntonname [1024]int8
|
Mntonname [1024]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type statfs_freebsd11_t struct {
|
type statfs_freebsd11_t struct {
|
||||||
|
@ -148,9 +148,9 @@ type statfs_freebsd11_t struct {
|
||||||
Owner uint32
|
Owner uint32
|
||||||
Fsid Fsid
|
Fsid Fsid
|
||||||
Charspare [80]int8
|
Charspare [80]int8
|
||||||
Fstypename [16]int8
|
Fstypename [16]byte
|
||||||
Mntfromname [88]int8
|
Mntfromname [88]byte
|
||||||
Mntonname [88]int8
|
Mntonname [88]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type Flock_t struct {
|
type Flock_t struct {
|
||||||
|
@ -275,10 +275,8 @@ type IPv6Mreq struct {
|
||||||
type Msghdr struct {
|
type Msghdr struct {
|
||||||
Name *byte
|
Name *byte
|
||||||
Namelen uint32
|
Namelen uint32
|
||||||
_ [4]byte
|
|
||||||
Iov *Iovec
|
Iov *Iovec
|
||||||
Iovlen int32
|
Iovlen int32
|
||||||
_ [4]byte
|
|
||||||
Control *byte
|
Control *byte
|
||||||
Controllen uint32
|
Controllen uint32
|
||||||
Flags int32
|
Flags int32
|
||||||
|
@ -326,11 +324,9 @@ const (
|
||||||
PTRACE_CONT = 0x7
|
PTRACE_CONT = 0x7
|
||||||
PTRACE_DETACH = 0xb
|
PTRACE_DETACH = 0xb
|
||||||
PTRACE_GETFPREGS = 0x23
|
PTRACE_GETFPREGS = 0x23
|
||||||
PTRACE_GETFSBASE = 0x47
|
|
||||||
PTRACE_GETLWPLIST = 0xf
|
PTRACE_GETLWPLIST = 0xf
|
||||||
PTRACE_GETNUMLWPS = 0xe
|
PTRACE_GETNUMLWPS = 0xe
|
||||||
PTRACE_GETREGS = 0x21
|
PTRACE_GETREGS = 0x21
|
||||||
PTRACE_GETXSTATE = 0x45
|
|
||||||
PTRACE_IO = 0xc
|
PTRACE_IO = 0xc
|
||||||
PTRACE_KILL = 0x8
|
PTRACE_KILL = 0x8
|
||||||
PTRACE_LWPEVENTS = 0x18
|
PTRACE_LWPEVENTS = 0x18
|
||||||
|
@ -373,15 +369,15 @@ type PtraceLwpInfoStruct struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type __Siginfo struct {
|
type __Siginfo struct {
|
||||||
Signo int32
|
Signo int32
|
||||||
Errno int32
|
Errno int32
|
||||||
Code int32
|
Code int32
|
||||||
Pid int32
|
Pid int32
|
||||||
Uid uint32
|
Uid uint32
|
||||||
Status int32
|
Status int32
|
||||||
Addr *byte
|
Addr *byte
|
||||||
Value [8]byte
|
Value [8]byte
|
||||||
X_reason [40]byte
|
_ [40]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type Sigset_t struct {
|
type Sigset_t struct {
|
||||||
|
@ -394,12 +390,14 @@ type Reg struct {
|
||||||
Sp uint64
|
Sp uint64
|
||||||
Elr uint64
|
Elr uint64
|
||||||
Spsr uint32
|
Spsr uint32
|
||||||
|
_ [4]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type FpReg struct {
|
type FpReg struct {
|
||||||
Fp_q [512]uint8
|
Q [32][16]uint8
|
||||||
Fp_sr uint32
|
Sr uint32
|
||||||
Fp_cr uint32
|
Cr uint32
|
||||||
|
_ [8]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type PtraceIoDesc struct {
|
type PtraceIoDesc struct {
|
||||||
|
@ -441,7 +439,7 @@ type ifMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
Data ifData
|
Data ifData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -452,7 +450,6 @@ type IfMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
|
||||||
Data IfData
|
Data IfData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -519,7 +516,7 @@ type IfaMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
Metric int32
|
Metric int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -530,7 +527,7 @@ type IfmaMsghdr struct {
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Flags int32
|
Flags int32
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type IfAnnounceMsghdr struct {
|
type IfAnnounceMsghdr struct {
|
||||||
|
@ -547,7 +544,7 @@ type RtMsghdr struct {
|
||||||
Version uint8
|
Version uint8
|
||||||
Type uint8
|
Type uint8
|
||||||
Index uint16
|
Index uint16
|
||||||
_ [2]byte
|
_ uint16
|
||||||
Flags int32
|
Flags int32
|
||||||
Addrs int32
|
Addrs int32
|
||||||
Pid int32
|
Pid int32
|
||||||
|
@ -601,7 +598,6 @@ type BpfZbuf struct {
|
||||||
|
|
||||||
type BpfProgram struct {
|
type BpfProgram struct {
|
||||||
Len uint32
|
Len uint32
|
||||||
_ [4]byte
|
|
||||||
Insns *BpfInsn
|
Insns *BpfInsn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -243,6 +243,23 @@ type RawSockaddrTIPC struct {
|
||||||
Addr [12]byte
|
Addr [12]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrL2TPIP struct {
|
||||||
|
Family uint16
|
||||||
|
Unused uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Conn_id uint32
|
||||||
|
_ [4]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrL2TPIP6 struct {
|
||||||
|
Family uint16
|
||||||
|
Unused uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
Conn_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
type _Socklen uint32
|
type _Socklen uint32
|
||||||
|
|
||||||
type Linger struct {
|
type Linger struct {
|
||||||
|
@ -353,6 +370,8 @@ const (
|
||||||
SizeofSockaddrXDP = 0x10
|
SizeofSockaddrXDP = 0x10
|
||||||
SizeofSockaddrPPPoX = 0x1e
|
SizeofSockaddrPPPoX = 0x1e
|
||||||
SizeofSockaddrTIPC = 0x10
|
SizeofSockaddrTIPC = 0x10
|
||||||
|
SizeofSockaddrL2TPIP = 0x10
|
||||||
|
SizeofSockaddrL2TPIP6 = 0x20
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|
|
@ -33,9 +33,11 @@ github.com/Azure/go-autorest/autorest/validation
|
||||||
github.com/Azure/go-autorest/logger
|
github.com/Azure/go-autorest/logger
|
||||||
# github.com/Azure/go-autorest/tracing v0.5.0
|
# github.com/Azure/go-autorest/tracing v0.5.0
|
||||||
github.com/Azure/go-autorest/tracing
|
github.com/Azure/go-autorest/tracing
|
||||||
# github.com/Azure/go-ntlmssp v0.0.0-20180810175552-4a21cbd618b4
|
# github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c
|
||||||
|
## explicit
|
||||||
github.com/Azure/go-ntlmssp
|
github.com/Azure/go-ntlmssp
|
||||||
# github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022
|
# github.com/ChrisTrenkamp/goxpath v0.0.0-20190607011252-c5096ec8773d
|
||||||
|
## explicit
|
||||||
github.com/ChrisTrenkamp/goxpath
|
github.com/ChrisTrenkamp/goxpath
|
||||||
github.com/ChrisTrenkamp/goxpath/internal/execxp
|
github.com/ChrisTrenkamp/goxpath/internal/execxp
|
||||||
github.com/ChrisTrenkamp/goxpath/internal/execxp/findutil
|
github.com/ChrisTrenkamp/goxpath/internal/execxp/findutil
|
||||||
|
@ -224,6 +226,9 @@ github.com/fatih/color
|
||||||
# github.com/go-test/deep v1.0.3
|
# github.com/go-test/deep v1.0.3
|
||||||
## explicit
|
## explicit
|
||||||
github.com/go-test/deep
|
github.com/go-test/deep
|
||||||
|
# github.com/gofrs/uuid v3.3.0+incompatible
|
||||||
|
## explicit
|
||||||
|
github.com/gofrs/uuid
|
||||||
# github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d
|
# github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d
|
||||||
github.com/gogo/protobuf/gogoproto
|
github.com/gogo/protobuf/gogoproto
|
||||||
github.com/gogo/protobuf/proto
|
github.com/gogo/protobuf/proto
|
||||||
|
@ -460,9 +465,10 @@ github.com/likexian/gokit/assert
|
||||||
# github.com/lusis/go-artifactory v0.0.0-20160115162124-7e4ce345df82
|
# github.com/lusis/go-artifactory v0.0.0-20160115162124-7e4ce345df82
|
||||||
## explicit
|
## explicit
|
||||||
github.com/lusis/go-artifactory/src/artifactory.v401
|
github.com/lusis/go-artifactory/src/artifactory.v401
|
||||||
# github.com/masterzen/simplexml v0.0.0-20160608183007-4572e39b1ab9
|
# github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786
|
||||||
|
## explicit
|
||||||
github.com/masterzen/simplexml/dom
|
github.com/masterzen/simplexml/dom
|
||||||
# github.com/masterzen/winrm v0.0.0-20190223112901-5e5c9a7fe54b
|
# github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88
|
||||||
## explicit
|
## explicit
|
||||||
github.com/masterzen/winrm
|
github.com/masterzen/winrm
|
||||||
github.com/masterzen/winrm/soap
|
github.com/masterzen/winrm/soap
|
||||||
|
@ -523,10 +529,11 @@ github.com/modern-go/reflect2
|
||||||
# github.com/mozillazg/go-httpheader v0.2.1
|
# github.com/mozillazg/go-httpheader v0.2.1
|
||||||
github.com/mozillazg/go-httpheader
|
github.com/mozillazg/go-httpheader
|
||||||
# github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d
|
# github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d
|
||||||
|
## explicit
|
||||||
github.com/nu7hatch/gouuid
|
github.com/nu7hatch/gouuid
|
||||||
# github.com/oklog/run v1.0.0
|
# github.com/oklog/run v1.0.0
|
||||||
github.com/oklog/run
|
github.com/oklog/run
|
||||||
# github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58
|
# github.com/packer-community/winrmcp v0.0.0-20180921211025-c76d91c1e7db
|
||||||
## explicit
|
## explicit
|
||||||
github.com/packer-community/winrmcp/winrmcp
|
github.com/packer-community/winrmcp/winrmcp
|
||||||
# github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c
|
# github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c
|
||||||
|
@ -638,7 +645,7 @@ go.opencensus.io/trace/tracestate
|
||||||
## explicit
|
## explicit
|
||||||
# go.uber.org/zap v1.9.1
|
# go.uber.org/zap v1.9.1
|
||||||
## explicit
|
## explicit
|
||||||
# golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37
|
# golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/crypto/bcrypt
|
golang.org/x/crypto/bcrypt
|
||||||
golang.org/x/crypto/blowfish
|
golang.org/x/crypto/blowfish
|
||||||
|
@ -666,7 +673,7 @@ golang.org/x/crypto/ssh/terminal
|
||||||
# golang.org/x/mod v0.2.0
|
# golang.org/x/mod v0.2.0
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/mod/sumdb/dirhash
|
golang.org/x/mod/sumdb/dirhash
|
||||||
# golang.org/x/net v0.0.0-20200301022130-244492dfa37a
|
# golang.org/x/net v0.0.0-20200602114024-627f9648deb9
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/net/context
|
golang.org/x/net/context
|
||||||
golang.org/x/net/context/ctxhttp
|
golang.org/x/net/context/ctxhttp
|
||||||
|
@ -686,7 +693,7 @@ golang.org/x/oauth2/google
|
||||||
golang.org/x/oauth2/internal
|
golang.org/x/oauth2/internal
|
||||||
golang.org/x/oauth2/jws
|
golang.org/x/oauth2/jws
|
||||||
golang.org/x/oauth2/jwt
|
golang.org/x/oauth2/jwt
|
||||||
# golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527
|
# golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/sys/cpu
|
golang.org/x/sys/cpu
|
||||||
golang.org/x/sys/unix
|
golang.org/x/sys/unix
|
||||||
|
|
Loading…
Reference in New Issue