change dep
This commit is contained in:
		
							parent
							
								
									e33c51727a
								
							
						
					
					
						commit
						80e5f0b19c
					
				
							
								
								
									
										100
									
								
								Gopkg.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								Gopkg.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,100 @@
 | 
			
		||||
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "git.trj.tw/golang/utils"
 | 
			
		||||
  packages = ["dbtool"]
 | 
			
		||||
  revision = "117c17b0294c4e46bfc8ae56791326300401b1ab"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "github.com/gin-contrib/cors"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  revision = "df6cfb7ff4a38d694dfebd0868ecb3e956171366"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "github.com/gin-contrib/sse"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  revision = "22d885f9ecc78bf4ee5d72b937e4bbcdc58e8cae"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  name = "github.com/gin-gonic/gin"
 | 
			
		||||
  packages = [
 | 
			
		||||
    ".",
 | 
			
		||||
    "binding",
 | 
			
		||||
    "render"
 | 
			
		||||
  ]
 | 
			
		||||
  revision = "d459835d2b077e44f7c9b453505ee29881d5d12d"
 | 
			
		||||
  version = "v1.2"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "github.com/go-redis/redis"
 | 
			
		||||
  packages = [
 | 
			
		||||
    ".",
 | 
			
		||||
    "internal",
 | 
			
		||||
    "internal/consistenthash",
 | 
			
		||||
    "internal/hashtag",
 | 
			
		||||
    "internal/pool",
 | 
			
		||||
    "internal/proto",
 | 
			
		||||
    "internal/singleflight",
 | 
			
		||||
    "internal/util"
 | 
			
		||||
  ]
 | 
			
		||||
  revision = "9ccc23344a52164531ed90362e2516b798e3296c"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  name = "github.com/golang/protobuf"
 | 
			
		||||
  packages = ["proto"]
 | 
			
		||||
  revision = "e09c5db296004fbe3f74490e84dcd62c3c5ddb1b"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "github.com/lib/pq"
 | 
			
		||||
  packages = [
 | 
			
		||||
    ".",
 | 
			
		||||
    "oid"
 | 
			
		||||
  ]
 | 
			
		||||
  revision = "d34b9ff171c21ad295489235aec8b6626023cd04"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "github.com/mattn/go-isatty"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  revision = "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "github.com/ugorji/go"
 | 
			
		||||
  packages = ["codec"]
 | 
			
		||||
  revision = "f3cacc17c85ecb7f1b6a9e373ee85d1480919868"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  name = "golang.org/x/crypto"
 | 
			
		||||
  packages = ["pbkdf2"]
 | 
			
		||||
  revision = "d6449816ce06963d9d136eee5a56fca5b0616e7e"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  name = "golang.org/x/sys"
 | 
			
		||||
  packages = ["unix"]
 | 
			
		||||
  revision = "b126b21c05a91c856b027c16779c12e3bf236954"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  name = "gopkg.in/go-playground/validator.v8"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  revision = "5f1438d3fca68893a817e4a66806cea46a9e4ebf"
 | 
			
		||||
  version = "v8.18.2"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  name = "gopkg.in/yaml.v2"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183"
 | 
			
		||||
  version = "v2.2.1"
 | 
			
		||||
 | 
			
		||||
[solve-meta]
 | 
			
		||||
  analyzer-name = "dep"
 | 
			
		||||
  analyzer-version = 1
 | 
			
		||||
  inputs-digest = "94b6216981dc7ea34e29c1d5aa0875f2c895760a962484d63e52f8f80486d4e1"
 | 
			
		||||
  solver-name = "gps-cdcl"
 | 
			
		||||
  solver-version = 1
 | 
			
		||||
							
								
								
									
										50
									
								
								Gopkg.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								Gopkg.toml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
			
		||||
# Gopkg.toml example
 | 
			
		||||
#
 | 
			
		||||
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
 | 
			
		||||
# for detailed Gopkg.toml documentation.
 | 
			
		||||
#
 | 
			
		||||
# required = ["github.com/user/thing/cmd/thing"]
 | 
			
		||||
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
 | 
			
		||||
#
 | 
			
		||||
# [[constraint]]
 | 
			
		||||
#   name = "github.com/user/project"
 | 
			
		||||
#   version = "1.0.0"
 | 
			
		||||
#
 | 
			
		||||
# [[constraint]]
 | 
			
		||||
#   name = "github.com/user/project2"
 | 
			
		||||
#   branch = "dev"
 | 
			
		||||
#   source = "github.com/myfork/project2"
 | 
			
		||||
#
 | 
			
		||||
# [[override]]
 | 
			
		||||
#   name = "github.com/x/y"
 | 
			
		||||
#   version = "2.4.0"
 | 
			
		||||
#
 | 
			
		||||
# [prune]
 | 
			
		||||
#   non-go = false
 | 
			
		||||
#   go-tests = true
 | 
			
		||||
#   unused-packages = true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[[constraint]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "git.trj.tw/golang/utils"
 | 
			
		||||
 | 
			
		||||
[[constraint]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "github.com/gin-contrib/cors"
 | 
			
		||||
 | 
			
		||||
[[constraint]]
 | 
			
		||||
  name = "github.com/gin-gonic/gin"
 | 
			
		||||
  version = "1.2.0"
 | 
			
		||||
 | 
			
		||||
[[constraint]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "github.com/go-redis/redis"
 | 
			
		||||
 | 
			
		||||
[[constraint]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  name = "github.com/lib/pq"
 | 
			
		||||
 | 
			
		||||
[prune]
 | 
			
		||||
  go-tests = true
 | 
			
		||||
  unused-packages = true
 | 
			
		||||
							
								
								
									
										23
									
								
								vendor/github.com/gin-contrib/cors/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								vendor/github.com/gin-contrib/cors/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
*.o
 | 
			
		||||
*.a
 | 
			
		||||
*.so
 | 
			
		||||
 | 
			
		||||
_obj
 | 
			
		||||
_test
 | 
			
		||||
 | 
			
		||||
*.[568vq]
 | 
			
		||||
[568vq].out
 | 
			
		||||
 | 
			
		||||
*.cgo1.go
 | 
			
		||||
*.cgo2.c
 | 
			
		||||
_cgo_defun.c
 | 
			
		||||
_cgo_gotypes.go
 | 
			
		||||
_cgo_export.*
 | 
			
		||||
 | 
			
		||||
_testmain.go
 | 
			
		||||
 | 
			
		||||
*.exe
 | 
			
		||||
*.test
 | 
			
		||||
*.prof
 | 
			
		||||
 | 
			
		||||
coverage.out
 | 
			
		||||
							
								
								
									
										24
									
								
								vendor/github.com/gin-contrib/cors/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								vendor/github.com/gin-contrib/cors/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
language: go
 | 
			
		||||
sudo: false
 | 
			
		||||
 | 
			
		||||
go:
 | 
			
		||||
  - 1.6.x
 | 
			
		||||
  - 1.7.x
 | 
			
		||||
  - 1.8.x
 | 
			
		||||
  - 1.9.x
 | 
			
		||||
  - 1.10.x
 | 
			
		||||
  - tip
 | 
			
		||||
 | 
			
		||||
script:
 | 
			
		||||
  - go test -v -covermode=atomic -coverprofile=coverage.out
 | 
			
		||||
 | 
			
		||||
after_success:
 | 
			
		||||
  - bash <(curl -s https://codecov.io/bash)
 | 
			
		||||
 | 
			
		||||
notifications:
 | 
			
		||||
  webhooks:
 | 
			
		||||
    urls:
 | 
			
		||||
      - https://webhooks.gitter.im/e/acc2c57482e94b44f557
 | 
			
		||||
    on_success: change
 | 
			
		||||
    on_failure: always
 | 
			
		||||
    on_start: false
 | 
			
		||||
							
								
								
									
										15
									
								
								vendor/github.com/gin-contrib/sse/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/gin-contrib/sse/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
language: go
 | 
			
		||||
sudo: false
 | 
			
		||||
go:
 | 
			
		||||
  - 1.6.4
 | 
			
		||||
  - 1.7.4
 | 
			
		||||
  - tip
 | 
			
		||||
 | 
			
		||||
git:
 | 
			
		||||
  depth: 3
 | 
			
		||||
 | 
			
		||||
script:
 | 
			
		||||
  - go test -v -covermode=count -coverprofile=coverage.out
 | 
			
		||||
 | 
			
		||||
after_success:
 | 
			
		||||
  - bash <(curl -s https://codecov.io/bash)
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/gin-gonic/gin/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/gin-gonic/gin/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
vendor/*
 | 
			
		||||
!vendor/vendor.json
 | 
			
		||||
coverage.out
 | 
			
		||||
count.out
 | 
			
		||||
							
								
								
									
										31
									
								
								vendor/github.com/gin-gonic/gin/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								vendor/github.com/gin-gonic/gin/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
language: go
 | 
			
		||||
sudo: false
 | 
			
		||||
go:
 | 
			
		||||
  - 1.6.x
 | 
			
		||||
  - 1.7.x
 | 
			
		||||
  - 1.8.x
 | 
			
		||||
  - master
 | 
			
		||||
 | 
			
		||||
git:
 | 
			
		||||
  depth: 3
 | 
			
		||||
 | 
			
		||||
install:
 | 
			
		||||
  - make install
 | 
			
		||||
 | 
			
		||||
script:
 | 
			
		||||
  - make vet
 | 
			
		||||
  - make fmt-check
 | 
			
		||||
  - make embedmd
 | 
			
		||||
  - make misspell-check
 | 
			
		||||
  - make test
 | 
			
		||||
 | 
			
		||||
after_success:
 | 
			
		||||
  - bash <(curl -s https://codecov.io/bash)
 | 
			
		||||
 | 
			
		||||
notifications:
 | 
			
		||||
  webhooks:
 | 
			
		||||
    urls:
 | 
			
		||||
      - https://webhooks.gitter.im/e/7f95bf605c4d356372f4
 | 
			
		||||
    on_success: change  # options: [always|never|change] default: always
 | 
			
		||||
    on_failure: always  # options: [always|never|change] default: always
 | 
			
		||||
    on_start: false     # default: false
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/go-redis/redis/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-redis/redis/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
*.rdb
 | 
			
		||||
testdata/*/
 | 
			
		||||
							
								
								
									
										20
									
								
								vendor/github.com/go-redis/redis/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/go-redis/redis/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
			
		||||
sudo: false
 | 
			
		||||
language: go
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  - redis-server
 | 
			
		||||
 | 
			
		||||
go:
 | 
			
		||||
  - 1.7.x
 | 
			
		||||
  - 1.8.x
 | 
			
		||||
  - 1.9.x
 | 
			
		||||
  - 1.10.x
 | 
			
		||||
  - tip
 | 
			
		||||
 | 
			
		||||
matrix:
 | 
			
		||||
  allow_failures:
 | 
			
		||||
    - go: tip
 | 
			
		||||
 | 
			
		||||
install:
 | 
			
		||||
  - go get github.com/onsi/ginkgo
 | 
			
		||||
  - go get github.com/onsi/gomega
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/golang/protobuf/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/golang/protobuf/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
# This source code refers to The Go Authors for copyright purposes.
 | 
			
		||||
# The master list of authors is in the main Go distribution,
 | 
			
		||||
# visible at http://tip.golang.org/AUTHORS.
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/golang/protobuf/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/golang/protobuf/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
# This source code was written by the Go contributors.
 | 
			
		||||
# The master list of contributors is in the main Go distribution,
 | 
			
		||||
# visible at http://tip.golang.org/CONTRIBUTORS.
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/lib/pq/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/lib/pq/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
.db
 | 
			
		||||
*.test
 | 
			
		||||
*~
 | 
			
		||||
*.swp
 | 
			
		||||
							
								
								
									
										86
									
								
								vendor/github.com/lib/pq/.travis.sh
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										86
									
								
								vendor/github.com/lib/pq/.travis.sh
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							@ -0,0 +1,86 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -eu
 | 
			
		||||
 | 
			
		||||
client_configure() {
 | 
			
		||||
	sudo chmod 600 $PQSSLCERTTEST_PATH/postgresql.key
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pgdg_repository() {
 | 
			
		||||
	local sourcelist='sources.list.d/postgresql.list'
 | 
			
		||||
 | 
			
		||||
	curl -sS 'https://www.postgresql.org/media/keys/ACCC4CF8.asc' | sudo apt-key add -
 | 
			
		||||
	echo deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main $PGVERSION | sudo tee "/etc/apt/$sourcelist"
 | 
			
		||||
	sudo apt-get -o Dir::Etc::sourcelist="$sourcelist" -o Dir::Etc::sourceparts='-' -o APT::Get::List-Cleanup='0' update
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
postgresql_configure() {
 | 
			
		||||
	sudo tee /etc/postgresql/$PGVERSION/main/pg_hba.conf > /dev/null <<-config
 | 
			
		||||
		local     all         all                               trust
 | 
			
		||||
		hostnossl all         pqgossltest 127.0.0.1/32          reject
 | 
			
		||||
		hostnossl all         pqgosslcert 127.0.0.1/32          reject
 | 
			
		||||
		hostssl   all         pqgossltest 127.0.0.1/32          trust
 | 
			
		||||
		hostssl   all         pqgosslcert 127.0.0.1/32          cert
 | 
			
		||||
		host      all         all         127.0.0.1/32          trust
 | 
			
		||||
		hostnossl all         pqgossltest ::1/128               reject
 | 
			
		||||
		hostnossl all         pqgosslcert ::1/128               reject
 | 
			
		||||
		hostssl   all         pqgossltest ::1/128               trust
 | 
			
		||||
		hostssl   all         pqgosslcert ::1/128               cert
 | 
			
		||||
		host      all         all         ::1/128               trust
 | 
			
		||||
	config
 | 
			
		||||
 | 
			
		||||
	xargs sudo install -o postgres -g postgres -m 600 -t /var/lib/postgresql/$PGVERSION/main/ <<-certificates
 | 
			
		||||
		certs/root.crt
 | 
			
		||||
		certs/server.crt
 | 
			
		||||
		certs/server.key
 | 
			
		||||
	certificates
 | 
			
		||||
 | 
			
		||||
	sort -VCu <<-versions ||
 | 
			
		||||
		$PGVERSION
 | 
			
		||||
		9.2
 | 
			
		||||
	versions
 | 
			
		||||
	sudo tee -a /etc/postgresql/$PGVERSION/main/postgresql.conf > /dev/null <<-config
 | 
			
		||||
		ssl_ca_file   = 'root.crt'
 | 
			
		||||
		ssl_cert_file = 'server.crt'
 | 
			
		||||
		ssl_key_file  = 'server.key'
 | 
			
		||||
	config
 | 
			
		||||
 | 
			
		||||
	echo 127.0.0.1 postgres | sudo tee -a /etc/hosts > /dev/null
 | 
			
		||||
 | 
			
		||||
	sudo service postgresql restart
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
postgresql_install() {
 | 
			
		||||
	xargs sudo apt-get -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confnew' install <<-packages
 | 
			
		||||
		postgresql-$PGVERSION
 | 
			
		||||
		postgresql-server-dev-$PGVERSION
 | 
			
		||||
		postgresql-contrib-$PGVERSION
 | 
			
		||||
	packages
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
postgresql_uninstall() {
 | 
			
		||||
	sudo service postgresql stop
 | 
			
		||||
	xargs sudo apt-get -y --purge remove <<-packages
 | 
			
		||||
		libpq-dev
 | 
			
		||||
		libpq5
 | 
			
		||||
		postgresql
 | 
			
		||||
		postgresql-client-common
 | 
			
		||||
		postgresql-common
 | 
			
		||||
	packages
 | 
			
		||||
	sudo rm -rf /var/lib/postgresql
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
megacheck_install() {
 | 
			
		||||
	# Lock megacheck version at $MEGACHECK_VERSION to prevent spontaneous
 | 
			
		||||
	# new error messages in old code.
 | 
			
		||||
	go get -d honnef.co/go/tools/...
 | 
			
		||||
	git -C $GOPATH/src/honnef.co/go/tools/ checkout $MEGACHECK_VERSION
 | 
			
		||||
	go install honnef.co/go/tools/cmd/megacheck
 | 
			
		||||
	megacheck --version
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
golint_install() {
 | 
			
		||||
	go get github.com/golang/lint/golint
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$1
 | 
			
		||||
							
								
								
									
										50
									
								
								vendor/github.com/lib/pq/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								vendor/github.com/lib/pq/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
			
		||||
language: go
 | 
			
		||||
 | 
			
		||||
go:
 | 
			
		||||
  - 1.8.x
 | 
			
		||||
  - 1.9.x
 | 
			
		||||
  - 1.10.x
 | 
			
		||||
  - master
 | 
			
		||||
 | 
			
		||||
sudo: true
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  global:
 | 
			
		||||
    - PGUSER=postgres
 | 
			
		||||
    - PQGOSSLTESTS=1
 | 
			
		||||
    - PQSSLCERTTEST_PATH=$PWD/certs
 | 
			
		||||
    - PGHOST=127.0.0.1
 | 
			
		||||
    - MEGACHECK_VERSION=2017.2.2
 | 
			
		||||
  matrix:
 | 
			
		||||
    - PGVERSION=10
 | 
			
		||||
    - PGVERSION=9.6
 | 
			
		||||
    - PGVERSION=9.5
 | 
			
		||||
    - PGVERSION=9.4
 | 
			
		||||
    - PGVERSION=9.3
 | 
			
		||||
    - PGVERSION=9.2
 | 
			
		||||
    - PGVERSION=9.1
 | 
			
		||||
    - PGVERSION=9.0
 | 
			
		||||
 | 
			
		||||
before_install:
 | 
			
		||||
  - ./.travis.sh postgresql_uninstall
 | 
			
		||||
  - ./.travis.sh pgdg_repository
 | 
			
		||||
  - ./.travis.sh postgresql_install
 | 
			
		||||
  - ./.travis.sh postgresql_configure
 | 
			
		||||
  - ./.travis.sh client_configure
 | 
			
		||||
  - ./.travis.sh megacheck_install
 | 
			
		||||
  - ./.travis.sh golint_install
 | 
			
		||||
  - go get golang.org/x/tools/cmd/goimports
 | 
			
		||||
 | 
			
		||||
before_script:
 | 
			
		||||
  - createdb pqgotest
 | 
			
		||||
  - createuser -DRS pqgossltest
 | 
			
		||||
  - createuser -DRS pqgosslcert
 | 
			
		||||
 | 
			
		||||
script:
 | 
			
		||||
  - >
 | 
			
		||||
    goimports -d -e $(find -name '*.go') | awk '{ print } END { exit NR == 0 ? 0 : 1 }'
 | 
			
		||||
  - go vet ./...
 | 
			
		||||
  - megacheck -go 1.8 ./...
 | 
			
		||||
  - golint ./...
 | 
			
		||||
  - PQTEST_BINARY_PARAMETERS=no  go test -race -v ./...
 | 
			
		||||
  - PQTEST_BINARY_PARAMETERS=yes go test -race -v ./...
 | 
			
		||||
							
								
								
									
										93
									
								
								vendor/github.com/lib/pq/oid/gen.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								vendor/github.com/lib/pq/oid/gen.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,93 @@
 | 
			
		||||
// +build ignore
 | 
			
		||||
 | 
			
		||||
// Generate the table of OID values
 | 
			
		||||
// Run with 'go run gen.go'.
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"database/sql"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"os/exec"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	_ "github.com/lib/pq"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// OID represent a postgres Object Identifier Type.
 | 
			
		||||
type OID struct {
 | 
			
		||||
	ID   int
 | 
			
		||||
	Type string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Name returns an upper case version of the oid type.
 | 
			
		||||
func (o OID) Name() string {
 | 
			
		||||
	return strings.ToUpper(o.Type)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	datname := os.Getenv("PGDATABASE")
 | 
			
		||||
	sslmode := os.Getenv("PGSSLMODE")
 | 
			
		||||
 | 
			
		||||
	if datname == "" {
 | 
			
		||||
		os.Setenv("PGDATABASE", "pqgotest")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if sslmode == "" {
 | 
			
		||||
		os.Setenv("PGSSLMODE", "disable")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	db, err := sql.Open("postgres", "")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	rows, err := db.Query(`
 | 
			
		||||
		SELECT typname, oid
 | 
			
		||||
		FROM pg_type WHERE oid < 10000
 | 
			
		||||
		ORDER BY oid;
 | 
			
		||||
	`)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	oids := make([]*OID, 0)
 | 
			
		||||
	for rows.Next() {
 | 
			
		||||
		var oid OID
 | 
			
		||||
		if err = rows.Scan(&oid.Type, &oid.ID); err != nil {
 | 
			
		||||
			log.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
		oids = append(oids, &oid)
 | 
			
		||||
	}
 | 
			
		||||
	if err = rows.Err(); err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	cmd := exec.Command("gofmt")
 | 
			
		||||
	cmd.Stderr = os.Stderr
 | 
			
		||||
	w, err := cmd.StdinPipe()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	f, err := os.Create("types.go")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	cmd.Stdout = f
 | 
			
		||||
	err = cmd.Start()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	fmt.Fprintln(w, "// Code generated by gen.go. DO NOT EDIT.")
 | 
			
		||||
	fmt.Fprintln(w, "\npackage oid")
 | 
			
		||||
	fmt.Fprintln(w, "const (")
 | 
			
		||||
	for _, oid := range oids {
 | 
			
		||||
		fmt.Fprintf(w, "T_%s Oid = %d\n", oid.Type, oid.ID)
 | 
			
		||||
	}
 | 
			
		||||
	fmt.Fprintln(w, ")")
 | 
			
		||||
	fmt.Fprintln(w, "var TypeName = map[Oid]string{")
 | 
			
		||||
	for _, oid := range oids {
 | 
			
		||||
		fmt.Fprintf(w, "T_%s: \"%s\",\n", oid.Type, oid.Name())
 | 
			
		||||
	}
 | 
			
		||||
	fmt.Fprintln(w, "}")
 | 
			
		||||
	w.Close()
 | 
			
		||||
	cmd.Wait()
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								vendor/github.com/mattn/go-isatty/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/mattn/go-isatty/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
language: go
 | 
			
		||||
go:
 | 
			
		||||
  - tip
 | 
			
		||||
 | 
			
		||||
os:
 | 
			
		||||
  - linux
 | 
			
		||||
  - osx
 | 
			
		||||
 | 
			
		||||
before_install:
 | 
			
		||||
  - go get github.com/mattn/goveralls
 | 
			
		||||
  - go get golang.org/x/tools/cmd/cover
 | 
			
		||||
script:
 | 
			
		||||
  - $HOME/gopath/bin/goveralls -repotoken 3gHdORO5k5ziZcWMBxnd9LrMZaJs8m9x5
 | 
			
		||||
							
								
								
									
										508
									
								
								vendor/github.com/ugorji/go/codec/xml.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										508
									
								
								vendor/github.com/ugorji/go/codec/xml.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,508 @@
 | 
			
		||||
// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a MIT license found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
// +build ignore
 | 
			
		||||
 | 
			
		||||
package codec
 | 
			
		||||
 | 
			
		||||
import "reflect"
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 | 
			
		||||
A strict Non-validating namespace-aware XML 1.0 parser and (en|de)coder.
 | 
			
		||||
 | 
			
		||||
We are attempting this due to perceived issues with encoding/xml:
 | 
			
		||||
  - Complicated. It tried to do too much, and is not as simple to use as json.
 | 
			
		||||
  - Due to over-engineering, reflection is over-used AND performance suffers:
 | 
			
		||||
    java is 6X faster:http://fabsk.eu/blog/category/informatique/dev/golang/
 | 
			
		||||
    even PYTHON performs better: http://outgoing.typepad.com/outgoing/2014/07/exploring-golang.html
 | 
			
		||||
 | 
			
		||||
codec framework will offer the following benefits
 | 
			
		||||
  - VASTLY improved performance (when using reflection-mode or codecgen)
 | 
			
		||||
  - simplicity and consistency: with the rest of the supported formats
 | 
			
		||||
  - all other benefits of codec framework (streaming, codegeneration, etc)
 | 
			
		||||
 | 
			
		||||
codec is not a drop-in replacement for encoding/xml.
 | 
			
		||||
It is a replacement, based on the simplicity and performance of codec.
 | 
			
		||||
Look at it like JAXB for Go.
 | 
			
		||||
 | 
			
		||||
Challenges:
 | 
			
		||||
  - Need to output XML preamble, with all namespaces at the right location in the output.
 | 
			
		||||
  - Each "end" block is dynamic, so we need to maintain a context-aware stack
 | 
			
		||||
  - How to decide when to use an attribute VS an element
 | 
			
		||||
  - How to handle chardata, attr, comment EXPLICITLY.
 | 
			
		||||
  - Should it output fragments?
 | 
			
		||||
    e.g. encoding a bool should just output true OR false, which is not well-formed XML.
 | 
			
		||||
 | 
			
		||||
Extend the struct tag. See representative example:
 | 
			
		||||
  type X struct {
 | 
			
		||||
    ID uint8 `codec:"http://ugorji.net/x-namespace xid id,omitempty,toarray,attr,cdata"`
 | 
			
		||||
    // format: [namespace-uri ][namespace-prefix ]local-name, ...
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
Based on this, we encode
 | 
			
		||||
  - fields as elements, BUT
 | 
			
		||||
    encode as attributes if struct tag contains ",attr" and is a scalar (bool, number or string)
 | 
			
		||||
  - text as entity-escaped text, BUT encode as CDATA if struct tag contains ",cdata".
 | 
			
		||||
 | 
			
		||||
To handle namespaces:
 | 
			
		||||
  - XMLHandle is denoted as being namespace-aware.
 | 
			
		||||
    Consequently, we WILL use the ns:name pair to encode and decode if defined, else use the plain name.
 | 
			
		||||
  - *Encoder and *Decoder know whether the Handle "prefers" namespaces.
 | 
			
		||||
  - add *Encoder.getEncName(*structFieldInfo).
 | 
			
		||||
    No one calls *structFieldInfo.indexForEncName directly anymore
 | 
			
		||||
  - OR better yet: indexForEncName is namespace-aware, and helper.go is all namespace-aware
 | 
			
		||||
    indexForEncName takes a parameter of the form namespace:local-name OR local-name
 | 
			
		||||
  - add *Decoder.getStructFieldInfo(encName string) // encName here is either like abc, or h1:nsabc
 | 
			
		||||
    by being a method on *Decoder, or maybe a method on the Handle itself.
 | 
			
		||||
    No one accesses .encName anymore
 | 
			
		||||
  - let encode.go and decode.go use these (for consistency)
 | 
			
		||||
  - only problem exists for gen.go, where we create a big switch on encName.
 | 
			
		||||
    Now, we also have to add a switch on strings.endsWith(kName, encNsName)
 | 
			
		||||
    - gen.go will need to have many more methods, and then double-on the 2 switch loops like:
 | 
			
		||||
      switch k {
 | 
			
		||||
        case "abc" : x.abc()
 | 
			
		||||
        case "def" : x.def()
 | 
			
		||||
        default {
 | 
			
		||||
          switch {
 | 
			
		||||
            case !nsAware: panic(...)
 | 
			
		||||
            case strings.endsWith(":abc"): x.abc()
 | 
			
		||||
            case strings.endsWith(":def"): x.def()
 | 
			
		||||
            default: panic(...)
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
     }
 | 
			
		||||
 | 
			
		||||
The structure below accommodates this:
 | 
			
		||||
 | 
			
		||||
  type typeInfo struct {
 | 
			
		||||
    sfi []*structFieldInfo // sorted by encName
 | 
			
		||||
    sfins // sorted by namespace
 | 
			
		||||
    sfia  // sorted, to have those with attributes at the top. Needed to write XML appropriately.
 | 
			
		||||
    sfip  // unsorted
 | 
			
		||||
  }
 | 
			
		||||
  type structFieldInfo struct {
 | 
			
		||||
    encName
 | 
			
		||||
    nsEncName
 | 
			
		||||
    ns string
 | 
			
		||||
    attr bool
 | 
			
		||||
    cdata bool
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
indexForEncName is now an internal helper function that takes a sorted array
 | 
			
		||||
(one of ti.sfins or ti.sfi). It is only used by *Encoder.getStructFieldInfo(...)
 | 
			
		||||
 | 
			
		||||
There will be a separate parser from the builder.
 | 
			
		||||
The parser will have a method: next() xmlToken method. It has lookahead support,
 | 
			
		||||
so you can pop multiple tokens, make a determination, and push them back in the order popped.
 | 
			
		||||
This will be needed to determine whether we are "nakedly" decoding a container or not.
 | 
			
		||||
The stack will be implemented using a slice and push/pop happens at the [0] element.
 | 
			
		||||
 | 
			
		||||
xmlToken has fields:
 | 
			
		||||
  - type uint8: 0 | ElementStart | ElementEnd | AttrKey | AttrVal | Text
 | 
			
		||||
  - value string
 | 
			
		||||
  - ns string
 | 
			
		||||
 | 
			
		||||
SEE: http://www.xml.com/pub/a/98/10/guide0.html?page=3#ENTDECL
 | 
			
		||||
 | 
			
		||||
The following are skipped when parsing:
 | 
			
		||||
  - External Entities (from external file)
 | 
			
		||||
  - Notation Declaration e.g. <!NOTATION GIF87A SYSTEM "GIF">
 | 
			
		||||
  - Entity Declarations & References
 | 
			
		||||
  - XML Declaration (assume UTF-8)
 | 
			
		||||
  - XML Directive i.e. <! ... >
 | 
			
		||||
  - Other Declarations: Notation, etc.
 | 
			
		||||
  - Comment
 | 
			
		||||
  - Processing Instruction
 | 
			
		||||
  - schema / DTD for validation:
 | 
			
		||||
    We are not a VALIDATING parser. Validation is done elsewhere.
 | 
			
		||||
    However, some parts of the DTD internal subset are used (SEE BELOW).
 | 
			
		||||
    For Attribute List Declarations e.g.
 | 
			
		||||
    <!ATTLIST foo:oldjoke name ID #REQUIRED label CDATA #IMPLIED status ( funny | notfunny ) 'funny' >
 | 
			
		||||
    We considered using the ATTLIST to get "default" value, but not to validate the contents. (VETOED)
 | 
			
		||||
 | 
			
		||||
The following XML features are supported
 | 
			
		||||
  - Namespace
 | 
			
		||||
  - Element
 | 
			
		||||
  - Attribute
 | 
			
		||||
  - cdata
 | 
			
		||||
  - Unicode escape
 | 
			
		||||
 | 
			
		||||
The following DTD (when as an internal sub-set) features are supported:
 | 
			
		||||
  - Internal Entities e.g.
 | 
			
		||||
    <!ELEMENT burns "ugorji is cool" > AND entities for the set: [<>&"']
 | 
			
		||||
  - Parameter entities e.g.
 | 
			
		||||
    <!ENTITY % personcontent "ugorji is cool"> <!ELEMENT burns (%personcontent;)*>
 | 
			
		||||
 | 
			
		||||
At decode time, a structure containing the following is kept
 | 
			
		||||
  - namespace mapping
 | 
			
		||||
  - default attribute values
 | 
			
		||||
  - all internal entities (<>&"' and others written in the document)
 | 
			
		||||
 | 
			
		||||
When decode starts, it parses XML namespace declarations and creates a map in the
 | 
			
		||||
xmlDecDriver. While parsing, that map continuously gets updated.
 | 
			
		||||
The only problem happens when a namespace declaration happens on the node that it defines.
 | 
			
		||||
e.g. <hn:name xmlns:hn="http://www.ugorji.net" >
 | 
			
		||||
To handle this, each Element must be fully parsed at a time,
 | 
			
		||||
even if it amounts to multiple tokens which are returned one at a time on request.
 | 
			
		||||
 | 
			
		||||
xmlns is a special attribute name.
 | 
			
		||||
  - It is used to define namespaces, including the default
 | 
			
		||||
  - It is never returned as an AttrKey or AttrVal.
 | 
			
		||||
  *We may decide later to allow user to use it e.g. you want to parse the xmlns mappings into a field.*
 | 
			
		||||
 | 
			
		||||
Number, bool, null, mapKey, etc can all be decoded from any xmlToken.
 | 
			
		||||
This accommodates map[int]string for example.
 | 
			
		||||
 | 
			
		||||
It should be possible to create a schema from the types,
 | 
			
		||||
or vice versa (generate types from schema with appropriate tags).
 | 
			
		||||
This is however out-of-scope from this parsing project.
 | 
			
		||||
 | 
			
		||||
We should write all namespace information at the first point that it is referenced in the tree,
 | 
			
		||||
and use the mapping for all child nodes and attributes. This means that state is maintained
 | 
			
		||||
at a point in the tree. This also means that calls to Decode or MustDecode will reset some state.
 | 
			
		||||
 | 
			
		||||
When decoding, it is important to keep track of entity references and default attribute values.
 | 
			
		||||
It seems these can only be stored in the DTD components. We should honor them when decoding.
 | 
			
		||||
 | 
			
		||||
Configuration for XMLHandle will look like this:
 | 
			
		||||
 | 
			
		||||
  XMLHandle
 | 
			
		||||
    DefaultNS string
 | 
			
		||||
    // Encoding:
 | 
			
		||||
    NS map[string]string // ns URI to key, used for encoding
 | 
			
		||||
    // Decoding: in case ENTITY declared in external schema or dtd, store info needed here
 | 
			
		||||
    Entities map[string]string // map of entity rep to character
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
During encode, if a namespace mapping is not defined for a namespace found on a struct,
 | 
			
		||||
then we create a mapping for it using nsN (where N is 1..1000000, and doesn't conflict
 | 
			
		||||
with any other namespace mapping).
 | 
			
		||||
 | 
			
		||||
Note that different fields in a struct can have different namespaces.
 | 
			
		||||
However, all fields will default to the namespace on the _struct field (if defined).
 | 
			
		||||
 | 
			
		||||
An XML document is a name, a map of attributes and a list of children.
 | 
			
		||||
Consequently, we cannot "DecodeNaked" into a map[string]interface{} (for example).
 | 
			
		||||
We have to "DecodeNaked" into something that resembles XML data.
 | 
			
		||||
 | 
			
		||||
To support DecodeNaked (decode into nil interface{}), we have to define some "supporting" types:
 | 
			
		||||
    type Name struct { // Preferred. Less allocations due to conversions.
 | 
			
		||||
      Local string
 | 
			
		||||
      Space string
 | 
			
		||||
    }
 | 
			
		||||
    type Element struct {
 | 
			
		||||
      Name Name
 | 
			
		||||
      Attrs map[Name]string
 | 
			
		||||
      Children []interface{} // each child is either *Element or string
 | 
			
		||||
    }
 | 
			
		||||
Only two "supporting" types are exposed for XML: Name and Element.
 | 
			
		||||
 | 
			
		||||
// ------------------
 | 
			
		||||
 | 
			
		||||
We considered 'type Name string' where Name is like "Space Local" (space-separated).
 | 
			
		||||
We decided against it, because each creation of a name would lead to
 | 
			
		||||
double allocation (first convert []byte to string, then concatenate them into a string).
 | 
			
		||||
The benefit is that it is faster to read Attrs from a map. But given that Element is a value
 | 
			
		||||
object, we want to eschew methods and have public exposed variables.
 | 
			
		||||
 | 
			
		||||
We also considered the following, where xml types were not value objects, and we used
 | 
			
		||||
intelligent accessor methods to extract information and for performance.
 | 
			
		||||
*** WE DECIDED AGAINST THIS. ***
 | 
			
		||||
    type Attr struct {
 | 
			
		||||
      Name Name
 | 
			
		||||
      Value string
 | 
			
		||||
    }
 | 
			
		||||
    // Element is a ValueObject: There are no accessor methods.
 | 
			
		||||
    // Make element self-contained.
 | 
			
		||||
    type Element struct {
 | 
			
		||||
      Name Name
 | 
			
		||||
      attrsMap map[string]string // where key is "Space Local"
 | 
			
		||||
      attrs []Attr
 | 
			
		||||
      childrenT []string
 | 
			
		||||
      childrenE []Element
 | 
			
		||||
      childrenI []int // each child is a index into T or E.
 | 
			
		||||
    }
 | 
			
		||||
    func (x *Element) child(i) interface{} // returns string or *Element
 | 
			
		||||
 | 
			
		||||
// ------------------
 | 
			
		||||
 | 
			
		||||
Per XML spec and our default handling, white space is always treated as
 | 
			
		||||
insignificant between elements, except in a text node. The xml:space='preserve'
 | 
			
		||||
attribute is ignored.
 | 
			
		||||
 | 
			
		||||
**Note: there is no xml: namespace. The xml: attributes were defined before namespaces.**
 | 
			
		||||
**So treat them as just "directives" that should be interpreted to mean something**.
 | 
			
		||||
 | 
			
		||||
On encoding, we support indenting aka prettifying markup in the same way we support it for json.
 | 
			
		||||
 | 
			
		||||
A document or element can only be encoded/decoded from/to a struct. In this mode:
 | 
			
		||||
  - struct name maps to element name (or tag-info from _struct field)
 | 
			
		||||
  - fields are mapped to child elements or attributes
 | 
			
		||||
 | 
			
		||||
A map is either encoded as attributes on current element, or as a set of child elements.
 | 
			
		||||
Maps are encoded as attributes iff their keys and values are primitives (number, bool, string).
 | 
			
		||||
 | 
			
		||||
A list is encoded as a set of child elements.
 | 
			
		||||
 | 
			
		||||
Primitives (number, bool, string) are encoded as an element, attribute or text
 | 
			
		||||
depending on the context.
 | 
			
		||||
 | 
			
		||||
Extensions must encode themselves as a text string.
 | 
			
		||||
 | 
			
		||||
Encoding is tough, specifically when encoding mappings, because we need to encode
 | 
			
		||||
as either attribute or element. To do this, we need to default to encoding as attributes,
 | 
			
		||||
and then let Encoder inform the Handle when to start encoding as nodes.
 | 
			
		||||
i.e. Encoder does something like:
 | 
			
		||||
 | 
			
		||||
    h.EncodeMapStart()
 | 
			
		||||
    h.Encode(), h.Encode(), ...
 | 
			
		||||
    h.EncodeMapNotAttrSignal() // this is not a bool, because it's a signal
 | 
			
		||||
    h.Encode(), h.Encode(), ...
 | 
			
		||||
    h.EncodeEnd()
 | 
			
		||||
 | 
			
		||||
Only XMLHandle understands this, and will set itself to start encoding as elements.
 | 
			
		||||
 | 
			
		||||
This support extends to maps. For example, if a struct field is a map, and it has
 | 
			
		||||
the struct tag signifying it should be attr, then all its fields are encoded as attributes.
 | 
			
		||||
e.g.
 | 
			
		||||
 | 
			
		||||
    type X struct {
 | 
			
		||||
       M map[string]int `codec:"m,attr"` // encode keys as attributes named
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
Question:
 | 
			
		||||
  - if encoding a map, what if map keys have spaces in them???
 | 
			
		||||
    Then they cannot be attributes or child elements. Error.
 | 
			
		||||
 | 
			
		||||
Options to consider adding later:
 | 
			
		||||
  - For attribute values, normalize by trimming beginning and ending white space,
 | 
			
		||||
    and converting every white space sequence to a single space.
 | 
			
		||||
  - ATTLIST restrictions are enforced.
 | 
			
		||||
    e.g. default value of xml:space, skipping xml:XYZ style attributes, etc.
 | 
			
		||||
  - Consider supporting NON-STRICT mode (e.g. to handle HTML parsing).
 | 
			
		||||
    Some elements e.g. br, hr, etc need not close and should be auto-closed
 | 
			
		||||
    ... (see http://www.w3.org/TR/html4/loose.dtd)
 | 
			
		||||
    An expansive set of entities are pre-defined.
 | 
			
		||||
  - Have easy way to create a HTML parser:
 | 
			
		||||
    add a HTML() method to XMLHandle, that will set Strict=false, specify AutoClose,
 | 
			
		||||
    and add HTML Entities to the list.
 | 
			
		||||
  - Support validating element/attribute XMLName before writing it.
 | 
			
		||||
    Keep this behind a flag, which is set to false by default (for performance).
 | 
			
		||||
    type XMLHandle struct {
 | 
			
		||||
      CheckName bool
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
Misc:
 | 
			
		||||
 | 
			
		||||
ROADMAP (1 weeks):
 | 
			
		||||
  - build encoder (1 day)
 | 
			
		||||
  - build decoder (based off xmlParser) (1 day)
 | 
			
		||||
  - implement xmlParser (2 days).
 | 
			
		||||
    Look at encoding/xml for inspiration.
 | 
			
		||||
  - integrate and TEST (1 days)
 | 
			
		||||
  - write article and post it (1 day)
 | 
			
		||||
 | 
			
		||||
// ---------- MORE NOTES FROM 2017-11-30 ------------
 | 
			
		||||
 | 
			
		||||
when parsing
 | 
			
		||||
- parse the attributes first
 | 
			
		||||
- then parse the nodes
 | 
			
		||||
 | 
			
		||||
basically:
 | 
			
		||||
- if encoding a field: we use the field name for the wrapper
 | 
			
		||||
- if encoding a non-field, then just use the element type name
 | 
			
		||||
 | 
			
		||||
  map[string]string ==> <map><key>abc</key><value>val</value></map>... or
 | 
			
		||||
                        <map key="abc">val</map>... OR
 | 
			
		||||
                        <key1>val1</key1><key2>val2</key2>...                <- PREFERED
 | 
			
		||||
  []string  ==> <string>v1</string><string>v2</string>...
 | 
			
		||||
  string v1 ==> <string>v1</string>
 | 
			
		||||
  bool true ==> <bool>true</bool>
 | 
			
		||||
  float 1.0 ==> <float>1.0</float>
 | 
			
		||||
  ...
 | 
			
		||||
 | 
			
		||||
  F1 map[string]string ==> <F1><key>abc</key><value>val</value></F1>... OR
 | 
			
		||||
                           <F1 key="abc">val</F1>... OR
 | 
			
		||||
                           <F1><abc>val</abc>...</F1>                        <- PREFERED
 | 
			
		||||
  F2 []string          ==> <F2>v1</F2><F2>v2</F2>...
 | 
			
		||||
  F3 bool              ==> <F3>true</F3>
 | 
			
		||||
  ...
 | 
			
		||||
 | 
			
		||||
- a scalar is encoded as:
 | 
			
		||||
  (value) of type T  ==> <T><value/></T>
 | 
			
		||||
  (value) of field F ==> <F><value/></F>
 | 
			
		||||
- A kv-pair is encoded as:
 | 
			
		||||
  (key,value) ==> <map><key><value/></key></map> OR <map key="value">
 | 
			
		||||
  (key,value) of field F ==> <F><key><value/></key></F> OR <F key="value">
 | 
			
		||||
- A map or struct is just a list of kv-pairs
 | 
			
		||||
- A list is encoded as sequences of same node e.g.
 | 
			
		||||
  <F1 key1="value11">
 | 
			
		||||
  <F1 key2="value12">
 | 
			
		||||
  <F2>value21</F2>
 | 
			
		||||
  <F2>value22</F2>
 | 
			
		||||
- we may have to singularize the field name, when entering into xml,
 | 
			
		||||
  and pluralize them when encoding.
 | 
			
		||||
- bi-directional encode->decode->encode is not a MUST.
 | 
			
		||||
  even encoding/xml cannot decode correctly what was encoded:
 | 
			
		||||
 | 
			
		||||
  see https://play.golang.org/p/224V_nyhMS
 | 
			
		||||
  func main() {
 | 
			
		||||
	fmt.Println("Hello, playground")
 | 
			
		||||
	v := []interface{}{"hello", 1, true, nil, time.Now()}
 | 
			
		||||
	s, err := xml.Marshal(v)
 | 
			
		||||
	fmt.Printf("err: %v, \ns: %s\n", err, s)
 | 
			
		||||
	var v2 []interface{}
 | 
			
		||||
	err = xml.Unmarshal(s, &v2)
 | 
			
		||||
	fmt.Printf("err: %v, \nv2: %v\n", err, v2)
 | 
			
		||||
	type T struct {
 | 
			
		||||
	    V []interface{}
 | 
			
		||||
	}
 | 
			
		||||
	v3 := T{V: v}
 | 
			
		||||
	s, err = xml.Marshal(v3)
 | 
			
		||||
	fmt.Printf("err: %v, \ns: %s\n", err, s)
 | 
			
		||||
	var v4 T
 | 
			
		||||
	err = xml.Unmarshal(s, &v4)
 | 
			
		||||
	fmt.Printf("err: %v, \nv4: %v\n", err, v4)
 | 
			
		||||
  }
 | 
			
		||||
  Output:
 | 
			
		||||
    err: <nil>,
 | 
			
		||||
    s: <string>hello</string><int>1</int><bool>true</bool><Time>2009-11-10T23:00:00Z</Time>
 | 
			
		||||
    err: <nil>,
 | 
			
		||||
    v2: [<nil>]
 | 
			
		||||
    err: <nil>,
 | 
			
		||||
    s: <T><V>hello</V><V>1</V><V>true</V><V>2009-11-10T23:00:00Z</V></T>
 | 
			
		||||
    err: <nil>,
 | 
			
		||||
    v4: {[<nil> <nil> <nil> <nil>]}
 | 
			
		||||
-
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// ----------- PARSER  -------------------
 | 
			
		||||
 | 
			
		||||
type xmlTokenType uint8
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	_ xmlTokenType = iota << 1
 | 
			
		||||
	xmlTokenElemStart
 | 
			
		||||
	xmlTokenElemEnd
 | 
			
		||||
	xmlTokenAttrKey
 | 
			
		||||
	xmlTokenAttrVal
 | 
			
		||||
	xmlTokenText
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type xmlToken struct {
 | 
			
		||||
	Type      xmlTokenType
 | 
			
		||||
	Value     string
 | 
			
		||||
	Namespace string // blank for AttrVal and Text
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type xmlParser struct {
 | 
			
		||||
	r    decReader
 | 
			
		||||
	toks []xmlToken // list of tokens.
 | 
			
		||||
	ptr  int        // ptr into the toks slice
 | 
			
		||||
	done bool       // nothing else to parse. r now returns EOF.
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *xmlParser) next() (t *xmlToken) {
 | 
			
		||||
	// once x.done, or x.ptr == len(x.toks) == 0, then return nil (to signify finish)
 | 
			
		||||
	if !x.done && len(x.toks) == 0 {
 | 
			
		||||
		x.nextTag()
 | 
			
		||||
	}
 | 
			
		||||
	// parses one element at a time (into possible many tokens)
 | 
			
		||||
	if x.ptr < len(x.toks) {
 | 
			
		||||
		t = &(x.toks[x.ptr])
 | 
			
		||||
		x.ptr++
 | 
			
		||||
		if x.ptr == len(x.toks) {
 | 
			
		||||
			x.ptr = 0
 | 
			
		||||
			x.toks = x.toks[:0]
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// nextTag will parses the next element and fill up toks.
 | 
			
		||||
// It set done flag if/once EOF is reached.
 | 
			
		||||
func (x *xmlParser) nextTag() {
 | 
			
		||||
	// TODO: implement.
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ----------- ENCODER -------------------
 | 
			
		||||
 | 
			
		||||
type xmlEncDriver struct {
 | 
			
		||||
	e  *Encoder
 | 
			
		||||
	w  encWriter
 | 
			
		||||
	h  *XMLHandle
 | 
			
		||||
	b  [64]byte // scratch
 | 
			
		||||
	bs []byte   // scratch
 | 
			
		||||
	// s  jsonStack
 | 
			
		||||
	noBuiltInTypes
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ----------- DECODER -------------------
 | 
			
		||||
 | 
			
		||||
type xmlDecDriver struct {
 | 
			
		||||
	d    *Decoder
 | 
			
		||||
	h    *XMLHandle
 | 
			
		||||
	r    decReader // *bytesDecReader decReader
 | 
			
		||||
	ct   valueType // container type. one of unset, array or map.
 | 
			
		||||
	bstr [8]byte   // scratch used for string \UXXX parsing
 | 
			
		||||
	b    [64]byte  // scratch
 | 
			
		||||
 | 
			
		||||
	// wsSkipped bool // whitespace skipped
 | 
			
		||||
 | 
			
		||||
	// s jsonStack
 | 
			
		||||
 | 
			
		||||
	noBuiltInTypes
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DecodeNaked will decode into an XMLNode
 | 
			
		||||
 | 
			
		||||
// XMLName is a value object representing a namespace-aware NAME
 | 
			
		||||
type XMLName struct {
 | 
			
		||||
	Local string
 | 
			
		||||
	Space string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// XMLNode represents a "union" of the different types of XML Nodes.
 | 
			
		||||
// Only one of fields (Text or *Element) is set.
 | 
			
		||||
type XMLNode struct {
 | 
			
		||||
	Element *Element
 | 
			
		||||
	Text    string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// XMLElement is a value object representing an fully-parsed XML element.
 | 
			
		||||
type XMLElement struct {
 | 
			
		||||
	Name  Name
 | 
			
		||||
	Attrs map[XMLName]string
 | 
			
		||||
	// Children is a list of child nodes, each being a *XMLElement or string
 | 
			
		||||
	Children []XMLNode
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ----------- HANDLE  -------------------
 | 
			
		||||
 | 
			
		||||
type XMLHandle struct {
 | 
			
		||||
	BasicHandle
 | 
			
		||||
	textEncodingType
 | 
			
		||||
 | 
			
		||||
	DefaultNS string
 | 
			
		||||
	NS        map[string]string // ns URI to key, for encoding
 | 
			
		||||
	Entities  map[string]string // entity representation to string, for encoding.
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (h *XMLHandle) newEncDriver(e *Encoder) encDriver {
 | 
			
		||||
	return &xmlEncDriver{e: e, w: e.w, h: h}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (h *XMLHandle) newDecDriver(d *Decoder) decDriver {
 | 
			
		||||
	// d := xmlDecDriver{r: r.(*bytesDecReader), h: h}
 | 
			
		||||
	hd := xmlDecDriver{d: d, r: d.r, h: h}
 | 
			
		||||
	hd.n.bytes = d.b[:]
 | 
			
		||||
	return &hd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (h *XMLHandle) SetInterfaceExt(rt reflect.Type, tag uint64, ext InterfaceExt) (err error) {
 | 
			
		||||
	return h.SetExt(rt, tag, &extWrapper{bytesExtFailer{}, ext})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ decDriver = (*xmlDecDriver)(nil)
 | 
			
		||||
var _ encDriver = (*xmlEncDriver)(nil)
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/crypto/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/crypto/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
# This source code refers to The Go Authors for copyright purposes.
 | 
			
		||||
# The master list of authors is in the main Go distribution,
 | 
			
		||||
# visible at https://tip.golang.org/AUTHORS.
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/crypto/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/crypto/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
# This source code was written by the Go contributors.
 | 
			
		||||
# The master list of contributors is in the main Go distribution,
 | 
			
		||||
# visible at https://tip.golang.org/CONTRIBUTORS.
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
# This source code refers to The Go Authors for copyright purposes.
 | 
			
		||||
# The master list of authors is in the main Go distribution,
 | 
			
		||||
# visible at http://tip.golang.org/AUTHORS.
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
# This source code was written by the Go contributors.
 | 
			
		||||
# The master list of contributors is in the main Go distribution,
 | 
			
		||||
# visible at http://tip.golang.org/CONTRIBUTORS.
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
_obj/
 | 
			
		||||
unix.test
 | 
			
		||||
							
								
								
									
										98
									
								
								vendor/golang.org/x/sys/unix/mkpost.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								vendor/golang.org/x/sys/unix/mkpost.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,98 @@
 | 
			
		||||
// Copyright 2016 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.
 | 
			
		||||
 | 
			
		||||
// +build ignore
 | 
			
		||||
 | 
			
		||||
// mkpost processes the output of cgo -godefs to
 | 
			
		||||
// modify the generated types. It is used to clean up
 | 
			
		||||
// the sys API in an architecture specific manner.
 | 
			
		||||
//
 | 
			
		||||
// mkpost is run after cgo -godefs; see README.md.
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"go/format"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"regexp"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	// Get the OS and architecture (using GOARCH_TARGET if it exists)
 | 
			
		||||
	goos := os.Getenv("GOOS")
 | 
			
		||||
	goarch := os.Getenv("GOARCH_TARGET")
 | 
			
		||||
	if goarch == "" {
 | 
			
		||||
		goarch = os.Getenv("GOARCH")
 | 
			
		||||
	}
 | 
			
		||||
	// Check that we are using the new build system if we should be.
 | 
			
		||||
	if goos == "linux" && goarch != "sparc64" {
 | 
			
		||||
		if os.Getenv("GOLANG_SYS_BUILD") != "docker" {
 | 
			
		||||
			os.Stderr.WriteString("In the new build system, mkpost should not be called directly.\n")
 | 
			
		||||
			os.Stderr.WriteString("See README.md\n")
 | 
			
		||||
			os.Exit(1)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	b, err := ioutil.ReadAll(os.Stdin)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Intentionally export __val fields in Fsid and Sigset_t
 | 
			
		||||
	valRegex := regexp.MustCompile(`type (Fsid|Sigset_t) struct {(\s+)X__val(\s+\S+\s+)}`)
 | 
			
		||||
	b = valRegex.ReplaceAll(b, []byte("type $1 struct {${2}Val$3}"))
 | 
			
		||||
 | 
			
		||||
	// If we have empty Ptrace structs, we should delete them. Only s390x emits
 | 
			
		||||
	// nonempty Ptrace structs.
 | 
			
		||||
	ptraceRexexp := regexp.MustCompile(`type Ptrace((Psw|Fpregs|Per) struct {\s*})`)
 | 
			
		||||
	b = ptraceRexexp.ReplaceAll(b, nil)
 | 
			
		||||
 | 
			
		||||
	// Replace the control_regs union with a blank identifier for now.
 | 
			
		||||
	controlRegsRegex := regexp.MustCompile(`(Control_regs)\s+\[0\]uint64`)
 | 
			
		||||
	b = controlRegsRegex.ReplaceAll(b, []byte("_ [0]uint64"))
 | 
			
		||||
 | 
			
		||||
	// Remove fields that are added by glibc
 | 
			
		||||
	// Note that this is unstable as the identifers are private.
 | 
			
		||||
	removeFieldsRegex := regexp.MustCompile(`X__glibc\S*`)
 | 
			
		||||
	b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
 | 
			
		||||
 | 
			
		||||
	// Convert [65]int8 to [65]byte in Utsname members to simplify
 | 
			
		||||
	// conversion to string; see golang.org/issue/20753
 | 
			
		||||
	convertUtsnameRegex := regexp.MustCompile(`((Sys|Node|Domain)name|Release|Version|Machine)(\s+)\[(\d+)\]u?int8`)
 | 
			
		||||
	b = convertUtsnameRegex.ReplaceAll(b, []byte("$1$3[$4]byte"))
 | 
			
		||||
 | 
			
		||||
	// Remove spare fields (e.g. in Statx_t)
 | 
			
		||||
	spareFieldsRegex := regexp.MustCompile(`X__spare\S*`)
 | 
			
		||||
	b = spareFieldsRegex.ReplaceAll(b, []byte("_"))
 | 
			
		||||
 | 
			
		||||
	// Remove cgo padding fields
 | 
			
		||||
	removePaddingFieldsRegex := regexp.MustCompile(`Pad_cgo_\d+`)
 | 
			
		||||
	b = removePaddingFieldsRegex.ReplaceAll(b, []byte("_"))
 | 
			
		||||
 | 
			
		||||
	// Remove padding, hidden, or unused fields
 | 
			
		||||
	removeFieldsRegex = regexp.MustCompile(`\bX_\S+`)
 | 
			
		||||
	b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
 | 
			
		||||
 | 
			
		||||
	// Remove the first line of warning from cgo
 | 
			
		||||
	b = b[bytes.IndexByte(b, '\n')+1:]
 | 
			
		||||
	// Modify the command in the header to include:
 | 
			
		||||
	//  mkpost, our own warning, and a build tag.
 | 
			
		||||
	replacement := fmt.Sprintf(`$1 | go run mkpost.go
 | 
			
		||||
// Code generated by the command above; see README.md. DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
// +build %s,%s`, goarch, goos)
 | 
			
		||||
	cgoCommandRegex := regexp.MustCompile(`(cgo -godefs .*)`)
 | 
			
		||||
	b = cgoCommandRegex.ReplaceAll(b, []byte(replacement))
 | 
			
		||||
 | 
			
		||||
	// gofmt
 | 
			
		||||
	b, err = format.Source(b)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	os.Stdout.Write(b)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										277
									
								
								vendor/golang.org/x/sys/unix/types_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										277
									
								
								vendor/golang.org/x/sys/unix/types_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,277 @@
 | 
			
		||||
// 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.
 | 
			
		||||
 | 
			
		||||
// +build ignore
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Input to cgo -godefs.  See README.md
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// +godefs map struct_in_addr [4]byte /* in_addr */
 | 
			
		||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
 | 
			
		||||
 | 
			
		||||
package unix
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
#define __DARWIN_UNIX03 0
 | 
			
		||||
#define KERNEL
 | 
			
		||||
#define _DARWIN_USE_64_BIT_INODE
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <poll.h>
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
#include <termios.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <mach/mach.h>
 | 
			
		||||
#include <mach/message.h>
 | 
			
		||||
#include <sys/event.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/ptrace.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <sys/select.h>
 | 
			
		||||
#include <sys/signal.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/uio.h>
 | 
			
		||||
#include <sys/un.h>
 | 
			
		||||
#include <sys/utsname.h>
 | 
			
		||||
#include <sys/wait.h>
 | 
			
		||||
#include <net/bpf.h>
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_dl.h>
 | 
			
		||||
#include <net/if_var.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <netinet/icmp6.h>
 | 
			
		||||
#include <netinet/tcp.h>
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
	sizeofPtr = sizeof(void*),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
union sockaddr_all {
 | 
			
		||||
	struct sockaddr s1;	// this one gets used for fields
 | 
			
		||||
	struct sockaddr_in s2;	// these pad it out
 | 
			
		||||
	struct sockaddr_in6 s3;
 | 
			
		||||
	struct sockaddr_un s4;
 | 
			
		||||
	struct sockaddr_dl s5;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct sockaddr_any {
 | 
			
		||||
	struct sockaddr addr;
 | 
			
		||||
	char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
import "C"
 | 
			
		||||
 | 
			
		||||
// Machine characteristics; for internal use.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	sizeofPtr      = C.sizeofPtr
 | 
			
		||||
	sizeofShort    = C.sizeof_short
 | 
			
		||||
	sizeofInt      = C.sizeof_int
 | 
			
		||||
	sizeofLong     = C.sizeof_long
 | 
			
		||||
	sizeofLongLong = C.sizeof_longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Basic types
 | 
			
		||||
 | 
			
		||||
type (
 | 
			
		||||
	_C_short     C.short
 | 
			
		||||
	_C_int       C.int
 | 
			
		||||
	_C_long      C.long
 | 
			
		||||
	_C_long_long C.longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Time
 | 
			
		||||
 | 
			
		||||
type Timespec C.struct_timespec
 | 
			
		||||
 | 
			
		||||
type Timeval C.struct_timeval
 | 
			
		||||
 | 
			
		||||
type Timeval32 C.struct_timeval32
 | 
			
		||||
 | 
			
		||||
// Processes
 | 
			
		||||
 | 
			
		||||
type Rusage C.struct_rusage
 | 
			
		||||
 | 
			
		||||
type Rlimit C.struct_rlimit
 | 
			
		||||
 | 
			
		||||
type _Gid_t C.gid_t
 | 
			
		||||
 | 
			
		||||
// Files
 | 
			
		||||
 | 
			
		||||
type Stat_t C.struct_stat64
 | 
			
		||||
 | 
			
		||||
type Statfs_t C.struct_statfs64
 | 
			
		||||
 | 
			
		||||
type Flock_t C.struct_flock
 | 
			
		||||
 | 
			
		||||
type Fstore_t C.struct_fstore
 | 
			
		||||
 | 
			
		||||
type Radvisory_t C.struct_radvisory
 | 
			
		||||
 | 
			
		||||
type Fbootstraptransfer_t C.struct_fbootstraptransfer
 | 
			
		||||
 | 
			
		||||
type Log2phys_t C.struct_log2phys
 | 
			
		||||
 | 
			
		||||
type Fsid C.struct_fsid
 | 
			
		||||
 | 
			
		||||
type Dirent C.struct_dirent
 | 
			
		||||
 | 
			
		||||
// Sockets
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet4 C.struct_sockaddr_in
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet6 C.struct_sockaddr_in6
 | 
			
		||||
 | 
			
		||||
type RawSockaddrUnix C.struct_sockaddr_un
 | 
			
		||||
 | 
			
		||||
type RawSockaddrDatalink C.struct_sockaddr_dl
 | 
			
		||||
 | 
			
		||||
type RawSockaddr C.struct_sockaddr
 | 
			
		||||
 | 
			
		||||
type RawSockaddrAny C.struct_sockaddr_any
 | 
			
		||||
 | 
			
		||||
type _Socklen C.socklen_t
 | 
			
		||||
 | 
			
		||||
type Linger C.struct_linger
 | 
			
		||||
 | 
			
		||||
type Iovec C.struct_iovec
 | 
			
		||||
 | 
			
		||||
type IPMreq C.struct_ip_mreq
 | 
			
		||||
 | 
			
		||||
type IPv6Mreq C.struct_ipv6_mreq
 | 
			
		||||
 | 
			
		||||
type Msghdr C.struct_msghdr
 | 
			
		||||
 | 
			
		||||
type Cmsghdr C.struct_cmsghdr
 | 
			
		||||
 | 
			
		||||
type Inet4Pktinfo C.struct_in_pktinfo
 | 
			
		||||
 | 
			
		||||
type Inet6Pktinfo C.struct_in6_pktinfo
 | 
			
		||||
 | 
			
		||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
 | 
			
		||||
 | 
			
		||||
type ICMPv6Filter C.struct_icmp6_filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofSockaddrInet4    = C.sizeof_struct_sockaddr_in
 | 
			
		||||
	SizeofSockaddrInet6    = C.sizeof_struct_sockaddr_in6
 | 
			
		||||
	SizeofSockaddrAny      = C.sizeof_struct_sockaddr_any
 | 
			
		||||
	SizeofSockaddrUnix     = C.sizeof_struct_sockaddr_un
 | 
			
		||||
	SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
 | 
			
		||||
	SizeofLinger           = C.sizeof_struct_linger
 | 
			
		||||
	SizeofIPMreq           = C.sizeof_struct_ip_mreq
 | 
			
		||||
	SizeofIPv6Mreq         = C.sizeof_struct_ipv6_mreq
 | 
			
		||||
	SizeofMsghdr           = C.sizeof_struct_msghdr
 | 
			
		||||
	SizeofCmsghdr          = C.sizeof_struct_cmsghdr
 | 
			
		||||
	SizeofInet4Pktinfo     = C.sizeof_struct_in_pktinfo
 | 
			
		||||
	SizeofInet6Pktinfo     = C.sizeof_struct_in6_pktinfo
 | 
			
		||||
	SizeofIPv6MTUInfo      = C.sizeof_struct_ip6_mtuinfo
 | 
			
		||||
	SizeofICMPv6Filter     = C.sizeof_struct_icmp6_filter
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Ptrace requests
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PTRACE_TRACEME = C.PT_TRACE_ME
 | 
			
		||||
	PTRACE_CONT    = C.PT_CONTINUE
 | 
			
		||||
	PTRACE_KILL    = C.PT_KILL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Events (kqueue, kevent)
 | 
			
		||||
 | 
			
		||||
type Kevent_t C.struct_kevent
 | 
			
		||||
 | 
			
		||||
// Select
 | 
			
		||||
 | 
			
		||||
type FdSet C.fd_set
 | 
			
		||||
 | 
			
		||||
// Routing and interface messages
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofIfMsghdr    = C.sizeof_struct_if_msghdr
 | 
			
		||||
	SizeofIfData      = C.sizeof_struct_if_data
 | 
			
		||||
	SizeofIfaMsghdr   = C.sizeof_struct_ifa_msghdr
 | 
			
		||||
	SizeofIfmaMsghdr  = C.sizeof_struct_ifma_msghdr
 | 
			
		||||
	SizeofIfmaMsghdr2 = C.sizeof_struct_ifma_msghdr2
 | 
			
		||||
	SizeofRtMsghdr    = C.sizeof_struct_rt_msghdr
 | 
			
		||||
	SizeofRtMetrics   = C.sizeof_struct_rt_metrics
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type IfMsghdr C.struct_if_msghdr
 | 
			
		||||
 | 
			
		||||
type IfData C.struct_if_data
 | 
			
		||||
 | 
			
		||||
type IfaMsghdr C.struct_ifa_msghdr
 | 
			
		||||
 | 
			
		||||
type IfmaMsghdr C.struct_ifma_msghdr
 | 
			
		||||
 | 
			
		||||
type IfmaMsghdr2 C.struct_ifma_msghdr2
 | 
			
		||||
 | 
			
		||||
type RtMsghdr C.struct_rt_msghdr
 | 
			
		||||
 | 
			
		||||
type RtMetrics C.struct_rt_metrics
 | 
			
		||||
 | 
			
		||||
// Berkeley packet filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofBpfVersion = C.sizeof_struct_bpf_version
 | 
			
		||||
	SizeofBpfStat    = C.sizeof_struct_bpf_stat
 | 
			
		||||
	SizeofBpfProgram = C.sizeof_struct_bpf_program
 | 
			
		||||
	SizeofBpfInsn    = C.sizeof_struct_bpf_insn
 | 
			
		||||
	SizeofBpfHdr     = C.sizeof_struct_bpf_hdr
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type BpfVersion C.struct_bpf_version
 | 
			
		||||
 | 
			
		||||
type BpfStat C.struct_bpf_stat
 | 
			
		||||
 | 
			
		||||
type BpfProgram C.struct_bpf_program
 | 
			
		||||
 | 
			
		||||
type BpfInsn C.struct_bpf_insn
 | 
			
		||||
 | 
			
		||||
type BpfHdr C.struct_bpf_hdr
 | 
			
		||||
 | 
			
		||||
// Terminal handling
 | 
			
		||||
 | 
			
		||||
type Termios C.struct_termios
 | 
			
		||||
 | 
			
		||||
type Winsize C.struct_winsize
 | 
			
		||||
 | 
			
		||||
// fchmodat-like syscalls.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	AT_FDCWD            = C.AT_FDCWD
 | 
			
		||||
	AT_REMOVEDIR        = C.AT_REMOVEDIR
 | 
			
		||||
	AT_SYMLINK_FOLLOW   = C.AT_SYMLINK_FOLLOW
 | 
			
		||||
	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// poll
 | 
			
		||||
 | 
			
		||||
type PollFd C.struct_pollfd
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	POLLERR    = C.POLLERR
 | 
			
		||||
	POLLHUP    = C.POLLHUP
 | 
			
		||||
	POLLIN     = C.POLLIN
 | 
			
		||||
	POLLNVAL   = C.POLLNVAL
 | 
			
		||||
	POLLOUT    = C.POLLOUT
 | 
			
		||||
	POLLPRI    = C.POLLPRI
 | 
			
		||||
	POLLRDBAND = C.POLLRDBAND
 | 
			
		||||
	POLLRDNORM = C.POLLRDNORM
 | 
			
		||||
	POLLWRBAND = C.POLLWRBAND
 | 
			
		||||
	POLLWRNORM = C.POLLWRNORM
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// uname
 | 
			
		||||
 | 
			
		||||
type Utsname C.struct_utsname
 | 
			
		||||
							
								
								
									
										280
									
								
								vendor/golang.org/x/sys/unix/types_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										280
									
								
								vendor/golang.org/x/sys/unix/types_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,280 @@
 | 
			
		||||
// 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.
 | 
			
		||||
 | 
			
		||||
// +build ignore
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Input to cgo -godefs.  See README.md
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// +godefs map struct_in_addr [4]byte /* in_addr */
 | 
			
		||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
 | 
			
		||||
 | 
			
		||||
package unix
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
#define KERNEL
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <poll.h>
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
#include <termios.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <sys/event.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/ptrace.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <sys/select.h>
 | 
			
		||||
#include <sys/signal.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/un.h>
 | 
			
		||||
#include <sys/utsname.h>
 | 
			
		||||
#include <sys/wait.h>
 | 
			
		||||
#include <net/bpf.h>
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_dl.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <netinet/icmp6.h>
 | 
			
		||||
#include <netinet/tcp.h>
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
	sizeofPtr = sizeof(void*),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
union sockaddr_all {
 | 
			
		||||
	struct sockaddr s1;	// this one gets used for fields
 | 
			
		||||
	struct sockaddr_in s2;	// these pad it out
 | 
			
		||||
	struct sockaddr_in6 s3;
 | 
			
		||||
	struct sockaddr_un s4;
 | 
			
		||||
	struct sockaddr_dl s5;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct sockaddr_any {
 | 
			
		||||
	struct sockaddr addr;
 | 
			
		||||
	char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
import "C"
 | 
			
		||||
 | 
			
		||||
// Machine characteristics; for internal use.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	sizeofPtr      = C.sizeofPtr
 | 
			
		||||
	sizeofShort    = C.sizeof_short
 | 
			
		||||
	sizeofInt      = C.sizeof_int
 | 
			
		||||
	sizeofLong     = C.sizeof_long
 | 
			
		||||
	sizeofLongLong = C.sizeof_longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Basic types
 | 
			
		||||
 | 
			
		||||
type (
 | 
			
		||||
	_C_short     C.short
 | 
			
		||||
	_C_int       C.int
 | 
			
		||||
	_C_long      C.long
 | 
			
		||||
	_C_long_long C.longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Time
 | 
			
		||||
 | 
			
		||||
type Timespec C.struct_timespec
 | 
			
		||||
 | 
			
		||||
type Timeval C.struct_timeval
 | 
			
		||||
 | 
			
		||||
// Processes
 | 
			
		||||
 | 
			
		||||
type Rusage C.struct_rusage
 | 
			
		||||
 | 
			
		||||
type Rlimit C.struct_rlimit
 | 
			
		||||
 | 
			
		||||
type _Gid_t C.gid_t
 | 
			
		||||
 | 
			
		||||
// Files
 | 
			
		||||
 | 
			
		||||
const ( // Directory mode bits
 | 
			
		||||
	S_IFMT   = C.S_IFMT
 | 
			
		||||
	S_IFIFO  = C.S_IFIFO
 | 
			
		||||
	S_IFCHR  = C.S_IFCHR
 | 
			
		||||
	S_IFDIR  = C.S_IFDIR
 | 
			
		||||
	S_IFBLK  = C.S_IFBLK
 | 
			
		||||
	S_IFREG  = C.S_IFREG
 | 
			
		||||
	S_IFLNK  = C.S_IFLNK
 | 
			
		||||
	S_IFSOCK = C.S_IFSOCK
 | 
			
		||||
	S_ISUID  = C.S_ISUID
 | 
			
		||||
	S_ISGID  = C.S_ISGID
 | 
			
		||||
	S_ISVTX  = C.S_ISVTX
 | 
			
		||||
	S_IRUSR  = C.S_IRUSR
 | 
			
		||||
	S_IWUSR  = C.S_IWUSR
 | 
			
		||||
	S_IXUSR  = C.S_IXUSR
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Stat_t C.struct_stat
 | 
			
		||||
 | 
			
		||||
type Statfs_t C.struct_statfs
 | 
			
		||||
 | 
			
		||||
type Flock_t C.struct_flock
 | 
			
		||||
 | 
			
		||||
type Dirent C.struct_dirent
 | 
			
		||||
 | 
			
		||||
type Fsid C.struct_fsid
 | 
			
		||||
 | 
			
		||||
// File system limits
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PathMax = C.PATH_MAX
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Sockets
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet4 C.struct_sockaddr_in
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet6 C.struct_sockaddr_in6
 | 
			
		||||
 | 
			
		||||
type RawSockaddrUnix C.struct_sockaddr_un
 | 
			
		||||
 | 
			
		||||
type RawSockaddrDatalink C.struct_sockaddr_dl
 | 
			
		||||
 | 
			
		||||
type RawSockaddr C.struct_sockaddr
 | 
			
		||||
 | 
			
		||||
type RawSockaddrAny C.struct_sockaddr_any
 | 
			
		||||
 | 
			
		||||
type _Socklen C.socklen_t
 | 
			
		||||
 | 
			
		||||
type Linger C.struct_linger
 | 
			
		||||
 | 
			
		||||
type Iovec C.struct_iovec
 | 
			
		||||
 | 
			
		||||
type IPMreq C.struct_ip_mreq
 | 
			
		||||
 | 
			
		||||
type IPv6Mreq C.struct_ipv6_mreq
 | 
			
		||||
 | 
			
		||||
type Msghdr C.struct_msghdr
 | 
			
		||||
 | 
			
		||||
type Cmsghdr C.struct_cmsghdr
 | 
			
		||||
 | 
			
		||||
type Inet6Pktinfo C.struct_in6_pktinfo
 | 
			
		||||
 | 
			
		||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
 | 
			
		||||
 | 
			
		||||
type ICMPv6Filter C.struct_icmp6_filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofSockaddrInet4    = C.sizeof_struct_sockaddr_in
 | 
			
		||||
	SizeofSockaddrInet6    = C.sizeof_struct_sockaddr_in6
 | 
			
		||||
	SizeofSockaddrAny      = C.sizeof_struct_sockaddr_any
 | 
			
		||||
	SizeofSockaddrUnix     = C.sizeof_struct_sockaddr_un
 | 
			
		||||
	SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
 | 
			
		||||
	SizeofLinger           = C.sizeof_struct_linger
 | 
			
		||||
	SizeofIPMreq           = C.sizeof_struct_ip_mreq
 | 
			
		||||
	SizeofIPv6Mreq         = C.sizeof_struct_ipv6_mreq
 | 
			
		||||
	SizeofMsghdr           = C.sizeof_struct_msghdr
 | 
			
		||||
	SizeofCmsghdr          = C.sizeof_struct_cmsghdr
 | 
			
		||||
	SizeofInet6Pktinfo     = C.sizeof_struct_in6_pktinfo
 | 
			
		||||
	SizeofIPv6MTUInfo      = C.sizeof_struct_ip6_mtuinfo
 | 
			
		||||
	SizeofICMPv6Filter     = C.sizeof_struct_icmp6_filter
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Ptrace requests
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PTRACE_TRACEME = C.PT_TRACE_ME
 | 
			
		||||
	PTRACE_CONT    = C.PT_CONTINUE
 | 
			
		||||
	PTRACE_KILL    = C.PT_KILL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Events (kqueue, kevent)
 | 
			
		||||
 | 
			
		||||
type Kevent_t C.struct_kevent
 | 
			
		||||
 | 
			
		||||
// Select
 | 
			
		||||
 | 
			
		||||
type FdSet C.fd_set
 | 
			
		||||
 | 
			
		||||
// Routing and interface messages
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofIfMsghdr         = C.sizeof_struct_if_msghdr
 | 
			
		||||
	SizeofIfData           = C.sizeof_struct_if_data
 | 
			
		||||
	SizeofIfaMsghdr        = C.sizeof_struct_ifa_msghdr
 | 
			
		||||
	SizeofIfmaMsghdr       = C.sizeof_struct_ifma_msghdr
 | 
			
		||||
	SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr
 | 
			
		||||
	SizeofRtMsghdr         = C.sizeof_struct_rt_msghdr
 | 
			
		||||
	SizeofRtMetrics        = C.sizeof_struct_rt_metrics
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type IfMsghdr C.struct_if_msghdr
 | 
			
		||||
 | 
			
		||||
type IfData C.struct_if_data
 | 
			
		||||
 | 
			
		||||
type IfaMsghdr C.struct_ifa_msghdr
 | 
			
		||||
 | 
			
		||||
type IfmaMsghdr C.struct_ifma_msghdr
 | 
			
		||||
 | 
			
		||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr
 | 
			
		||||
 | 
			
		||||
type RtMsghdr C.struct_rt_msghdr
 | 
			
		||||
 | 
			
		||||
type RtMetrics C.struct_rt_metrics
 | 
			
		||||
 | 
			
		||||
// Berkeley packet filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofBpfVersion = C.sizeof_struct_bpf_version
 | 
			
		||||
	SizeofBpfStat    = C.sizeof_struct_bpf_stat
 | 
			
		||||
	SizeofBpfProgram = C.sizeof_struct_bpf_program
 | 
			
		||||
	SizeofBpfInsn    = C.sizeof_struct_bpf_insn
 | 
			
		||||
	SizeofBpfHdr     = C.sizeof_struct_bpf_hdr
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type BpfVersion C.struct_bpf_version
 | 
			
		||||
 | 
			
		||||
type BpfStat C.struct_bpf_stat
 | 
			
		||||
 | 
			
		||||
type BpfProgram C.struct_bpf_program
 | 
			
		||||
 | 
			
		||||
type BpfInsn C.struct_bpf_insn
 | 
			
		||||
 | 
			
		||||
type BpfHdr C.struct_bpf_hdr
 | 
			
		||||
 | 
			
		||||
// Terminal handling
 | 
			
		||||
 | 
			
		||||
type Termios C.struct_termios
 | 
			
		||||
 | 
			
		||||
type Winsize C.struct_winsize
 | 
			
		||||
 | 
			
		||||
// fchmodat-like syscalls.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	AT_FDCWD            = C.AT_FDCWD
 | 
			
		||||
	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// poll
 | 
			
		||||
 | 
			
		||||
type PollFd C.struct_pollfd
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	POLLERR    = C.POLLERR
 | 
			
		||||
	POLLHUP    = C.POLLHUP
 | 
			
		||||
	POLLIN     = C.POLLIN
 | 
			
		||||
	POLLNVAL   = C.POLLNVAL
 | 
			
		||||
	POLLOUT    = C.POLLOUT
 | 
			
		||||
	POLLPRI    = C.POLLPRI
 | 
			
		||||
	POLLRDBAND = C.POLLRDBAND
 | 
			
		||||
	POLLRDNORM = C.POLLRDNORM
 | 
			
		||||
	POLLWRBAND = C.POLLWRBAND
 | 
			
		||||
	POLLWRNORM = C.POLLWRNORM
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Uname
 | 
			
		||||
 | 
			
		||||
type Utsname C.struct_utsname
 | 
			
		||||
							
								
								
									
										402
									
								
								vendor/golang.org/x/sys/unix/types_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										402
									
								
								vendor/golang.org/x/sys/unix/types_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,402 @@
 | 
			
		||||
// 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.
 | 
			
		||||
 | 
			
		||||
// +build ignore
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Input to cgo -godefs.  See README.md
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// +godefs map struct_in_addr [4]byte /* in_addr */
 | 
			
		||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
 | 
			
		||||
 | 
			
		||||
package unix
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
#define KERNEL
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <poll.h>
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
#include <termios.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <sys/capability.h>
 | 
			
		||||
#include <sys/event.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/ptrace.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <sys/select.h>
 | 
			
		||||
#include <sys/signal.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/un.h>
 | 
			
		||||
#include <sys/utsname.h>
 | 
			
		||||
#include <sys/wait.h>
 | 
			
		||||
#include <net/bpf.h>
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_dl.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <netinet/icmp6.h>
 | 
			
		||||
#include <netinet/tcp.h>
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
	sizeofPtr = sizeof(void*),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
union sockaddr_all {
 | 
			
		||||
	struct sockaddr s1;	// this one gets used for fields
 | 
			
		||||
	struct sockaddr_in s2;	// these pad it out
 | 
			
		||||
	struct sockaddr_in6 s3;
 | 
			
		||||
	struct sockaddr_un s4;
 | 
			
		||||
	struct sockaddr_dl s5;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct sockaddr_any {
 | 
			
		||||
	struct sockaddr addr;
 | 
			
		||||
	char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// This structure is a duplicate of stat on FreeBSD 8-STABLE.
 | 
			
		||||
// See /usr/include/sys/stat.h.
 | 
			
		||||
struct stat8 {
 | 
			
		||||
#undef st_atimespec	st_atim
 | 
			
		||||
#undef st_mtimespec	st_mtim
 | 
			
		||||
#undef st_ctimespec	st_ctim
 | 
			
		||||
#undef st_birthtimespec	st_birthtim
 | 
			
		||||
	__dev_t   st_dev;
 | 
			
		||||
	ino_t     st_ino;
 | 
			
		||||
	mode_t    st_mode;
 | 
			
		||||
	nlink_t   st_nlink;
 | 
			
		||||
	uid_t     st_uid;
 | 
			
		||||
	gid_t     st_gid;
 | 
			
		||||
	__dev_t   st_rdev;
 | 
			
		||||
#if __BSD_VISIBLE
 | 
			
		||||
	struct  timespec st_atimespec;
 | 
			
		||||
	struct  timespec st_mtimespec;
 | 
			
		||||
	struct  timespec st_ctimespec;
 | 
			
		||||
#else
 | 
			
		||||
	time_t    st_atime;
 | 
			
		||||
	long      __st_atimensec;
 | 
			
		||||
	time_t    st_mtime;
 | 
			
		||||
	long      __st_mtimensec;
 | 
			
		||||
	time_t    st_ctime;
 | 
			
		||||
	long      __st_ctimensec;
 | 
			
		||||
#endif
 | 
			
		||||
	off_t     st_size;
 | 
			
		||||
	blkcnt_t st_blocks;
 | 
			
		||||
	blksize_t st_blksize;
 | 
			
		||||
	fflags_t  st_flags;
 | 
			
		||||
	__uint32_t st_gen;
 | 
			
		||||
	__int32_t st_lspare;
 | 
			
		||||
#if __BSD_VISIBLE
 | 
			
		||||
	struct timespec st_birthtimespec;
 | 
			
		||||
	unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec));
 | 
			
		||||
	unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec));
 | 
			
		||||
#else
 | 
			
		||||
	time_t    st_birthtime;
 | 
			
		||||
	long      st_birthtimensec;
 | 
			
		||||
	unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec));
 | 
			
		||||
	unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec));
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// This structure is a duplicate of if_data on FreeBSD 8-STABLE.
 | 
			
		||||
// See /usr/include/net/if.h.
 | 
			
		||||
struct if_data8 {
 | 
			
		||||
	u_char  ifi_type;
 | 
			
		||||
	u_char  ifi_physical;
 | 
			
		||||
	u_char  ifi_addrlen;
 | 
			
		||||
	u_char  ifi_hdrlen;
 | 
			
		||||
	u_char  ifi_link_state;
 | 
			
		||||
	u_char  ifi_spare_char1;
 | 
			
		||||
	u_char  ifi_spare_char2;
 | 
			
		||||
	u_char  ifi_datalen;
 | 
			
		||||
	u_long  ifi_mtu;
 | 
			
		||||
	u_long  ifi_metric;
 | 
			
		||||
	u_long  ifi_baudrate;
 | 
			
		||||
	u_long  ifi_ipackets;
 | 
			
		||||
	u_long  ifi_ierrors;
 | 
			
		||||
	u_long  ifi_opackets;
 | 
			
		||||
	u_long  ifi_oerrors;
 | 
			
		||||
	u_long  ifi_collisions;
 | 
			
		||||
	u_long  ifi_ibytes;
 | 
			
		||||
	u_long  ifi_obytes;
 | 
			
		||||
	u_long  ifi_imcasts;
 | 
			
		||||
	u_long  ifi_omcasts;
 | 
			
		||||
	u_long  ifi_iqdrops;
 | 
			
		||||
	u_long  ifi_noproto;
 | 
			
		||||
	u_long  ifi_hwassist;
 | 
			
		||||
// FIXME: these are now unions, so maybe need to change definitions?
 | 
			
		||||
#undef ifi_epoch
 | 
			
		||||
	time_t  ifi_epoch;
 | 
			
		||||
#undef ifi_lastchange
 | 
			
		||||
	struct  timeval ifi_lastchange;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// This structure is a duplicate of if_msghdr on FreeBSD 8-STABLE.
 | 
			
		||||
// See /usr/include/net/if.h.
 | 
			
		||||
struct if_msghdr8 {
 | 
			
		||||
	u_short ifm_msglen;
 | 
			
		||||
	u_char  ifm_version;
 | 
			
		||||
	u_char  ifm_type;
 | 
			
		||||
	int     ifm_addrs;
 | 
			
		||||
	int     ifm_flags;
 | 
			
		||||
	u_short ifm_index;
 | 
			
		||||
	struct  if_data8 ifm_data;
 | 
			
		||||
};
 | 
			
		||||
*/
 | 
			
		||||
import "C"
 | 
			
		||||
 | 
			
		||||
// Machine characteristics; for internal use.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	sizeofPtr      = C.sizeofPtr
 | 
			
		||||
	sizeofShort    = C.sizeof_short
 | 
			
		||||
	sizeofInt      = C.sizeof_int
 | 
			
		||||
	sizeofLong     = C.sizeof_long
 | 
			
		||||
	sizeofLongLong = C.sizeof_longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Basic types
 | 
			
		||||
 | 
			
		||||
type (
 | 
			
		||||
	_C_short     C.short
 | 
			
		||||
	_C_int       C.int
 | 
			
		||||
	_C_long      C.long
 | 
			
		||||
	_C_long_long C.longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Time
 | 
			
		||||
 | 
			
		||||
type Timespec C.struct_timespec
 | 
			
		||||
 | 
			
		||||
type Timeval C.struct_timeval
 | 
			
		||||
 | 
			
		||||
// Processes
 | 
			
		||||
 | 
			
		||||
type Rusage C.struct_rusage
 | 
			
		||||
 | 
			
		||||
type Rlimit C.struct_rlimit
 | 
			
		||||
 | 
			
		||||
type _Gid_t C.gid_t
 | 
			
		||||
 | 
			
		||||
// Files
 | 
			
		||||
 | 
			
		||||
const ( // Directory mode bits
 | 
			
		||||
	S_IFMT   = C.S_IFMT
 | 
			
		||||
	S_IFIFO  = C.S_IFIFO
 | 
			
		||||
	S_IFCHR  = C.S_IFCHR
 | 
			
		||||
	S_IFDIR  = C.S_IFDIR
 | 
			
		||||
	S_IFBLK  = C.S_IFBLK
 | 
			
		||||
	S_IFREG  = C.S_IFREG
 | 
			
		||||
	S_IFLNK  = C.S_IFLNK
 | 
			
		||||
	S_IFSOCK = C.S_IFSOCK
 | 
			
		||||
	S_ISUID  = C.S_ISUID
 | 
			
		||||
	S_ISGID  = C.S_ISGID
 | 
			
		||||
	S_ISVTX  = C.S_ISVTX
 | 
			
		||||
	S_IRUSR  = C.S_IRUSR
 | 
			
		||||
	S_IWUSR  = C.S_IWUSR
 | 
			
		||||
	S_IXUSR  = C.S_IXUSR
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Stat_t C.struct_stat8
 | 
			
		||||
 | 
			
		||||
type Statfs_t C.struct_statfs
 | 
			
		||||
 | 
			
		||||
type Flock_t C.struct_flock
 | 
			
		||||
 | 
			
		||||
type Dirent C.struct_dirent
 | 
			
		||||
 | 
			
		||||
type Fsid C.struct_fsid
 | 
			
		||||
 | 
			
		||||
// File system limits
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PathMax = C.PATH_MAX
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Advice to Fadvise
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	FADV_NORMAL     = C.POSIX_FADV_NORMAL
 | 
			
		||||
	FADV_RANDOM     = C.POSIX_FADV_RANDOM
 | 
			
		||||
	FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL
 | 
			
		||||
	FADV_WILLNEED   = C.POSIX_FADV_WILLNEED
 | 
			
		||||
	FADV_DONTNEED   = C.POSIX_FADV_DONTNEED
 | 
			
		||||
	FADV_NOREUSE    = C.POSIX_FADV_NOREUSE
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Sockets
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet4 C.struct_sockaddr_in
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet6 C.struct_sockaddr_in6
 | 
			
		||||
 | 
			
		||||
type RawSockaddrUnix C.struct_sockaddr_un
 | 
			
		||||
 | 
			
		||||
type RawSockaddrDatalink C.struct_sockaddr_dl
 | 
			
		||||
 | 
			
		||||
type RawSockaddr C.struct_sockaddr
 | 
			
		||||
 | 
			
		||||
type RawSockaddrAny C.struct_sockaddr_any
 | 
			
		||||
 | 
			
		||||
type _Socklen C.socklen_t
 | 
			
		||||
 | 
			
		||||
type Linger C.struct_linger
 | 
			
		||||
 | 
			
		||||
type Iovec C.struct_iovec
 | 
			
		||||
 | 
			
		||||
type IPMreq C.struct_ip_mreq
 | 
			
		||||
 | 
			
		||||
type IPMreqn C.struct_ip_mreqn
 | 
			
		||||
 | 
			
		||||
type IPv6Mreq C.struct_ipv6_mreq
 | 
			
		||||
 | 
			
		||||
type Msghdr C.struct_msghdr
 | 
			
		||||
 | 
			
		||||
type Cmsghdr C.struct_cmsghdr
 | 
			
		||||
 | 
			
		||||
type Inet6Pktinfo C.struct_in6_pktinfo
 | 
			
		||||
 | 
			
		||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
 | 
			
		||||
 | 
			
		||||
type ICMPv6Filter C.struct_icmp6_filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofSockaddrInet4    = C.sizeof_struct_sockaddr_in
 | 
			
		||||
	SizeofSockaddrInet6    = C.sizeof_struct_sockaddr_in6
 | 
			
		||||
	SizeofSockaddrAny      = C.sizeof_struct_sockaddr_any
 | 
			
		||||
	SizeofSockaddrUnix     = C.sizeof_struct_sockaddr_un
 | 
			
		||||
	SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
 | 
			
		||||
	SizeofLinger           = C.sizeof_struct_linger
 | 
			
		||||
	SizeofIPMreq           = C.sizeof_struct_ip_mreq
 | 
			
		||||
	SizeofIPMreqn          = C.sizeof_struct_ip_mreqn
 | 
			
		||||
	SizeofIPv6Mreq         = C.sizeof_struct_ipv6_mreq
 | 
			
		||||
	SizeofMsghdr           = C.sizeof_struct_msghdr
 | 
			
		||||
	SizeofCmsghdr          = C.sizeof_struct_cmsghdr
 | 
			
		||||
	SizeofInet6Pktinfo     = C.sizeof_struct_in6_pktinfo
 | 
			
		||||
	SizeofIPv6MTUInfo      = C.sizeof_struct_ip6_mtuinfo
 | 
			
		||||
	SizeofICMPv6Filter     = C.sizeof_struct_icmp6_filter
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Ptrace requests
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PTRACE_TRACEME = C.PT_TRACE_ME
 | 
			
		||||
	PTRACE_CONT    = C.PT_CONTINUE
 | 
			
		||||
	PTRACE_KILL    = C.PT_KILL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Events (kqueue, kevent)
 | 
			
		||||
 | 
			
		||||
type Kevent_t C.struct_kevent
 | 
			
		||||
 | 
			
		||||
// Select
 | 
			
		||||
 | 
			
		||||
type FdSet C.fd_set
 | 
			
		||||
 | 
			
		||||
// Routing and interface messages
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	sizeofIfMsghdr         = C.sizeof_struct_if_msghdr
 | 
			
		||||
	SizeofIfMsghdr         = C.sizeof_struct_if_msghdr8
 | 
			
		||||
	sizeofIfData           = C.sizeof_struct_if_data
 | 
			
		||||
	SizeofIfData           = C.sizeof_struct_if_data8
 | 
			
		||||
	SizeofIfaMsghdr        = C.sizeof_struct_ifa_msghdr
 | 
			
		||||
	SizeofIfmaMsghdr       = C.sizeof_struct_ifma_msghdr
 | 
			
		||||
	SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr
 | 
			
		||||
	SizeofRtMsghdr         = C.sizeof_struct_rt_msghdr
 | 
			
		||||
	SizeofRtMetrics        = C.sizeof_struct_rt_metrics
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type ifMsghdr C.struct_if_msghdr
 | 
			
		||||
 | 
			
		||||
type IfMsghdr C.struct_if_msghdr8
 | 
			
		||||
 | 
			
		||||
type ifData C.struct_if_data
 | 
			
		||||
 | 
			
		||||
type IfData C.struct_if_data8
 | 
			
		||||
 | 
			
		||||
type IfaMsghdr C.struct_ifa_msghdr
 | 
			
		||||
 | 
			
		||||
type IfmaMsghdr C.struct_ifma_msghdr
 | 
			
		||||
 | 
			
		||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr
 | 
			
		||||
 | 
			
		||||
type RtMsghdr C.struct_rt_msghdr
 | 
			
		||||
 | 
			
		||||
type RtMetrics C.struct_rt_metrics
 | 
			
		||||
 | 
			
		||||
// Berkeley packet filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofBpfVersion    = C.sizeof_struct_bpf_version
 | 
			
		||||
	SizeofBpfStat       = C.sizeof_struct_bpf_stat
 | 
			
		||||
	SizeofBpfZbuf       = C.sizeof_struct_bpf_zbuf
 | 
			
		||||
	SizeofBpfProgram    = C.sizeof_struct_bpf_program
 | 
			
		||||
	SizeofBpfInsn       = C.sizeof_struct_bpf_insn
 | 
			
		||||
	SizeofBpfHdr        = C.sizeof_struct_bpf_hdr
 | 
			
		||||
	SizeofBpfZbufHeader = C.sizeof_struct_bpf_zbuf_header
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type BpfVersion C.struct_bpf_version
 | 
			
		||||
 | 
			
		||||
type BpfStat C.struct_bpf_stat
 | 
			
		||||
 | 
			
		||||
type BpfZbuf C.struct_bpf_zbuf
 | 
			
		||||
 | 
			
		||||
type BpfProgram C.struct_bpf_program
 | 
			
		||||
 | 
			
		||||
type BpfInsn C.struct_bpf_insn
 | 
			
		||||
 | 
			
		||||
type BpfHdr C.struct_bpf_hdr
 | 
			
		||||
 | 
			
		||||
type BpfZbufHeader C.struct_bpf_zbuf_header
 | 
			
		||||
 | 
			
		||||
// Terminal handling
 | 
			
		||||
 | 
			
		||||
type Termios C.struct_termios
 | 
			
		||||
 | 
			
		||||
type Winsize C.struct_winsize
 | 
			
		||||
 | 
			
		||||
// fchmodat-like syscalls.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	AT_FDCWD            = C.AT_FDCWD
 | 
			
		||||
	AT_REMOVEDIR        = C.AT_REMOVEDIR
 | 
			
		||||
	AT_SYMLINK_FOLLOW   = C.AT_SYMLINK_FOLLOW
 | 
			
		||||
	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// poll
 | 
			
		||||
 | 
			
		||||
type PollFd C.struct_pollfd
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	POLLERR      = C.POLLERR
 | 
			
		||||
	POLLHUP      = C.POLLHUP
 | 
			
		||||
	POLLIN       = C.POLLIN
 | 
			
		||||
	POLLINIGNEOF = C.POLLINIGNEOF
 | 
			
		||||
	POLLNVAL     = C.POLLNVAL
 | 
			
		||||
	POLLOUT      = C.POLLOUT
 | 
			
		||||
	POLLPRI      = C.POLLPRI
 | 
			
		||||
	POLLRDBAND   = C.POLLRDBAND
 | 
			
		||||
	POLLRDNORM   = C.POLLRDNORM
 | 
			
		||||
	POLLWRBAND   = C.POLLWRBAND
 | 
			
		||||
	POLLWRNORM   = C.POLLWRNORM
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Capabilities
 | 
			
		||||
 | 
			
		||||
type CapRights C.struct_cap_rights
 | 
			
		||||
 | 
			
		||||
// Uname
 | 
			
		||||
 | 
			
		||||
type Utsname C.struct_utsname
 | 
			
		||||
							
								
								
									
										281
									
								
								vendor/golang.org/x/sys/unix/types_netbsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										281
									
								
								vendor/golang.org/x/sys/unix/types_netbsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,281 @@
 | 
			
		||||
// 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.
 | 
			
		||||
 | 
			
		||||
// +build ignore
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Input to cgo -godefs.  See README.md
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// +godefs map struct_in_addr [4]byte /* in_addr */
 | 
			
		||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
 | 
			
		||||
 | 
			
		||||
package unix
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
#define KERNEL
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <poll.h>
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
#include <termios.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/event.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#include <sys/ptrace.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <sys/select.h>
 | 
			
		||||
#include <sys/signal.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
#include <sys/sysctl.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <sys/uio.h>
 | 
			
		||||
#include <sys/un.h>
 | 
			
		||||
#include <sys/utsname.h>
 | 
			
		||||
#include <sys/wait.h>
 | 
			
		||||
#include <net/bpf.h>
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_dl.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <netinet/icmp6.h>
 | 
			
		||||
#include <netinet/tcp.h>
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
	sizeofPtr = sizeof(void*),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
union sockaddr_all {
 | 
			
		||||
	struct sockaddr s1;	// this one gets used for fields
 | 
			
		||||
	struct sockaddr_in s2;	// these pad it out
 | 
			
		||||
	struct sockaddr_in6 s3;
 | 
			
		||||
	struct sockaddr_un s4;
 | 
			
		||||
	struct sockaddr_dl s5;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct sockaddr_any {
 | 
			
		||||
	struct sockaddr addr;
 | 
			
		||||
	char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
import "C"
 | 
			
		||||
 | 
			
		||||
// Machine characteristics; for internal use.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	sizeofPtr      = C.sizeofPtr
 | 
			
		||||
	sizeofShort    = C.sizeof_short
 | 
			
		||||
	sizeofInt      = C.sizeof_int
 | 
			
		||||
	sizeofLong     = C.sizeof_long
 | 
			
		||||
	sizeofLongLong = C.sizeof_longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Basic types
 | 
			
		||||
 | 
			
		||||
type (
 | 
			
		||||
	_C_short     C.short
 | 
			
		||||
	_C_int       C.int
 | 
			
		||||
	_C_long      C.long
 | 
			
		||||
	_C_long_long C.longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Time
 | 
			
		||||
 | 
			
		||||
type Timespec C.struct_timespec
 | 
			
		||||
 | 
			
		||||
type Timeval C.struct_timeval
 | 
			
		||||
 | 
			
		||||
// Processes
 | 
			
		||||
 | 
			
		||||
type Rusage C.struct_rusage
 | 
			
		||||
 | 
			
		||||
type Rlimit C.struct_rlimit
 | 
			
		||||
 | 
			
		||||
type _Gid_t C.gid_t
 | 
			
		||||
 | 
			
		||||
// Files
 | 
			
		||||
 | 
			
		||||
type Stat_t C.struct_stat
 | 
			
		||||
 | 
			
		||||
type Statfs_t C.struct_statfs
 | 
			
		||||
 | 
			
		||||
type Flock_t C.struct_flock
 | 
			
		||||
 | 
			
		||||
type Dirent C.struct_dirent
 | 
			
		||||
 | 
			
		||||
type Fsid C.fsid_t
 | 
			
		||||
 | 
			
		||||
// File system limits
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PathMax = C.PATH_MAX
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Advice to Fadvise
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	FADV_NORMAL     = C.POSIX_FADV_NORMAL
 | 
			
		||||
	FADV_RANDOM     = C.POSIX_FADV_RANDOM
 | 
			
		||||
	FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL
 | 
			
		||||
	FADV_WILLNEED   = C.POSIX_FADV_WILLNEED
 | 
			
		||||
	FADV_DONTNEED   = C.POSIX_FADV_DONTNEED
 | 
			
		||||
	FADV_NOREUSE    = C.POSIX_FADV_NOREUSE
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Sockets
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet4 C.struct_sockaddr_in
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet6 C.struct_sockaddr_in6
 | 
			
		||||
 | 
			
		||||
type RawSockaddrUnix C.struct_sockaddr_un
 | 
			
		||||
 | 
			
		||||
type RawSockaddrDatalink C.struct_sockaddr_dl
 | 
			
		||||
 | 
			
		||||
type RawSockaddr C.struct_sockaddr
 | 
			
		||||
 | 
			
		||||
type RawSockaddrAny C.struct_sockaddr_any
 | 
			
		||||
 | 
			
		||||
type _Socklen C.socklen_t
 | 
			
		||||
 | 
			
		||||
type Linger C.struct_linger
 | 
			
		||||
 | 
			
		||||
type Iovec C.struct_iovec
 | 
			
		||||
 | 
			
		||||
type IPMreq C.struct_ip_mreq
 | 
			
		||||
 | 
			
		||||
type IPv6Mreq C.struct_ipv6_mreq
 | 
			
		||||
 | 
			
		||||
type Msghdr C.struct_msghdr
 | 
			
		||||
 | 
			
		||||
type Cmsghdr C.struct_cmsghdr
 | 
			
		||||
 | 
			
		||||
type Inet6Pktinfo C.struct_in6_pktinfo
 | 
			
		||||
 | 
			
		||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
 | 
			
		||||
 | 
			
		||||
type ICMPv6Filter C.struct_icmp6_filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofSockaddrInet4    = C.sizeof_struct_sockaddr_in
 | 
			
		||||
	SizeofSockaddrInet6    = C.sizeof_struct_sockaddr_in6
 | 
			
		||||
	SizeofSockaddrAny      = C.sizeof_struct_sockaddr_any
 | 
			
		||||
	SizeofSockaddrUnix     = C.sizeof_struct_sockaddr_un
 | 
			
		||||
	SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
 | 
			
		||||
	SizeofLinger           = C.sizeof_struct_linger
 | 
			
		||||
	SizeofIPMreq           = C.sizeof_struct_ip_mreq
 | 
			
		||||
	SizeofIPv6Mreq         = C.sizeof_struct_ipv6_mreq
 | 
			
		||||
	SizeofMsghdr           = C.sizeof_struct_msghdr
 | 
			
		||||
	SizeofCmsghdr          = C.sizeof_struct_cmsghdr
 | 
			
		||||
	SizeofInet6Pktinfo     = C.sizeof_struct_in6_pktinfo
 | 
			
		||||
	SizeofIPv6MTUInfo      = C.sizeof_struct_ip6_mtuinfo
 | 
			
		||||
	SizeofICMPv6Filter     = C.sizeof_struct_icmp6_filter
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Ptrace requests
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PTRACE_TRACEME = C.PT_TRACE_ME
 | 
			
		||||
	PTRACE_CONT    = C.PT_CONTINUE
 | 
			
		||||
	PTRACE_KILL    = C.PT_KILL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Events (kqueue, kevent)
 | 
			
		||||
 | 
			
		||||
type Kevent_t C.struct_kevent
 | 
			
		||||
 | 
			
		||||
// Select
 | 
			
		||||
 | 
			
		||||
type FdSet C.fd_set
 | 
			
		||||
 | 
			
		||||
// Routing and interface messages
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofIfMsghdr         = C.sizeof_struct_if_msghdr
 | 
			
		||||
	SizeofIfData           = C.sizeof_struct_if_data
 | 
			
		||||
	SizeofIfaMsghdr        = C.sizeof_struct_ifa_msghdr
 | 
			
		||||
	SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr
 | 
			
		||||
	SizeofRtMsghdr         = C.sizeof_struct_rt_msghdr
 | 
			
		||||
	SizeofRtMetrics        = C.sizeof_struct_rt_metrics
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type IfMsghdr C.struct_if_msghdr
 | 
			
		||||
 | 
			
		||||
type IfData C.struct_if_data
 | 
			
		||||
 | 
			
		||||
type IfaMsghdr C.struct_ifa_msghdr
 | 
			
		||||
 | 
			
		||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr
 | 
			
		||||
 | 
			
		||||
type RtMsghdr C.struct_rt_msghdr
 | 
			
		||||
 | 
			
		||||
type RtMetrics C.struct_rt_metrics
 | 
			
		||||
 | 
			
		||||
type Mclpool C.struct_mclpool
 | 
			
		||||
 | 
			
		||||
// Berkeley packet filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofBpfVersion = C.sizeof_struct_bpf_version
 | 
			
		||||
	SizeofBpfStat    = C.sizeof_struct_bpf_stat
 | 
			
		||||
	SizeofBpfProgram = C.sizeof_struct_bpf_program
 | 
			
		||||
	SizeofBpfInsn    = C.sizeof_struct_bpf_insn
 | 
			
		||||
	SizeofBpfHdr     = C.sizeof_struct_bpf_hdr
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type BpfVersion C.struct_bpf_version
 | 
			
		||||
 | 
			
		||||
type BpfStat C.struct_bpf_stat
 | 
			
		||||
 | 
			
		||||
type BpfProgram C.struct_bpf_program
 | 
			
		||||
 | 
			
		||||
type BpfInsn C.struct_bpf_insn
 | 
			
		||||
 | 
			
		||||
type BpfHdr C.struct_bpf_hdr
 | 
			
		||||
 | 
			
		||||
type BpfTimeval C.struct_bpf_timeval
 | 
			
		||||
 | 
			
		||||
// Terminal handling
 | 
			
		||||
 | 
			
		||||
type Termios C.struct_termios
 | 
			
		||||
 | 
			
		||||
type Winsize C.struct_winsize
 | 
			
		||||
 | 
			
		||||
// fchmodat-like syscalls.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	AT_FDCWD            = C.AT_FDCWD
 | 
			
		||||
	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// poll
 | 
			
		||||
 | 
			
		||||
type PollFd C.struct_pollfd
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	POLLERR    = C.POLLERR
 | 
			
		||||
	POLLHUP    = C.POLLHUP
 | 
			
		||||
	POLLIN     = C.POLLIN
 | 
			
		||||
	POLLNVAL   = C.POLLNVAL
 | 
			
		||||
	POLLOUT    = C.POLLOUT
 | 
			
		||||
	POLLPRI    = C.POLLPRI
 | 
			
		||||
	POLLRDBAND = C.POLLRDBAND
 | 
			
		||||
	POLLRDNORM = C.POLLRDNORM
 | 
			
		||||
	POLLWRBAND = C.POLLWRBAND
 | 
			
		||||
	POLLWRNORM = C.POLLWRNORM
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Sysctl
 | 
			
		||||
 | 
			
		||||
type Sysctlnode C.struct_sysctlnode
 | 
			
		||||
 | 
			
		||||
// Uname
 | 
			
		||||
 | 
			
		||||
type Utsname C.struct_utsname
 | 
			
		||||
							
								
								
									
										282
									
								
								vendor/golang.org/x/sys/unix/types_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										282
									
								
								vendor/golang.org/x/sys/unix/types_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,282 @@
 | 
			
		||||
// 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.
 | 
			
		||||
 | 
			
		||||
// +build ignore
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Input to cgo -godefs.  See README.md
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// +godefs map struct_in_addr [4]byte /* in_addr */
 | 
			
		||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
 | 
			
		||||
 | 
			
		||||
package unix
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
#define KERNEL
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <poll.h>
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
#include <termios.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/event.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#include <sys/ptrace.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <sys/select.h>
 | 
			
		||||
#include <sys/signal.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <sys/uio.h>
 | 
			
		||||
#include <sys/un.h>
 | 
			
		||||
#include <sys/utsname.h>
 | 
			
		||||
#include <sys/wait.h>
 | 
			
		||||
#include <net/bpf.h>
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_dl.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <netinet/icmp6.h>
 | 
			
		||||
#include <netinet/tcp.h>
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
	sizeofPtr = sizeof(void*),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
union sockaddr_all {
 | 
			
		||||
	struct sockaddr s1;	// this one gets used for fields
 | 
			
		||||
	struct sockaddr_in s2;	// these pad it out
 | 
			
		||||
	struct sockaddr_in6 s3;
 | 
			
		||||
	struct sockaddr_un s4;
 | 
			
		||||
	struct sockaddr_dl s5;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct sockaddr_any {
 | 
			
		||||
	struct sockaddr addr;
 | 
			
		||||
	char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
import "C"
 | 
			
		||||
 | 
			
		||||
// Machine characteristics; for internal use.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	sizeofPtr      = C.sizeofPtr
 | 
			
		||||
	sizeofShort    = C.sizeof_short
 | 
			
		||||
	sizeofInt      = C.sizeof_int
 | 
			
		||||
	sizeofLong     = C.sizeof_long
 | 
			
		||||
	sizeofLongLong = C.sizeof_longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Basic types
 | 
			
		||||
 | 
			
		||||
type (
 | 
			
		||||
	_C_short     C.short
 | 
			
		||||
	_C_int       C.int
 | 
			
		||||
	_C_long      C.long
 | 
			
		||||
	_C_long_long C.longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Time
 | 
			
		||||
 | 
			
		||||
type Timespec C.struct_timespec
 | 
			
		||||
 | 
			
		||||
type Timeval C.struct_timeval
 | 
			
		||||
 | 
			
		||||
// Processes
 | 
			
		||||
 | 
			
		||||
type Rusage C.struct_rusage
 | 
			
		||||
 | 
			
		||||
type Rlimit C.struct_rlimit
 | 
			
		||||
 | 
			
		||||
type _Gid_t C.gid_t
 | 
			
		||||
 | 
			
		||||
// Files
 | 
			
		||||
 | 
			
		||||
const ( // Directory mode bits
 | 
			
		||||
	S_IFMT   = C.S_IFMT
 | 
			
		||||
	S_IFIFO  = C.S_IFIFO
 | 
			
		||||
	S_IFCHR  = C.S_IFCHR
 | 
			
		||||
	S_IFDIR  = C.S_IFDIR
 | 
			
		||||
	S_IFBLK  = C.S_IFBLK
 | 
			
		||||
	S_IFREG  = C.S_IFREG
 | 
			
		||||
	S_IFLNK  = C.S_IFLNK
 | 
			
		||||
	S_IFSOCK = C.S_IFSOCK
 | 
			
		||||
	S_ISUID  = C.S_ISUID
 | 
			
		||||
	S_ISGID  = C.S_ISGID
 | 
			
		||||
	S_ISVTX  = C.S_ISVTX
 | 
			
		||||
	S_IRUSR  = C.S_IRUSR
 | 
			
		||||
	S_IWUSR  = C.S_IWUSR
 | 
			
		||||
	S_IXUSR  = C.S_IXUSR
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Stat_t C.struct_stat
 | 
			
		||||
 | 
			
		||||
type Statfs_t C.struct_statfs
 | 
			
		||||
 | 
			
		||||
type Flock_t C.struct_flock
 | 
			
		||||
 | 
			
		||||
type Dirent C.struct_dirent
 | 
			
		||||
 | 
			
		||||
type Fsid C.fsid_t
 | 
			
		||||
 | 
			
		||||
// File system limits
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PathMax = C.PATH_MAX
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Sockets
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet4 C.struct_sockaddr_in
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet6 C.struct_sockaddr_in6
 | 
			
		||||
 | 
			
		||||
type RawSockaddrUnix C.struct_sockaddr_un
 | 
			
		||||
 | 
			
		||||
type RawSockaddrDatalink C.struct_sockaddr_dl
 | 
			
		||||
 | 
			
		||||
type RawSockaddr C.struct_sockaddr
 | 
			
		||||
 | 
			
		||||
type RawSockaddrAny C.struct_sockaddr_any
 | 
			
		||||
 | 
			
		||||
type _Socklen C.socklen_t
 | 
			
		||||
 | 
			
		||||
type Linger C.struct_linger
 | 
			
		||||
 | 
			
		||||
type Iovec C.struct_iovec
 | 
			
		||||
 | 
			
		||||
type IPMreq C.struct_ip_mreq
 | 
			
		||||
 | 
			
		||||
type IPv6Mreq C.struct_ipv6_mreq
 | 
			
		||||
 | 
			
		||||
type Msghdr C.struct_msghdr
 | 
			
		||||
 | 
			
		||||
type Cmsghdr C.struct_cmsghdr
 | 
			
		||||
 | 
			
		||||
type Inet6Pktinfo C.struct_in6_pktinfo
 | 
			
		||||
 | 
			
		||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
 | 
			
		||||
 | 
			
		||||
type ICMPv6Filter C.struct_icmp6_filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofSockaddrInet4    = C.sizeof_struct_sockaddr_in
 | 
			
		||||
	SizeofSockaddrInet6    = C.sizeof_struct_sockaddr_in6
 | 
			
		||||
	SizeofSockaddrAny      = C.sizeof_struct_sockaddr_any
 | 
			
		||||
	SizeofSockaddrUnix     = C.sizeof_struct_sockaddr_un
 | 
			
		||||
	SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
 | 
			
		||||
	SizeofLinger           = C.sizeof_struct_linger
 | 
			
		||||
	SizeofIPMreq           = C.sizeof_struct_ip_mreq
 | 
			
		||||
	SizeofIPv6Mreq         = C.sizeof_struct_ipv6_mreq
 | 
			
		||||
	SizeofMsghdr           = C.sizeof_struct_msghdr
 | 
			
		||||
	SizeofCmsghdr          = C.sizeof_struct_cmsghdr
 | 
			
		||||
	SizeofInet6Pktinfo     = C.sizeof_struct_in6_pktinfo
 | 
			
		||||
	SizeofIPv6MTUInfo      = C.sizeof_struct_ip6_mtuinfo
 | 
			
		||||
	SizeofICMPv6Filter     = C.sizeof_struct_icmp6_filter
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Ptrace requests
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PTRACE_TRACEME = C.PT_TRACE_ME
 | 
			
		||||
	PTRACE_CONT    = C.PT_CONTINUE
 | 
			
		||||
	PTRACE_KILL    = C.PT_KILL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Events (kqueue, kevent)
 | 
			
		||||
 | 
			
		||||
type Kevent_t C.struct_kevent
 | 
			
		||||
 | 
			
		||||
// Select
 | 
			
		||||
 | 
			
		||||
type FdSet C.fd_set
 | 
			
		||||
 | 
			
		||||
// Routing and interface messages
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofIfMsghdr         = C.sizeof_struct_if_msghdr
 | 
			
		||||
	SizeofIfData           = C.sizeof_struct_if_data
 | 
			
		||||
	SizeofIfaMsghdr        = C.sizeof_struct_ifa_msghdr
 | 
			
		||||
	SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr
 | 
			
		||||
	SizeofRtMsghdr         = C.sizeof_struct_rt_msghdr
 | 
			
		||||
	SizeofRtMetrics        = C.sizeof_struct_rt_metrics
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type IfMsghdr C.struct_if_msghdr
 | 
			
		||||
 | 
			
		||||
type IfData C.struct_if_data
 | 
			
		||||
 | 
			
		||||
type IfaMsghdr C.struct_ifa_msghdr
 | 
			
		||||
 | 
			
		||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr
 | 
			
		||||
 | 
			
		||||
type RtMsghdr C.struct_rt_msghdr
 | 
			
		||||
 | 
			
		||||
type RtMetrics C.struct_rt_metrics
 | 
			
		||||
 | 
			
		||||
type Mclpool C.struct_mclpool
 | 
			
		||||
 | 
			
		||||
// Berkeley packet filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofBpfVersion = C.sizeof_struct_bpf_version
 | 
			
		||||
	SizeofBpfStat    = C.sizeof_struct_bpf_stat
 | 
			
		||||
	SizeofBpfProgram = C.sizeof_struct_bpf_program
 | 
			
		||||
	SizeofBpfInsn    = C.sizeof_struct_bpf_insn
 | 
			
		||||
	SizeofBpfHdr     = C.sizeof_struct_bpf_hdr
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type BpfVersion C.struct_bpf_version
 | 
			
		||||
 | 
			
		||||
type BpfStat C.struct_bpf_stat
 | 
			
		||||
 | 
			
		||||
type BpfProgram C.struct_bpf_program
 | 
			
		||||
 | 
			
		||||
type BpfInsn C.struct_bpf_insn
 | 
			
		||||
 | 
			
		||||
type BpfHdr C.struct_bpf_hdr
 | 
			
		||||
 | 
			
		||||
type BpfTimeval C.struct_bpf_timeval
 | 
			
		||||
 | 
			
		||||
// Terminal handling
 | 
			
		||||
 | 
			
		||||
type Termios C.struct_termios
 | 
			
		||||
 | 
			
		||||
type Winsize C.struct_winsize
 | 
			
		||||
 | 
			
		||||
// fchmodat-like syscalls.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	AT_FDCWD            = C.AT_FDCWD
 | 
			
		||||
	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// poll
 | 
			
		||||
 | 
			
		||||
type PollFd C.struct_pollfd
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	POLLERR    = C.POLLERR
 | 
			
		||||
	POLLHUP    = C.POLLHUP
 | 
			
		||||
	POLLIN     = C.POLLIN
 | 
			
		||||
	POLLNVAL   = C.POLLNVAL
 | 
			
		||||
	POLLOUT    = C.POLLOUT
 | 
			
		||||
	POLLPRI    = C.POLLPRI
 | 
			
		||||
	POLLRDBAND = C.POLLRDBAND
 | 
			
		||||
	POLLRDNORM = C.POLLRDNORM
 | 
			
		||||
	POLLWRBAND = C.POLLWRBAND
 | 
			
		||||
	POLLWRNORM = C.POLLWRNORM
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Uname
 | 
			
		||||
 | 
			
		||||
type Utsname C.struct_utsname
 | 
			
		||||
							
								
								
									
										283
									
								
								vendor/golang.org/x/sys/unix/types_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										283
									
								
								vendor/golang.org/x/sys/unix/types_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,283 @@
 | 
			
		||||
// 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.
 | 
			
		||||
 | 
			
		||||
// +build ignore
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Input to cgo -godefs.  See README.md
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// +godefs map struct_in_addr [4]byte /* in_addr */
 | 
			
		||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
 | 
			
		||||
 | 
			
		||||
package unix
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
#define KERNEL
 | 
			
		||||
// These defines ensure that builds done on newer versions of Solaris are
 | 
			
		||||
// backwards-compatible with older versions of Solaris and
 | 
			
		||||
// OpenSolaris-based derivatives.
 | 
			
		||||
#define __USE_SUNOS_SOCKETS__          // msghdr
 | 
			
		||||
#define __USE_LEGACY_PROTOTYPES__      // iovec
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <netdb.h>
 | 
			
		||||
#include <limits.h>
 | 
			
		||||
#include <poll.h>
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
#include <termios.h>
 | 
			
		||||
#include <termio.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <sys/select.h>
 | 
			
		||||
#include <sys/signal.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
#include <sys/statvfs.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <sys/times.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/utsname.h>
 | 
			
		||||
#include <sys/un.h>
 | 
			
		||||
#include <sys/wait.h>
 | 
			
		||||
#include <net/bpf.h>
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_dl.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <netinet/icmp6.h>
 | 
			
		||||
#include <netinet/tcp.h>
 | 
			
		||||
#include <ustat.h>
 | 
			
		||||
#include <utime.h>
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
	sizeofPtr = sizeof(void*),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
union sockaddr_all {
 | 
			
		||||
	struct sockaddr s1;	// this one gets used for fields
 | 
			
		||||
	struct sockaddr_in s2;	// these pad it out
 | 
			
		||||
	struct sockaddr_in6 s3;
 | 
			
		||||
	struct sockaddr_un s4;
 | 
			
		||||
	struct sockaddr_dl s5;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct sockaddr_any {
 | 
			
		||||
	struct sockaddr addr;
 | 
			
		||||
	char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
import "C"
 | 
			
		||||
 | 
			
		||||
// Machine characteristics; for internal use.
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	sizeofPtr      = C.sizeofPtr
 | 
			
		||||
	sizeofShort    = C.sizeof_short
 | 
			
		||||
	sizeofInt      = C.sizeof_int
 | 
			
		||||
	sizeofLong     = C.sizeof_long
 | 
			
		||||
	sizeofLongLong = C.sizeof_longlong
 | 
			
		||||
	PathMax        = C.PATH_MAX
 | 
			
		||||
	MaxHostNameLen = C.MAXHOSTNAMELEN
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Basic types
 | 
			
		||||
 | 
			
		||||
type (
 | 
			
		||||
	_C_short     C.short
 | 
			
		||||
	_C_int       C.int
 | 
			
		||||
	_C_long      C.long
 | 
			
		||||
	_C_long_long C.longlong
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Time
 | 
			
		||||
 | 
			
		||||
type Timespec C.struct_timespec
 | 
			
		||||
 | 
			
		||||
type Timeval C.struct_timeval
 | 
			
		||||
 | 
			
		||||
type Timeval32 C.struct_timeval32
 | 
			
		||||
 | 
			
		||||
type Tms C.struct_tms
 | 
			
		||||
 | 
			
		||||
type Utimbuf C.struct_utimbuf
 | 
			
		||||
 | 
			
		||||
// Processes
 | 
			
		||||
 | 
			
		||||
type Rusage C.struct_rusage
 | 
			
		||||
 | 
			
		||||
type Rlimit C.struct_rlimit
 | 
			
		||||
 | 
			
		||||
type _Gid_t C.gid_t
 | 
			
		||||
 | 
			
		||||
// Files
 | 
			
		||||
 | 
			
		||||
const ( // Directory mode bits
 | 
			
		||||
	S_IFMT   = C.S_IFMT
 | 
			
		||||
	S_IFIFO  = C.S_IFIFO
 | 
			
		||||
	S_IFCHR  = C.S_IFCHR
 | 
			
		||||
	S_IFDIR  = C.S_IFDIR
 | 
			
		||||
	S_IFBLK  = C.S_IFBLK
 | 
			
		||||
	S_IFREG  = C.S_IFREG
 | 
			
		||||
	S_IFLNK  = C.S_IFLNK
 | 
			
		||||
	S_IFSOCK = C.S_IFSOCK
 | 
			
		||||
	S_ISUID  = C.S_ISUID
 | 
			
		||||
	S_ISGID  = C.S_ISGID
 | 
			
		||||
	S_ISVTX  = C.S_ISVTX
 | 
			
		||||
	S_IRUSR  = C.S_IRUSR
 | 
			
		||||
	S_IWUSR  = C.S_IWUSR
 | 
			
		||||
	S_IXUSR  = C.S_IXUSR
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Stat_t C.struct_stat
 | 
			
		||||
 | 
			
		||||
type Flock_t C.struct_flock
 | 
			
		||||
 | 
			
		||||
type Dirent C.struct_dirent
 | 
			
		||||
 | 
			
		||||
// Filesystems
 | 
			
		||||
 | 
			
		||||
type _Fsblkcnt_t C.fsblkcnt_t
 | 
			
		||||
 | 
			
		||||
type Statvfs_t C.struct_statvfs
 | 
			
		||||
 | 
			
		||||
// Sockets
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet4 C.struct_sockaddr_in
 | 
			
		||||
 | 
			
		||||
type RawSockaddrInet6 C.struct_sockaddr_in6
 | 
			
		||||
 | 
			
		||||
type RawSockaddrUnix C.struct_sockaddr_un
 | 
			
		||||
 | 
			
		||||
type RawSockaddrDatalink C.struct_sockaddr_dl
 | 
			
		||||
 | 
			
		||||
type RawSockaddr C.struct_sockaddr
 | 
			
		||||
 | 
			
		||||
type RawSockaddrAny C.struct_sockaddr_any
 | 
			
		||||
 | 
			
		||||
type _Socklen C.socklen_t
 | 
			
		||||
 | 
			
		||||
type Linger C.struct_linger
 | 
			
		||||
 | 
			
		||||
type Iovec C.struct_iovec
 | 
			
		||||
 | 
			
		||||
type IPMreq C.struct_ip_mreq
 | 
			
		||||
 | 
			
		||||
type IPv6Mreq C.struct_ipv6_mreq
 | 
			
		||||
 | 
			
		||||
type Msghdr C.struct_msghdr
 | 
			
		||||
 | 
			
		||||
type Cmsghdr C.struct_cmsghdr
 | 
			
		||||
 | 
			
		||||
type Inet6Pktinfo C.struct_in6_pktinfo
 | 
			
		||||
 | 
			
		||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
 | 
			
		||||
 | 
			
		||||
type ICMPv6Filter C.struct_icmp6_filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofSockaddrInet4    = C.sizeof_struct_sockaddr_in
 | 
			
		||||
	SizeofSockaddrInet6    = C.sizeof_struct_sockaddr_in6
 | 
			
		||||
	SizeofSockaddrAny      = C.sizeof_struct_sockaddr_any
 | 
			
		||||
	SizeofSockaddrUnix     = C.sizeof_struct_sockaddr_un
 | 
			
		||||
	SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
 | 
			
		||||
	SizeofLinger           = C.sizeof_struct_linger
 | 
			
		||||
	SizeofIPMreq           = C.sizeof_struct_ip_mreq
 | 
			
		||||
	SizeofIPv6Mreq         = C.sizeof_struct_ipv6_mreq
 | 
			
		||||
	SizeofMsghdr           = C.sizeof_struct_msghdr
 | 
			
		||||
	SizeofCmsghdr          = C.sizeof_struct_cmsghdr
 | 
			
		||||
	SizeofInet6Pktinfo     = C.sizeof_struct_in6_pktinfo
 | 
			
		||||
	SizeofIPv6MTUInfo      = C.sizeof_struct_ip6_mtuinfo
 | 
			
		||||
	SizeofICMPv6Filter     = C.sizeof_struct_icmp6_filter
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Select
 | 
			
		||||
 | 
			
		||||
type FdSet C.fd_set
 | 
			
		||||
 | 
			
		||||
// Misc
 | 
			
		||||
 | 
			
		||||
type Utsname C.struct_utsname
 | 
			
		||||
 | 
			
		||||
type Ustat_t C.struct_ustat
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	AT_FDCWD            = C.AT_FDCWD
 | 
			
		||||
	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
 | 
			
		||||
	AT_SYMLINK_FOLLOW   = C.AT_SYMLINK_FOLLOW
 | 
			
		||||
	AT_REMOVEDIR        = C.AT_REMOVEDIR
 | 
			
		||||
	AT_EACCESS          = C.AT_EACCESS
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Routing and interface messages
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofIfMsghdr  = C.sizeof_struct_if_msghdr
 | 
			
		||||
	SizeofIfData    = C.sizeof_struct_if_data
 | 
			
		||||
	SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr
 | 
			
		||||
	SizeofRtMsghdr  = C.sizeof_struct_rt_msghdr
 | 
			
		||||
	SizeofRtMetrics = C.sizeof_struct_rt_metrics
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type IfMsghdr C.struct_if_msghdr
 | 
			
		||||
 | 
			
		||||
type IfData C.struct_if_data
 | 
			
		||||
 | 
			
		||||
type IfaMsghdr C.struct_ifa_msghdr
 | 
			
		||||
 | 
			
		||||
type RtMsghdr C.struct_rt_msghdr
 | 
			
		||||
 | 
			
		||||
type RtMetrics C.struct_rt_metrics
 | 
			
		||||
 | 
			
		||||
// Berkeley packet filter
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SizeofBpfVersion = C.sizeof_struct_bpf_version
 | 
			
		||||
	SizeofBpfStat    = C.sizeof_struct_bpf_stat
 | 
			
		||||
	SizeofBpfProgram = C.sizeof_struct_bpf_program
 | 
			
		||||
	SizeofBpfInsn    = C.sizeof_struct_bpf_insn
 | 
			
		||||
	SizeofBpfHdr     = C.sizeof_struct_bpf_hdr
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type BpfVersion C.struct_bpf_version
 | 
			
		||||
 | 
			
		||||
type BpfStat C.struct_bpf_stat
 | 
			
		||||
 | 
			
		||||
type BpfProgram C.struct_bpf_program
 | 
			
		||||
 | 
			
		||||
type BpfInsn C.struct_bpf_insn
 | 
			
		||||
 | 
			
		||||
type BpfTimeval C.struct_bpf_timeval
 | 
			
		||||
 | 
			
		||||
type BpfHdr C.struct_bpf_hdr
 | 
			
		||||
 | 
			
		||||
// Terminal handling
 | 
			
		||||
 | 
			
		||||
type Termios C.struct_termios
 | 
			
		||||
 | 
			
		||||
type Termio C.struct_termio
 | 
			
		||||
 | 
			
		||||
type Winsize C.struct_winsize
 | 
			
		||||
 | 
			
		||||
// poll
 | 
			
		||||
 | 
			
		||||
type PollFd C.struct_pollfd
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	POLLERR    = C.POLLERR
 | 
			
		||||
	POLLHUP    = C.POLLHUP
 | 
			
		||||
	POLLIN     = C.POLLIN
 | 
			
		||||
	POLLNVAL   = C.POLLNVAL
 | 
			
		||||
	POLLOUT    = C.POLLOUT
 | 
			
		||||
	POLLPRI    = C.POLLPRI
 | 
			
		||||
	POLLRDBAND = C.POLLRDBAND
 | 
			
		||||
	POLLRDNORM = C.POLLRDNORM
 | 
			
		||||
	POLLWRBAND = C.POLLWRBAND
 | 
			
		||||
	POLLWRNORM = C.POLLWRNORM
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										29
									
								
								vendor/gopkg.in/go-playground/validator.v8/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								vendor/gopkg.in/go-playground/validator.v8/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
# Compiled Object files, Static and Dynamic libs (Shared Objects)
 | 
			
		||||
*.o
 | 
			
		||||
*.a
 | 
			
		||||
*.so
 | 
			
		||||
 | 
			
		||||
# Folders
 | 
			
		||||
_obj
 | 
			
		||||
_test
 | 
			
		||||
 | 
			
		||||
# Architecture specific extensions/prefixes
 | 
			
		||||
*.[568vq]
 | 
			
		||||
[568vq].out
 | 
			
		||||
 | 
			
		||||
*.cgo1.go
 | 
			
		||||
*.cgo2.c
 | 
			
		||||
_cgo_defun.c
 | 
			
		||||
_cgo_gotypes.go
 | 
			
		||||
_cgo_export.*
 | 
			
		||||
 | 
			
		||||
_testmain.go
 | 
			
		||||
 | 
			
		||||
*.exe
 | 
			
		||||
*.test
 | 
			
		||||
*.prof
 | 
			
		||||
*.test
 | 
			
		||||
*.out
 | 
			
		||||
*.txt
 | 
			
		||||
cover.html
 | 
			
		||||
README.html
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/gopkg.in/yaml.v2/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								vendor/gopkg.in/yaml.v2/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
			
		||||
language: go
 | 
			
		||||
 | 
			
		||||
go:
 | 
			
		||||
    - 1.4
 | 
			
		||||
    - 1.5
 | 
			
		||||
    - 1.6
 | 
			
		||||
    - 1.7
 | 
			
		||||
    - 1.8
 | 
			
		||||
    - 1.9
 | 
			
		||||
    - tip
 | 
			
		||||
 | 
			
		||||
go_import_path: gopkg.in/yaml.v2
 | 
			
		||||
							
								
								
									
										157
									
								
								vendor/vendor.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										157
									
								
								vendor/vendor.json
									
									
									
									
										vendored
									
									
								
							@ -1,157 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
	"comment": "",
 | 
			
		||||
	"ignore": "test",
 | 
			
		||||
	"package": [
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "2ngfNw/Z9bjxYx1Za5D028eS/BU=",
 | 
			
		||||
			"path": "git.trj.tw/golang/utils",
 | 
			
		||||
			"revision": "117c17b0294c4e46bfc8ae56791326300401b1ab",
 | 
			
		||||
			"revisionTime": "2018-04-25T07:56:22Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "8/7wIcmSm/zpybUmLYSgm2izqpc=",
 | 
			
		||||
			"path": "git.trj.tw/golang/utils/dbtool",
 | 
			
		||||
			"revision": "117c17b0294c4e46bfc8ae56791326300401b1ab",
 | 
			
		||||
			"revisionTime": "2018-04-25T07:56:22Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "8682CypcUWdUlGSK8C2DGB/CcTk=",
 | 
			
		||||
			"path": "github.com/gin-contrib/cors",
 | 
			
		||||
			"revision": "df6cfb7ff4a38d694dfebd0868ecb3e956171366",
 | 
			
		||||
			"revisionTime": "2018-02-25T15:46:31Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "QeKwBtN2df+j+4stw3bQJ6yO4EY=",
 | 
			
		||||
			"path": "github.com/gin-contrib/sse",
 | 
			
		||||
			"revision": "22d885f9ecc78bf4ee5d72b937e4bbcdc58e8cae",
 | 
			
		||||
			"revisionTime": "2017-01-09T09:34:21Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "cpELhz30Sco7IBwvI6FyuShnjnQ=",
 | 
			
		||||
			"path": "github.com/gin-gonic/gin",
 | 
			
		||||
			"revision": "d459835d2b077e44f7c9b453505ee29881d5d12d",
 | 
			
		||||
			"revisionTime": "2017-07-02T09:28:26Z",
 | 
			
		||||
			"version": "v1.2",
 | 
			
		||||
			"versionExact": "v1.2"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "YVt5lqmGq95m5tFdiz5pr2BF1Jo=",
 | 
			
		||||
			"path": "github.com/gin-gonic/gin/binding",
 | 
			
		||||
			"revision": "d459835d2b077e44f7c9b453505ee29881d5d12d",
 | 
			
		||||
			"revisionTime": "2017-07-02T09:28:26Z",
 | 
			
		||||
			"version": "v1.2",
 | 
			
		||||
			"versionExact": "v1.2"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "M3FwiqpVbXwo9t2FyI5/gKxCDKY=",
 | 
			
		||||
			"path": "github.com/gin-gonic/gin/render",
 | 
			
		||||
			"revision": "d459835d2b077e44f7c9b453505ee29881d5d12d",
 | 
			
		||||
			"revisionTime": "2017-07-02T09:28:26Z",
 | 
			
		||||
			"version": "v1.2",
 | 
			
		||||
			"versionExact": "v1.2"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "szDec1GjS2Xj4BU3R36PAwdR2Jg=",
 | 
			
		||||
			"path": "github.com/go-redis/redis",
 | 
			
		||||
			"revision": "9ccc23344a52164531ed90362e2516b798e3296c",
 | 
			
		||||
			"revisionTime": "2018-04-17T06:18:16Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "L/n8TwOiRwhhL2TvFNafxB6rAwY=",
 | 
			
		||||
			"path": "github.com/go-redis/redis/internal",
 | 
			
		||||
			"revision": "9ccc23344a52164531ed90362e2516b798e3296c",
 | 
			
		||||
			"revisionTime": "2018-04-17T06:18:16Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "GQZsUVg/+6UpQAYpc4luMvMutSI=",
 | 
			
		||||
			"path": "github.com/go-redis/redis/internal/consistenthash",
 | 
			
		||||
			"revision": "9ccc23344a52164531ed90362e2516b798e3296c",
 | 
			
		||||
			"revisionTime": "2018-04-17T06:18:16Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "GE9tg94JwCzMbBwn3Q2LaFs5Rx0=",
 | 
			
		||||
			"path": "github.com/go-redis/redis/internal/hashtag",
 | 
			
		||||
			"revision": "9ccc23344a52164531ed90362e2516b798e3296c",
 | 
			
		||||
			"revisionTime": "2018-04-17T06:18:16Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "AtcctlDri3zLh6U5sDnT4NULEtw=",
 | 
			
		||||
			"path": "github.com/go-redis/redis/internal/pool",
 | 
			
		||||
			"revision": "9ccc23344a52164531ed90362e2516b798e3296c",
 | 
			
		||||
			"revisionTime": "2018-04-17T06:18:16Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "2DZs/18lBWzZk2rxWLVtPUzNXhs=",
 | 
			
		||||
			"path": "github.com/go-redis/redis/internal/proto",
 | 
			
		||||
			"revision": "9ccc23344a52164531ed90362e2516b798e3296c",
 | 
			
		||||
			"revisionTime": "2018-04-17T06:18:16Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "sjbjSJrTdvyDwNjrWjTNeXgUhaU=",
 | 
			
		||||
			"path": "github.com/go-redis/redis/internal/singleflight",
 | 
			
		||||
			"revision": "9ccc23344a52164531ed90362e2516b798e3296c",
 | 
			
		||||
			"revisionTime": "2018-04-17T06:18:16Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "SvyqZrzHTVxCIBoawql2ucvfWLE=",
 | 
			
		||||
			"path": "github.com/go-redis/redis/internal/util",
 | 
			
		||||
			"revision": "9ccc23344a52164531ed90362e2516b798e3296c",
 | 
			
		||||
			"revisionTime": "2018-04-17T06:18:16Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "WX1+2gktHcBmE9MGwFSGs7oqexU=",
 | 
			
		||||
			"path": "github.com/golang/protobuf/proto",
 | 
			
		||||
			"revision": "e09c5db296004fbe3f74490e84dcd62c3c5ddb1b",
 | 
			
		||||
			"revisionTime": "2018-03-28T16:31:53Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "F7vsuKOVSMnFSi90odRxfhBEBeA=",
 | 
			
		||||
			"path": "github.com/lib/pq",
 | 
			
		||||
			"revision": "d34b9ff171c21ad295489235aec8b6626023cd04",
 | 
			
		||||
			"revisionTime": "2018-03-27T07:18:24Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "AU3fA8Sm33Vj9PBoRPSeYfxLRuE=",
 | 
			
		||||
			"path": "github.com/lib/pq/oid",
 | 
			
		||||
			"revision": "d34b9ff171c21ad295489235aec8b6626023cd04",
 | 
			
		||||
			"revisionTime": "2018-03-27T07:18:24Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "w5RcOnfv5YDr3j2bd1YydkPiZx4=",
 | 
			
		||||
			"path": "github.com/mattn/go-isatty",
 | 
			
		||||
			"revision": "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c",
 | 
			
		||||
			"revisionTime": "2017-11-07T05:05:31Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "kdas0zQNtQqfUMEMFGkUF1OcgPc=",
 | 
			
		||||
			"path": "github.com/ugorji/go/codec",
 | 
			
		||||
			"revision": "f3cacc17c85ecb7f1b6a9e373ee85d1480919868",
 | 
			
		||||
			"revisionTime": "2018-04-07T10:30:00Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "1MGpGDQqnUoRpv7VEcQrXOBydXE=",
 | 
			
		||||
			"path": "golang.org/x/crypto/pbkdf2",
 | 
			
		||||
			"revision": "d6449816ce06963d9d136eee5a56fca5b0616e7e",
 | 
			
		||||
			"revisionTime": "2018-04-11T15:42:50Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "31n/IvwJf+PtXWf1EPwQYcde1jY=",
 | 
			
		||||
			"path": "golang.org/x/sys/unix",
 | 
			
		||||
			"revision": "b126b21c05a91c856b027c16779c12e3bf236954",
 | 
			
		||||
			"revisionTime": "2018-04-16T10:06:24Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "P/k5ZGf0lEBgpKgkwy++F7K1PSg=",
 | 
			
		||||
			"path": "gopkg.in/go-playground/validator.v8",
 | 
			
		||||
			"revision": "5f1438d3fca68893a817e4a66806cea46a9e4ebf",
 | 
			
		||||
			"revisionTime": "2017-07-30T05:02:35Z"
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"checksumSHA1": "ZSWoOPUNRr5+3dhkLK3C4cZAQPk=",
 | 
			
		||||
			"path": "gopkg.in/yaml.v2",
 | 
			
		||||
			"revision": "5420a8b6744d3b0345ab293f6fcba19c978f1183",
 | 
			
		||||
			"revisionTime": "2018-03-28T19:50:20Z"
 | 
			
		||||
		}
 | 
			
		||||
	],
 | 
			
		||||
	"rootPath": "git.trj.tw/golang/go-gallery"
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user