├── .gitignore ├── README.md ├── TODO.md ├── config.toml ├── data ├── data_dist ├── README.md ├── boot │ ├── coreos │ │ ├── README.md │ │ ├── classes.toml │ │ ├── images │ │ │ └── get_latest.sh │ │ └── template │ │ │ ├── cloud-etcd.tmpl │ │ │ ├── cloud-worker.tmpl │ │ │ ├── start-old.tmpl │ │ │ └── start.tmpl │ ├── debian │ │ ├── README.md │ │ ├── classes.toml │ │ ├── images │ │ │ ├── get.sh │ │ │ └── images.json │ │ └── template │ │ │ ├── example-preseed.txt │ │ │ ├── firstboot.tmpl │ │ │ ├── postinstall.tmpl │ │ │ ├── preseed.tmpl │ │ │ └── start.tmpl │ └── ubuntu │ │ ├── README.md │ │ ├── classes.toml │ │ ├── images │ │ ├── get.sh │ │ └── images.json │ │ └── template │ │ ├── example-preseed.txt │ │ ├── firstboot.tmpl │ │ ├── postinstall.tmpl │ │ ├── preseed.tmpl │ │ └── start.tmpl ├── rkt │ └── spawn-latest-linux-amd64.aci ├── tftp │ ├── README.md │ └── undionly.kpxe └── units │ └── ipfs.service ├── doc ├── INSTRUCTIONS.md ├── TODO └── iPXE.md ├── machines.json ├── refs.toml.dist ├── src ├── astralboot │ ├── config.go │ ├── dhcp.go │ ├── dns.go │ ├── fs.go │ ├── leases.go │ ├── leases_test.go │ ├── logging.go │ ├── main.go │ ├── proxy.go │ ├── questions.go │ ├── rocket.go │ ├── spawn.go │ ├── startup.go │ ├── store.go │ ├── templates.go │ ├── tftp.go │ └── web.go ├── dns │ ├── main.go │ └── testing.go └── spawn │ ├── README.md │ ├── backend.go │ ├── fleet.api │ ├── frontend.go │ └── spawn.go └── vendor ├── manifest └── src ├── bitbucket.org └── ww │ └── goautoneg │ ├── Makefile │ ├── README.txt │ ├── autoneg.go │ └── autoneg_test.go ├── github.com ├── BurntSushi │ └── toml │ │ ├── COMPATIBLE │ │ ├── COPYING │ │ ├── Makefile │ │ ├── README.md │ │ ├── _examples │ │ ├── example.go │ │ ├── example.toml │ │ ├── hard.toml │ │ ├── implicit.toml │ │ ├── invalid-apples.toml │ │ ├── invalid.toml │ │ ├── readme1.toml │ │ └── readme2.toml │ │ ├── cmd │ │ ├── toml-test-decoder │ │ │ ├── COPYING │ │ │ ├── README.md │ │ │ └── main.go │ │ ├── toml-test-encoder │ │ │ ├── COPYING │ │ │ ├── README.md │ │ │ └── main.go │ │ └── tomlv │ │ │ ├── COPYING │ │ │ ├── README.md │ │ │ └── main.go │ │ ├── decode.go │ │ ├── decode_meta.go │ │ ├── decode_test.go │ │ ├── doc.go │ │ ├── encode.go │ │ ├── encode_test.go │ │ ├── encoding_types.go │ │ ├── encoding_types_1.1.go │ │ ├── lex.go │ │ ├── parse.go │ │ ├── session.vim │ │ ├── type_check.go │ │ └── type_fields.go ├── beorn7 │ └── perks │ │ └── quantile │ │ ├── bench_test.go │ │ ├── example_test.go │ │ ├── exampledata.txt │ │ ├── stream.go │ │ └── stream_test.go ├── coreos │ ├── etcd │ │ ├── client │ │ │ ├── README.md │ │ │ ├── auth_role.go │ │ │ ├── auth_user.go │ │ │ ├── cancelreq.go │ │ │ ├── client.go │ │ │ ├── client_test.go │ │ │ ├── cluster_error.go │ │ │ ├── curl.go │ │ │ ├── discover.go │ │ │ ├── doc.go │ │ │ ├── example_keys_test.go │ │ │ ├── fake_transport_test.go │ │ │ ├── integration │ │ │ │ ├── client_test.go │ │ │ │ ├── doc.go │ │ │ │ └── main_test.go │ │ │ ├── keys.generated.go │ │ │ ├── keys.go │ │ │ ├── keys_bench_test.go │ │ │ ├── keys_test.go │ │ │ ├── main_test.go │ │ │ ├── members.go │ │ │ ├── members_test.go │ │ │ └── util.go │ │ └── version │ │ │ └── version.go │ ├── go-etcd │ │ └── etcd │ │ │ ├── add_child.go │ │ │ ├── add_child_test.go │ │ │ ├── client.go │ │ │ ├── client_test.go │ │ │ ├── cluster.go │ │ │ ├── compare_and_delete.go │ │ │ ├── compare_and_delete_test.go │ │ │ ├── compare_and_swap.go │ │ │ ├── compare_and_swap_test.go │ │ │ ├── debug.go │ │ │ ├── debug_test.go │ │ │ ├── delete.go │ │ │ ├── delete_test.go │ │ │ ├── error.go │ │ │ ├── get.go │ │ │ ├── get_test.go │ │ │ ├── member.go │ │ │ ├── member_test.go │ │ │ ├── options.go │ │ │ ├── requests.go │ │ │ ├── requests_test.go │ │ │ ├── response.generated.go │ │ │ ├── response.go │ │ │ ├── response_test.go │ │ │ ├── set_curl_chan_test.go │ │ │ ├── set_update_create.go │ │ │ ├── set_update_create_test.go │ │ │ ├── shuffle.go │ │ │ ├── version.go │ │ │ ├── watch.go │ │ │ └── watch_test.go │ ├── go-semver │ │ └── semver │ │ │ ├── semver.go │ │ │ ├── semver_test.go │ │ │ └── sort.go │ └── go-systemd │ │ ├── activation │ │ ├── common_test.go │ │ ├── files.go │ │ ├── files_test.go │ │ ├── listeners.go │ │ ├── listeners_test.go │ │ ├── packetconns.go │ │ └── packetconns_test.go │ │ └── unit │ │ ├── deserialize.go │ │ ├── deserialize_test.go │ │ ├── end_to_end_test.go │ │ ├── escape.go │ │ ├── escape_test.go │ │ ├── option.go │ │ ├── option_test.go │ │ ├── serialize.go │ │ └── serialize_test.go ├── dustin │ └── go-broadcast │ │ ├── LICENSE │ │ ├── README.markdown │ │ ├── broadcaster.go │ │ ├── broadcaster_test.go │ │ ├── example_test.go │ │ ├── mux_observer.go │ │ └── mux_observer_test.go ├── gin-contrib │ └── sse │ │ ├── LICENSE │ │ ├── README.md │ │ ├── sse-decoder.go │ │ ├── sse-decoder_test.go │ │ ├── sse-encoder.go │ │ ├── sse_test.go │ │ └── writer.go ├── gin-gonic │ └── gin │ │ ├── AUTHORS.md │ │ ├── BENCHMARKS.md │ │ ├── CHANGELOG.md │ │ ├── CODE_OF_CONDUCT.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── auth.go │ │ ├── auth_test.go │ │ ├── benchmarks_test.go │ │ ├── binding │ │ ├── binding.go │ │ ├── binding_body_test.go │ │ ├── binding_test.go │ │ ├── default_validator.go │ │ ├── example │ │ │ ├── test.pb.go │ │ │ └── test.proto │ │ ├── form.go │ │ ├── form_mapping.go │ │ ├── json.go │ │ ├── msgpack.go │ │ ├── protobuf.go │ │ ├── query.go │ │ ├── validate_test.go │ │ └── xml.go │ │ ├── codecov.yml │ │ ├── context.go │ │ ├── context_appengine.go │ │ ├── context_test.go │ │ ├── coverage.sh │ │ ├── debug.go │ │ ├── debug_test.go │ │ ├── deprecated.go │ │ ├── deprecated_test.go │ │ ├── doc.go │ │ ├── errors.go │ │ ├── errors_test.go │ │ ├── examples │ │ ├── app-engine │ │ │ ├── README.md │ │ │ ├── app.yaml │ │ │ └── hello.go │ │ ├── assets-in-binary │ │ │ ├── README.md │ │ │ ├── assets.go │ │ │ ├── html │ │ │ │ ├── bar.tmpl │ │ │ │ └── index.tmpl │ │ │ └── main.go │ │ ├── auto-tls │ │ │ ├── example1 │ │ │ │ └── main.go │ │ │ └── example2 │ │ │ │ └── main.go │ │ ├── basic │ │ │ ├── main.go │ │ │ └── main_test.go │ │ ├── custom-validation │ │ │ └── server.go │ │ ├── favicon │ │ │ ├── favicon.ico │ │ │ └── main.go │ │ ├── graceful-shutdown │ │ │ ├── close │ │ │ │ └── server.go │ │ │ └── graceful-shutdown │ │ │ │ └── server.go │ │ ├── grpc │ │ │ ├── README.md │ │ │ ├── gin │ │ │ │ └── main.go │ │ │ ├── grpc │ │ │ │ └── server.go │ │ │ └── pb │ │ │ │ ├── helloworld.pb.go │ │ │ │ └── helloworld.proto │ │ ├── http-pusher │ │ │ ├── assets │ │ │ │ └── app.js │ │ │ ├── main.go │ │ │ └── testdata │ │ │ │ ├── ca.pem │ │ │ │ ├── server.key │ │ │ │ └── server.pem │ │ ├── http2 │ │ │ ├── README.md │ │ │ ├── main.go │ │ │ └── testdata │ │ │ │ ├── ca.pem │ │ │ │ ├── server.key │ │ │ │ └── server.pem │ │ ├── multiple-service │ │ │ └── main.go │ │ ├── realtime-advanced │ │ │ ├── Makefile │ │ │ ├── main.go │ │ │ ├── resources │ │ │ │ ├── room_login.templ.html │ │ │ │ └── static │ │ │ │ │ ├── epoch.min.css │ │ │ │ │ ├── epoch.min.js │ │ │ │ │ ├── prismjs.min.css │ │ │ │ │ ├── prismjs.min.js │ │ │ │ │ └── realtime.js │ │ │ ├── rooms.go │ │ │ ├── routes.go │ │ │ └── stats.go │ │ ├── realtime-chat │ │ │ ├── Makefile │ │ │ ├── main.go │ │ │ ├── rooms.go │ │ │ └── template.go │ │ ├── struct-lvl-validations │ │ │ ├── README.md │ │ │ └── server.go │ │ ├── template │ │ │ └── main.go │ │ └── upload-file │ │ │ ├── multiple │ │ │ ├── main.go │ │ │ └── public │ │ │ │ └── index.html │ │ │ └── single │ │ │ ├── main.go │ │ │ └── public │ │ │ └── index.html │ │ ├── fixtures │ │ ├── basic │ │ │ ├── hello.tmpl │ │ │ └── raw.tmpl │ │ └── testdata │ │ │ ├── cert.pem │ │ │ └── key.pem │ │ ├── fs.go │ │ ├── gin.go │ │ ├── ginS │ │ ├── README.md │ │ └── gins.go │ │ ├── gin_integration_test.go │ │ ├── gin_test.go │ │ ├── githubapi_test.go │ │ ├── json │ │ ├── json.go │ │ └── jsoniter.go │ │ ├── logger.go │ │ ├── logger_test.go │ │ ├── middleware_test.go │ │ ├── mode.go │ │ ├── mode_test.go │ │ ├── path.go │ │ ├── path_test.go │ │ ├── recovery.go │ │ ├── recovery_test.go │ │ ├── render │ │ ├── data.go │ │ ├── html.go │ │ ├── json.go │ │ ├── msgpack.go │ │ ├── reader.go │ │ ├── redirect.go │ │ ├── render.go │ │ ├── render_test.go │ │ ├── text.go │ │ ├── xml.go │ │ └── yaml.go │ │ ├── response_writer.go │ │ ├── response_writer_1.7.go │ │ ├── response_writer_1.8.go │ │ ├── response_writer_test.go │ │ ├── routergroup.go │ │ ├── routergroup_test.go │ │ ├── routes_test.go │ │ ├── test_helpers.go │ │ ├── tree.go │ │ ├── tree_test.go │ │ ├── utils.go │ │ ├── utils_test.go │ │ ├── vendor │ │ └── vendor.json │ │ └── wercker.yml ├── golang │ └── protobuf │ │ └── proto │ │ ├── all_test.go │ │ ├── any_test.go │ │ ├── clone.go │ │ ├── clone_test.go │ │ ├── decode.go │ │ ├── decode_test.go │ │ ├── discard.go │ │ ├── discard_test.go │ │ ├── encode.go │ │ ├── encode_test.go │ │ ├── equal.go │ │ ├── equal_test.go │ │ ├── extensions.go │ │ ├── extensions_test.go │ │ ├── lib.go │ │ ├── map_test.go │ │ ├── message_set.go │ │ ├── message_set_test.go │ │ ├── pointer_reflect.go │ │ ├── pointer_unsafe.go │ │ ├── properties.go │ │ ├── proto3_proto │ │ ├── proto3.pb.go │ │ └── proto3.proto │ │ ├── proto3_test.go │ │ ├── size2_test.go │ │ ├── size_test.go │ │ ├── table_marshal.go │ │ ├── table_merge.go │ │ ├── table_unmarshal.go │ │ ├── test_proto │ │ ├── test.pb.go │ │ └── test.proto │ │ ├── text.go │ │ ├── text_parser.go │ │ ├── text_parser_test.go │ │ └── text_test.go ├── krolaw │ └── dhcp4 │ │ ├── LICENSE │ │ ├── README.md │ │ ├── conn │ │ ├── bound_linux.go │ │ └── filter.go │ │ ├── example_test.go │ │ ├── helpers.go │ │ ├── helpers_test.go │ │ ├── messagetype_string.go │ │ ├── optioncode_string.go │ │ ├── packet.go │ │ ├── packet_test.go │ │ ├── server.go │ │ └── serverif.go ├── manucorporat │ ├── sse │ │ ├── LICENSE │ │ ├── README.md │ │ ├── sse-decoder.go │ │ ├── sse-decoder_test.go │ │ ├── sse-encoder.go │ │ ├── sse_test.go │ │ └── writer.go │ └── stats │ │ ├── LICENSE │ │ └── stats.go ├── mattn │ ├── go-colorable │ │ ├── LICENSE │ │ ├── README.md │ │ ├── _example │ │ │ ├── escape-seq │ │ │ │ └── main.go │ │ │ ├── logrus │ │ │ │ └── main.go │ │ │ └── title │ │ │ │ └── main.go │ │ ├── cmd │ │ │ └── colorable │ │ │ │ └── colorable.go │ │ ├── colorable_appengine.go │ │ ├── colorable_others.go │ │ ├── colorable_test.go │ │ ├── colorable_windows.go │ │ └── noncolorable.go │ └── go-isatty │ │ ├── LICENSE │ │ ├── README.md │ │ ├── doc.go │ │ ├── example_test.go │ │ ├── isatty_appengine.go │ │ ├── isatty_bsd.go │ │ ├── isatty_linux.go │ │ ├── isatty_linux_ppc64x.go │ │ ├── isatty_others.go │ │ ├── isatty_others_test.go │ │ ├── isatty_solaris.go │ │ ├── isatty_windows.go │ │ └── isatty_windows_test.go ├── matttproud │ └── golang_protobuf_extensions │ │ └── pbutil │ │ ├── Makefile │ │ ├── all_test.go │ │ ├── decode.go │ │ ├── decode_test.go │ │ ├── doc.go │ │ ├── encode.go │ │ └── encode_test.go ├── miekg │ └── dns │ │ ├── AUTHORS │ │ ├── CONTRIBUTORS │ │ ├── COPYRIGHT │ │ ├── Gopkg.lock │ │ ├── Gopkg.toml │ │ ├── LICENSE │ │ ├── Makefile.fuzz │ │ ├── Makefile.release │ │ ├── README.md │ │ ├── client.go │ │ ├── client_test.go │ │ ├── clientconfig.go │ │ ├── clientconfig_test.go │ │ ├── compress_generate.go │ │ ├── dane.go │ │ ├── defaults.go │ │ ├── dns.go │ │ ├── dns_bench_test.go │ │ ├── dns_test.go │ │ ├── dnssec.go │ │ ├── dnssec_keygen.go │ │ ├── dnssec_keyscan.go │ │ ├── dnssec_privkey.go │ │ ├── dnssec_test.go │ │ ├── dnsutil │ │ ├── util.go │ │ └── util_test.go │ │ ├── doc.go │ │ ├── duplicate.go │ │ ├── duplicate_generate.go │ │ ├── duplicate_test.go │ │ ├── dyn_test.go │ │ ├── edns.go │ │ ├── edns_test.go │ │ ├── example_test.go │ │ ├── format.go │ │ ├── fuzz.go │ │ ├── generate.go │ │ ├── generate_test.go │ │ ├── issue_test.go │ │ ├── labels.go │ │ ├── labels_test.go │ │ ├── leak_test.go │ │ ├── length_test.go │ │ ├── msg.go │ │ ├── msg_generate.go │ │ ├── msg_helpers.go │ │ ├── msg_helpers_test.go │ │ ├── msg_test.go │ │ ├── nsecx.go │ │ ├── nsecx_test.go │ │ ├── parse_test.go │ │ ├── privaterr.go │ │ ├── privaterr_test.go │ │ ├── rawmsg.go │ │ ├── remote_test.go │ │ ├── reverse.go │ │ ├── rr_test.go │ │ ├── sanitize.go │ │ ├── sanitize_test.go │ │ ├── scan.go │ │ ├── scan_rr.go │ │ ├── scan_test.go │ │ ├── scanner.go │ │ ├── server.go │ │ ├── server_test.go │ │ ├── sig0.go │ │ ├── sig0_test.go │ │ ├── singleinflight.go │ │ ├── smimea.go │ │ ├── tlsa.go │ │ ├── tsig.go │ │ ├── tsig_test.go │ │ ├── types.go │ │ ├── types_generate.go │ │ ├── types_test.go │ │ ├── udp.go │ │ ├── udp_test.go │ │ ├── udp_windows.go │ │ ├── update.go │ │ ├── update_test.go │ │ ├── vendor │ │ └── golang.org │ │ │ └── x │ │ │ ├── crypto │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTING.md │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ ├── README.md │ │ │ ├── acme │ │ │ │ ├── acme.go │ │ │ │ ├── acme_test.go │ │ │ │ ├── autocert │ │ │ │ │ ├── autocert.go │ │ │ │ │ ├── autocert_test.go │ │ │ │ │ ├── cache.go │ │ │ │ │ ├── cache_test.go │ │ │ │ │ ├── example_test.go │ │ │ │ │ ├── listener.go │ │ │ │ │ ├── renewal.go │ │ │ │ │ └── renewal_test.go │ │ │ │ ├── http.go │ │ │ │ ├── http_test.go │ │ │ │ ├── jws.go │ │ │ │ ├── jws_test.go │ │ │ │ ├── types.go │ │ │ │ └── types_test.go │ │ │ ├── argon2 │ │ │ │ ├── argon2.go │ │ │ │ ├── argon2_test.go │ │ │ │ ├── blake2b.go │ │ │ │ ├── blamka_amd64.go │ │ │ │ ├── blamka_amd64.s │ │ │ │ ├── blamka_generic.go │ │ │ │ └── blamka_ref.go │ │ │ ├── bcrypt │ │ │ │ ├── base64.go │ │ │ │ ├── bcrypt.go │ │ │ │ └── bcrypt_test.go │ │ │ ├── blake2b │ │ │ │ ├── blake2b.go │ │ │ │ ├── blake2bAVX2_amd64.go │ │ │ │ ├── blake2bAVX2_amd64.s │ │ │ │ ├── blake2b_amd64.go │ │ │ │ ├── blake2b_amd64.s │ │ │ │ ├── blake2b_generic.go │ │ │ │ ├── blake2b_ref.go │ │ │ │ ├── blake2b_test.go │ │ │ │ ├── blake2x.go │ │ │ │ └── register.go │ │ │ ├── blake2s │ │ │ │ ├── blake2s.go │ │ │ │ ├── blake2s_386.go │ │ │ │ ├── blake2s_386.s │ │ │ │ ├── blake2s_amd64.go │ │ │ │ ├── blake2s_amd64.s │ │ │ │ ├── blake2s_generic.go │ │ │ │ ├── blake2s_ref.go │ │ │ │ ├── blake2s_test.go │ │ │ │ ├── blake2x.go │ │ │ │ └── register.go │ │ │ ├── blowfish │ │ │ │ ├── block.go │ │ │ │ ├── blowfish_test.go │ │ │ │ ├── cipher.go │ │ │ │ └── const.go │ │ │ ├── bn256 │ │ │ │ ├── bn256.go │ │ │ │ ├── bn256_test.go │ │ │ │ ├── constants.go │ │ │ │ ├── curve.go │ │ │ │ ├── example_test.go │ │ │ │ ├── gfp12.go │ │ │ │ ├── gfp2.go │ │ │ │ ├── gfp6.go │ │ │ │ ├── optate.go │ │ │ │ └── twist.go │ │ │ ├── cast5 │ │ │ │ ├── cast5.go │ │ │ │ └── cast5_test.go │ │ │ ├── chacha20poly1305 │ │ │ │ ├── chacha20poly1305.go │ │ │ │ ├── chacha20poly1305_amd64.go │ │ │ │ ├── chacha20poly1305_amd64.s │ │ │ │ ├── chacha20poly1305_generic.go │ │ │ │ ├── chacha20poly1305_noasm.go │ │ │ │ ├── chacha20poly1305_test.go │ │ │ │ └── chacha20poly1305_vectors_test.go │ │ │ ├── codereview.cfg │ │ │ ├── cryptobyte │ │ │ │ ├── asn1.go │ │ │ │ ├── asn1 │ │ │ │ │ └── asn1.go │ │ │ │ ├── asn1_test.go │ │ │ │ ├── builder.go │ │ │ │ ├── cryptobyte_test.go │ │ │ │ ├── example_test.go │ │ │ │ └── string.go │ │ │ ├── curve25519 │ │ │ │ ├── const_amd64.h │ │ │ │ ├── const_amd64.s │ │ │ │ ├── cswap_amd64.s │ │ │ │ ├── curve25519.go │ │ │ │ ├── curve25519_test.go │ │ │ │ ├── doc.go │ │ │ │ ├── freeze_amd64.s │ │ │ │ ├── ladderstep_amd64.s │ │ │ │ ├── mont25519_amd64.go │ │ │ │ ├── mul_amd64.s │ │ │ │ └── square_amd64.s │ │ │ ├── ed25519 │ │ │ │ ├── ed25519.go │ │ │ │ ├── ed25519_test.go │ │ │ │ └── internal │ │ │ │ │ └── edwards25519 │ │ │ │ │ ├── const.go │ │ │ │ │ └── edwards25519.go │ │ │ ├── hkdf │ │ │ │ ├── example_test.go │ │ │ │ ├── hkdf.go │ │ │ │ └── hkdf_test.go │ │ │ ├── internal │ │ │ │ └── chacha20 │ │ │ │ │ ├── asm_s390x.s │ │ │ │ │ ├── chacha_generic.go │ │ │ │ │ ├── chacha_noasm.go │ │ │ │ │ ├── chacha_s390x.go │ │ │ │ │ ├── chacha_test.go │ │ │ │ │ ├── vectors_test.go │ │ │ │ │ └── xor.go │ │ │ ├── md4 │ │ │ │ ├── example_test.go │ │ │ │ ├── md4.go │ │ │ │ ├── md4_test.go │ │ │ │ └── md4block.go │ │ │ ├── nacl │ │ │ │ ├── auth │ │ │ │ │ ├── auth.go │ │ │ │ │ ├── auth_test.go │ │ │ │ │ └── example_test.go │ │ │ │ ├── box │ │ │ │ │ ├── box.go │ │ │ │ │ ├── box_test.go │ │ │ │ │ └── example_test.go │ │ │ │ ├── secretbox │ │ │ │ │ ├── example_test.go │ │ │ │ │ ├── secretbox.go │ │ │ │ │ └── secretbox_test.go │ │ │ │ └── sign │ │ │ │ │ ├── sign.go │ │ │ │ │ └── sign_test.go │ │ │ ├── ocsp │ │ │ │ ├── ocsp.go │ │ │ │ └── ocsp_test.go │ │ │ ├── openpgp │ │ │ │ ├── armor │ │ │ │ │ ├── armor.go │ │ │ │ │ ├── armor_test.go │ │ │ │ │ └── encode.go │ │ │ │ ├── canonical_text.go │ │ │ │ ├── canonical_text_test.go │ │ │ │ ├── clearsign │ │ │ │ │ ├── clearsign.go │ │ │ │ │ └── clearsign_test.go │ │ │ │ ├── elgamal │ │ │ │ │ ├── elgamal.go │ │ │ │ │ └── elgamal_test.go │ │ │ │ ├── errors │ │ │ │ │ └── errors.go │ │ │ │ ├── keys.go │ │ │ │ ├── keys_test.go │ │ │ │ ├── packet │ │ │ │ │ ├── compressed.go │ │ │ │ │ ├── compressed_test.go │ │ │ │ │ ├── config.go │ │ │ │ │ ├── encrypted_key.go │ │ │ │ │ ├── encrypted_key_test.go │ │ │ │ │ ├── literal.go │ │ │ │ │ ├── ocfb.go │ │ │ │ │ ├── ocfb_test.go │ │ │ │ │ ├── one_pass_signature.go │ │ │ │ │ ├── opaque.go │ │ │ │ │ ├── opaque_test.go │ │ │ │ │ ├── packet.go │ │ │ │ │ ├── packet_test.go │ │ │ │ │ ├── private_key.go │ │ │ │ │ ├── private_key_test.go │ │ │ │ │ ├── public_key.go │ │ │ │ │ ├── public_key_test.go │ │ │ │ │ ├── public_key_v3.go │ │ │ │ │ ├── public_key_v3_test.go │ │ │ │ │ ├── reader.go │ │ │ │ │ ├── signature.go │ │ │ │ │ ├── signature_test.go │ │ │ │ │ ├── signature_v3.go │ │ │ │ │ ├── signature_v3_test.go │ │ │ │ │ ├── symmetric_key_encrypted.go │ │ │ │ │ ├── symmetric_key_encrypted_test.go │ │ │ │ │ ├── symmetrically_encrypted.go │ │ │ │ │ ├── symmetrically_encrypted_test.go │ │ │ │ │ ├── userattribute.go │ │ │ │ │ ├── userattribute_test.go │ │ │ │ │ ├── userid.go │ │ │ │ │ └── userid_test.go │ │ │ │ ├── read.go │ │ │ │ ├── read_test.go │ │ │ │ ├── s2k │ │ │ │ │ ├── s2k.go │ │ │ │ │ └── s2k_test.go │ │ │ │ ├── write.go │ │ │ │ └── write_test.go │ │ │ ├── otr │ │ │ │ ├── libotr_test_helper.c │ │ │ │ ├── otr.go │ │ │ │ ├── otr_test.go │ │ │ │ └── smp.go │ │ │ ├── pbkdf2 │ │ │ │ ├── pbkdf2.go │ │ │ │ └── pbkdf2_test.go │ │ │ ├── pkcs12 │ │ │ │ ├── bmp-string.go │ │ │ │ ├── bmp-string_test.go │ │ │ │ ├── crypto.go │ │ │ │ ├── crypto_test.go │ │ │ │ ├── errors.go │ │ │ │ ├── internal │ │ │ │ │ └── rc2 │ │ │ │ │ │ ├── bench_test.go │ │ │ │ │ │ ├── rc2.go │ │ │ │ │ │ └── rc2_test.go │ │ │ │ ├── mac.go │ │ │ │ ├── mac_test.go │ │ │ │ ├── pbkdf.go │ │ │ │ ├── pbkdf_test.go │ │ │ │ ├── pkcs12.go │ │ │ │ ├── pkcs12_test.go │ │ │ │ └── safebags.go │ │ │ ├── poly1305 │ │ │ │ ├── poly1305.go │ │ │ │ ├── poly1305_test.go │ │ │ │ ├── sum_amd64.go │ │ │ │ ├── sum_amd64.s │ │ │ │ ├── sum_arm.go │ │ │ │ ├── sum_arm.s │ │ │ │ ├── sum_noasm.go │ │ │ │ ├── sum_ref.go │ │ │ │ ├── sum_s390x.go │ │ │ │ ├── sum_s390x.s │ │ │ │ ├── sum_vmsl_s390x.s │ │ │ │ └── vectors_test.go │ │ │ ├── ripemd160 │ │ │ │ ├── ripemd160.go │ │ │ │ ├── ripemd160_test.go │ │ │ │ └── ripemd160block.go │ │ │ ├── salsa20 │ │ │ │ ├── salsa │ │ │ │ │ ├── hsalsa20.go │ │ │ │ │ ├── salsa2020_amd64.s │ │ │ │ │ ├── salsa208.go │ │ │ │ │ ├── salsa20_amd64.go │ │ │ │ │ ├── salsa20_ref.go │ │ │ │ │ └── salsa_test.go │ │ │ │ ├── salsa20.go │ │ │ │ └── salsa20_test.go │ │ │ ├── scrypt │ │ │ │ ├── example_test.go │ │ │ │ ├── scrypt.go │ │ │ │ └── scrypt_test.go │ │ │ ├── sha3 │ │ │ │ ├── doc.go │ │ │ │ ├── hashes.go │ │ │ │ ├── hashes_generic.go │ │ │ │ ├── keccakf.go │ │ │ │ ├── keccakf_amd64.go │ │ │ │ ├── keccakf_amd64.s │ │ │ │ ├── register.go │ │ │ │ ├── sha3.go │ │ │ │ ├── sha3_s390x.go │ │ │ │ ├── sha3_s390x.s │ │ │ │ ├── sha3_test.go │ │ │ │ ├── shake.go │ │ │ │ ├── shake_generic.go │ │ │ │ ├── testdata │ │ │ │ │ └── keccakKats.json.deflate │ │ │ │ ├── xor.go │ │ │ │ ├── xor_generic.go │ │ │ │ └── xor_unaligned.go │ │ │ ├── ssh │ │ │ │ ├── agent │ │ │ │ │ ├── client.go │ │ │ │ │ ├── client_test.go │ │ │ │ │ ├── example_test.go │ │ │ │ │ ├── forward.go │ │ │ │ │ ├── keyring.go │ │ │ │ │ ├── keyring_test.go │ │ │ │ │ ├── server.go │ │ │ │ │ ├── server_test.go │ │ │ │ │ └── testdata_test.go │ │ │ │ ├── benchmark_test.go │ │ │ │ ├── buffer.go │ │ │ │ ├── buffer_test.go │ │ │ │ ├── certs.go │ │ │ │ ├── certs_test.go │ │ │ │ ├── channel.go │ │ │ │ ├── cipher.go │ │ │ │ ├── cipher_test.go │ │ │ │ ├── client.go │ │ │ │ ├── client_auth.go │ │ │ │ ├── client_auth_test.go │ │ │ │ ├── client_test.go │ │ │ │ ├── common.go │ │ │ │ ├── connection.go │ │ │ │ ├── doc.go │ │ │ │ ├── example_test.go │ │ │ │ ├── handshake.go │ │ │ │ ├── handshake_test.go │ │ │ │ ├── kex.go │ │ │ │ ├── kex_test.go │ │ │ │ ├── keys.go │ │ │ │ ├── keys_test.go │ │ │ │ ├── knownhosts │ │ │ │ │ ├── knownhosts.go │ │ │ │ │ └── knownhosts_test.go │ │ │ │ ├── mac.go │ │ │ │ ├── mempipe_test.go │ │ │ │ ├── messages.go │ │ │ │ ├── messages_test.go │ │ │ │ ├── mux.go │ │ │ │ ├── mux_test.go │ │ │ │ ├── server.go │ │ │ │ ├── session.go │ │ │ │ ├── session_test.go │ │ │ │ ├── streamlocal.go │ │ │ │ ├── tcpip.go │ │ │ │ ├── tcpip_test.go │ │ │ │ ├── terminal │ │ │ │ │ ├── terminal.go │ │ │ │ │ ├── terminal_test.go │ │ │ │ │ ├── util.go │ │ │ │ │ ├── util_bsd.go │ │ │ │ │ ├── util_linux.go │ │ │ │ │ ├── util_plan9.go │ │ │ │ │ ├── util_solaris.go │ │ │ │ │ └── util_windows.go │ │ │ │ ├── test │ │ │ │ │ ├── agent_unix_test.go │ │ │ │ │ ├── banner_test.go │ │ │ │ │ ├── cert_test.go │ │ │ │ │ ├── dial_unix_test.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── forward_unix_test.go │ │ │ │ │ ├── multi_auth_test.go │ │ │ │ │ ├── session_test.go │ │ │ │ │ ├── sshd_test_pw.c │ │ │ │ │ ├── test_unix_test.go │ │ │ │ │ └── testdata_test.go │ │ │ │ ├── testdata │ │ │ │ │ ├── doc.go │ │ │ │ │ └── keys.go │ │ │ │ ├── testdata_test.go │ │ │ │ ├── transport.go │ │ │ │ └── transport_test.go │ │ │ ├── tea │ │ │ │ ├── cipher.go │ │ │ │ └── tea_test.go │ │ │ ├── twofish │ │ │ │ ├── twofish.go │ │ │ │ └── twofish_test.go │ │ │ ├── xtea │ │ │ │ ├── block.go │ │ │ │ ├── cipher.go │ │ │ │ └── xtea_test.go │ │ │ └── xts │ │ │ │ ├── xts.go │ │ │ │ └── xts_test.go │ │ │ └── net │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTING.md │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ ├── README.md │ │ │ ├── bpf │ │ │ ├── asm.go │ │ │ ├── constants.go │ │ │ ├── doc.go │ │ │ ├── instructions.go │ │ │ ├── instructions_test.go │ │ │ ├── setter.go │ │ │ ├── testdata │ │ │ │ ├── all_instructions.bpf │ │ │ │ └── all_instructions.txt │ │ │ ├── vm.go │ │ │ ├── vm_aluop_test.go │ │ │ ├── vm_bpf_test.go │ │ │ ├── vm_extension_test.go │ │ │ ├── vm_instructions.go │ │ │ ├── vm_jump_test.go │ │ │ ├── vm_load_test.go │ │ │ ├── vm_ret_test.go │ │ │ ├── vm_scratch_test.go │ │ │ └── vm_test.go │ │ │ ├── codereview.cfg │ │ │ ├── context │ │ │ ├── context.go │ │ │ ├── context_test.go │ │ │ ├── ctxhttp │ │ │ │ ├── ctxhttp.go │ │ │ │ ├── ctxhttp_17_test.go │ │ │ │ ├── ctxhttp_pre17.go │ │ │ │ ├── ctxhttp_pre17_test.go │ │ │ │ └── ctxhttp_test.go │ │ │ ├── go17.go │ │ │ ├── go19.go │ │ │ ├── pre_go17.go │ │ │ ├── pre_go19.go │ │ │ └── withtimeout_test.go │ │ │ ├── dict │ │ │ └── dict.go │ │ │ ├── dns │ │ │ └── dnsmessage │ │ │ │ ├── example_test.go │ │ │ │ ├── message.go │ │ │ │ └── message_test.go │ │ │ ├── html │ │ │ ├── atom │ │ │ │ ├── atom.go │ │ │ │ ├── atom_test.go │ │ │ │ ├── gen.go │ │ │ │ ├── table.go │ │ │ │ └── table_test.go │ │ │ ├── charset │ │ │ │ ├── charset.go │ │ │ │ ├── charset_test.go │ │ │ │ └── testdata │ │ │ │ │ ├── HTTP-charset.html │ │ │ │ │ ├── HTTP-vs-UTF-8-BOM.html │ │ │ │ │ ├── HTTP-vs-meta-charset.html │ │ │ │ │ ├── HTTP-vs-meta-content.html │ │ │ │ │ ├── No-encoding-declaration.html │ │ │ │ │ ├── README │ │ │ │ │ ├── UTF-16BE-BOM.html │ │ │ │ │ ├── UTF-16LE-BOM.html │ │ │ │ │ ├── UTF-8-BOM-vs-meta-charset.html │ │ │ │ │ ├── UTF-8-BOM-vs-meta-content.html │ │ │ │ │ ├── meta-charset-attribute.html │ │ │ │ │ └── meta-content-attribute.html │ │ │ ├── const.go │ │ │ ├── doc.go │ │ │ ├── doctype.go │ │ │ ├── entity.go │ │ │ ├── entity_test.go │ │ │ ├── escape.go │ │ │ ├── escape_test.go │ │ │ ├── example_test.go │ │ │ ├── foreign.go │ │ │ ├── node.go │ │ │ ├── node_test.go │ │ │ ├── parse.go │ │ │ ├── parse_test.go │ │ │ ├── render.go │ │ │ ├── render_test.go │ │ │ ├── testdata │ │ │ │ ├── go1.html │ │ │ │ └── webkit │ │ │ │ │ ├── README │ │ │ │ │ ├── adoption01.dat │ │ │ │ │ ├── adoption02.dat │ │ │ │ │ ├── comments01.dat │ │ │ │ │ ├── doctype01.dat │ │ │ │ │ ├── entities01.dat │ │ │ │ │ ├── entities02.dat │ │ │ │ │ ├── html5test-com.dat │ │ │ │ │ ├── inbody01.dat │ │ │ │ │ ├── isindex.dat │ │ │ │ │ ├── pending-spec-changes-plain-text-unsafe.dat │ │ │ │ │ ├── pending-spec-changes.dat │ │ │ │ │ ├── plain-text-unsafe.dat │ │ │ │ │ ├── ruby.dat │ │ │ │ │ ├── scriptdata01.dat │ │ │ │ │ ├── scripted │ │ │ │ │ ├── adoption01.dat │ │ │ │ │ └── webkit01.dat │ │ │ │ │ ├── tables01.dat │ │ │ │ │ ├── template.dat │ │ │ │ │ ├── tests1.dat │ │ │ │ │ ├── tests10.dat │ │ │ │ │ ├── tests11.dat │ │ │ │ │ ├── tests12.dat │ │ │ │ │ ├── tests14.dat │ │ │ │ │ ├── tests15.dat │ │ │ │ │ ├── tests16.dat │ │ │ │ │ ├── tests17.dat │ │ │ │ │ ├── tests18.dat │ │ │ │ │ ├── tests19.dat │ │ │ │ │ ├── tests2.dat │ │ │ │ │ ├── tests20.dat │ │ │ │ │ ├── tests21.dat │ │ │ │ │ ├── tests22.dat │ │ │ │ │ ├── tests23.dat │ │ │ │ │ ├── tests24.dat │ │ │ │ │ ├── tests25.dat │ │ │ │ │ ├── tests26.dat │ │ │ │ │ ├── tests3.dat │ │ │ │ │ ├── tests4.dat │ │ │ │ │ ├── tests5.dat │ │ │ │ │ ├── tests6.dat │ │ │ │ │ ├── tests7.dat │ │ │ │ │ ├── tests8.dat │ │ │ │ │ ├── tests9.dat │ │ │ │ │ ├── tests_innerHTML_1.dat │ │ │ │ │ ├── tricky01.dat │ │ │ │ │ ├── webkit01.dat │ │ │ │ │ └── webkit02.dat │ │ │ ├── token.go │ │ │ └── token_test.go │ │ │ ├── http │ │ │ ├── httpguts │ │ │ │ ├── guts.go │ │ │ │ ├── httplex.go │ │ │ │ └── httplex_test.go │ │ │ └── httpproxy │ │ │ │ ├── export_test.go │ │ │ │ ├── go19_test.go │ │ │ │ ├── proxy.go │ │ │ │ └── proxy_test.go │ │ │ ├── http2 │ │ │ ├── Dockerfile │ │ │ ├── Makefile │ │ │ ├── README │ │ │ ├── ciphers.go │ │ │ ├── ciphers_test.go │ │ │ ├── client_conn_pool.go │ │ │ ├── configure_transport.go │ │ │ ├── databuffer.go │ │ │ ├── databuffer_test.go │ │ │ ├── errors.go │ │ │ ├── errors_test.go │ │ │ ├── flow.go │ │ │ ├── flow_test.go │ │ │ ├── frame.go │ │ │ ├── frame_test.go │ │ │ ├── go16.go │ │ │ ├── go17.go │ │ │ ├── go17_not18.go │ │ │ ├── go18.go │ │ │ ├── go18_test.go │ │ │ ├── go19.go │ │ │ ├── go19_test.go │ │ │ ├── gotrack.go │ │ │ ├── gotrack_test.go │ │ │ ├── h2demo │ │ │ │ ├── Dockerfile │ │ │ │ ├── Dockerfile.0 │ │ │ │ ├── Makefile │ │ │ │ ├── README │ │ │ │ ├── deployment-prod.yaml │ │ │ │ ├── h2demo.go │ │ │ │ ├── launch.go │ │ │ │ ├── rootCA.key │ │ │ │ ├── rootCA.pem │ │ │ │ ├── rootCA.srl │ │ │ │ ├── server.crt │ │ │ │ ├── server.key │ │ │ │ ├── service.yaml │ │ │ │ └── tmpl.go │ │ │ ├── h2i │ │ │ │ ├── README.md │ │ │ │ └── h2i.go │ │ │ ├── headermap.go │ │ │ ├── hpack │ │ │ │ ├── encode.go │ │ │ │ ├── encode_test.go │ │ │ │ ├── hpack.go │ │ │ │ ├── hpack_test.go │ │ │ │ ├── huffman.go │ │ │ │ ├── tables.go │ │ │ │ └── tables_test.go │ │ │ ├── http2.go │ │ │ ├── http2_test.go │ │ │ ├── not_go16.go │ │ │ ├── not_go17.go │ │ │ ├── not_go18.go │ │ │ ├── not_go19.go │ │ │ ├── pipe.go │ │ │ ├── pipe_test.go │ │ │ ├── server.go │ │ │ ├── server_push_test.go │ │ │ ├── server_test.go │ │ │ ├── testdata │ │ │ │ └── draft-ietf-httpbis-http2.xml │ │ │ ├── transport.go │ │ │ ├── transport_test.go │ │ │ ├── write.go │ │ │ ├── writesched.go │ │ │ ├── writesched_priority.go │ │ │ ├── writesched_priority_test.go │ │ │ ├── writesched_random.go │ │ │ ├── writesched_random_test.go │ │ │ ├── writesched_test.go │ │ │ └── z_spec_test.go │ │ │ ├── icmp │ │ │ ├── diag_test.go │ │ │ ├── dstunreach.go │ │ │ ├── echo.go │ │ │ ├── endpoint.go │ │ │ ├── example_test.go │ │ │ ├── extension.go │ │ │ ├── extension_test.go │ │ │ ├── helper_posix.go │ │ │ ├── interface.go │ │ │ ├── ipv4.go │ │ │ ├── ipv4_test.go │ │ │ ├── ipv6.go │ │ │ ├── listen_posix.go │ │ │ ├── listen_stub.go │ │ │ ├── message.go │ │ │ ├── message_test.go │ │ │ ├── messagebody.go │ │ │ ├── mpls.go │ │ │ ├── multipart.go │ │ │ ├── multipart_test.go │ │ │ ├── packettoobig.go │ │ │ ├── paramprob.go │ │ │ ├── sys_freebsd.go │ │ │ └── timeexceeded.go │ │ │ ├── idna │ │ │ ├── example_test.go │ │ │ ├── idna.go │ │ │ ├── idna_test.go │ │ │ ├── punycode.go │ │ │ ├── punycode_test.go │ │ │ ├── tables.go │ │ │ ├── trie.go │ │ │ └── trieval.go │ │ │ ├── internal │ │ │ ├── iana │ │ │ │ ├── const.go │ │ │ │ └── gen.go │ │ │ ├── nettest │ │ │ │ ├── helper_bsd.go │ │ │ │ ├── helper_nobsd.go │ │ │ │ ├── helper_posix.go │ │ │ │ ├── helper_stub.go │ │ │ │ ├── helper_unix.go │ │ │ │ ├── helper_windows.go │ │ │ │ ├── interface.go │ │ │ │ ├── rlimit.go │ │ │ │ └── stack.go │ │ │ ├── socket │ │ │ │ ├── cmsghdr.go │ │ │ │ ├── cmsghdr_bsd.go │ │ │ │ ├── cmsghdr_linux_32bit.go │ │ │ │ ├── cmsghdr_linux_64bit.go │ │ │ │ ├── cmsghdr_solaris_64bit.go │ │ │ │ ├── cmsghdr_stub.go │ │ │ │ ├── defs_darwin.go │ │ │ │ ├── defs_dragonfly.go │ │ │ │ ├── defs_freebsd.go │ │ │ │ ├── defs_linux.go │ │ │ │ ├── defs_netbsd.go │ │ │ │ ├── defs_openbsd.go │ │ │ │ ├── defs_solaris.go │ │ │ │ ├── error_unix.go │ │ │ │ ├── error_windows.go │ │ │ │ ├── iovec_32bit.go │ │ │ │ ├── iovec_64bit.go │ │ │ │ ├── iovec_solaris_64bit.go │ │ │ │ ├── iovec_stub.go │ │ │ │ ├── mmsghdr_stub.go │ │ │ │ ├── mmsghdr_unix.go │ │ │ │ ├── msghdr_bsd.go │ │ │ │ ├── msghdr_bsdvar.go │ │ │ │ ├── msghdr_linux.go │ │ │ │ ├── msghdr_linux_32bit.go │ │ │ │ ├── msghdr_linux_64bit.go │ │ │ │ ├── msghdr_openbsd.go │ │ │ │ ├── msghdr_solaris_64bit.go │ │ │ │ ├── msghdr_stub.go │ │ │ │ ├── rawconn.go │ │ │ │ ├── rawconn_mmsg.go │ │ │ │ ├── rawconn_msg.go │ │ │ │ ├── rawconn_nommsg.go │ │ │ │ ├── rawconn_nomsg.go │ │ │ │ ├── rawconn_stub.go │ │ │ │ ├── reflect.go │ │ │ │ ├── socket.go │ │ │ │ ├── socket_go1_9_test.go │ │ │ │ ├── socket_test.go │ │ │ │ ├── sys.go │ │ │ │ ├── sys_bsd.go │ │ │ │ ├── sys_bsdvar.go │ │ │ │ ├── sys_darwin.go │ │ │ │ ├── sys_dragonfly.go │ │ │ │ ├── sys_linux.go │ │ │ │ ├── sys_linux_386.go │ │ │ │ ├── sys_linux_386.s │ │ │ │ ├── sys_linux_amd64.go │ │ │ │ ├── sys_linux_arm.go │ │ │ │ ├── sys_linux_arm64.go │ │ │ │ ├── sys_linux_mips.go │ │ │ │ ├── sys_linux_mips64.go │ │ │ │ ├── sys_linux_mips64le.go │ │ │ │ ├── sys_linux_mipsle.go │ │ │ │ ├── sys_linux_ppc64.go │ │ │ │ ├── sys_linux_ppc64le.go │ │ │ │ ├── sys_linux_s390x.go │ │ │ │ ├── sys_linux_s390x.s │ │ │ │ ├── sys_netbsd.go │ │ │ │ ├── sys_posix.go │ │ │ │ ├── sys_solaris.go │ │ │ │ ├── sys_solaris_amd64.s │ │ │ │ ├── sys_stub.go │ │ │ │ ├── sys_unix.go │ │ │ │ ├── sys_windows.go │ │ │ │ ├── zsys_darwin_386.go │ │ │ │ ├── zsys_darwin_amd64.go │ │ │ │ ├── zsys_darwin_arm.go │ │ │ │ ├── zsys_darwin_arm64.go │ │ │ │ ├── zsys_dragonfly_amd64.go │ │ │ │ ├── zsys_freebsd_386.go │ │ │ │ ├── zsys_freebsd_amd64.go │ │ │ │ ├── zsys_freebsd_arm.go │ │ │ │ ├── zsys_linux_386.go │ │ │ │ ├── zsys_linux_amd64.go │ │ │ │ ├── zsys_linux_arm.go │ │ │ │ ├── zsys_linux_arm64.go │ │ │ │ ├── zsys_linux_mips.go │ │ │ │ ├── zsys_linux_mips64.go │ │ │ │ ├── zsys_linux_mips64le.go │ │ │ │ ├── zsys_linux_mipsle.go │ │ │ │ ├── zsys_linux_ppc64.go │ │ │ │ ├── zsys_linux_ppc64le.go │ │ │ │ ├── zsys_linux_s390x.go │ │ │ │ ├── zsys_netbsd_386.go │ │ │ │ ├── zsys_netbsd_amd64.go │ │ │ │ ├── zsys_netbsd_arm.go │ │ │ │ ├── zsys_openbsd_386.go │ │ │ │ ├── zsys_openbsd_amd64.go │ │ │ │ ├── zsys_openbsd_arm.go │ │ │ │ └── zsys_solaris_amd64.go │ │ │ ├── socks │ │ │ │ ├── client.go │ │ │ │ ├── dial_test.go │ │ │ │ └── socks.go │ │ │ ├── sockstest │ │ │ │ ├── server.go │ │ │ │ └── server_test.go │ │ │ └── timeseries │ │ │ │ ├── timeseries.go │ │ │ │ └── timeseries_test.go │ │ │ ├── ipv4 │ │ │ ├── batch.go │ │ │ ├── bpf_test.go │ │ │ ├── control.go │ │ │ ├── control_bsd.go │ │ │ ├── control_pktinfo.go │ │ │ ├── control_stub.go │ │ │ ├── control_test.go │ │ │ ├── control_unix.go │ │ │ ├── control_windows.go │ │ │ ├── defs_darwin.go │ │ │ ├── defs_dragonfly.go │ │ │ ├── defs_freebsd.go │ │ │ ├── defs_linux.go │ │ │ ├── defs_netbsd.go │ │ │ ├── defs_openbsd.go │ │ │ ├── defs_solaris.go │ │ │ ├── dgramopt.go │ │ │ ├── doc.go │ │ │ ├── endpoint.go │ │ │ ├── example_test.go │ │ │ ├── gen.go │ │ │ ├── genericopt.go │ │ │ ├── header.go │ │ │ ├── header_test.go │ │ │ ├── helper.go │ │ │ ├── iana.go │ │ │ ├── icmp.go │ │ │ ├── icmp_linux.go │ │ │ ├── icmp_stub.go │ │ │ ├── icmp_test.go │ │ │ ├── multicast_test.go │ │ │ ├── multicastlistener_test.go │ │ │ ├── multicastsockopt_test.go │ │ │ ├── packet.go │ │ │ ├── packet_go1_8.go │ │ │ ├── packet_go1_9.go │ │ │ ├── payload.go │ │ │ ├── payload_cmsg.go │ │ │ ├── payload_cmsg_go1_8.go │ │ │ ├── payload_cmsg_go1_9.go │ │ │ ├── payload_nocmsg.go │ │ │ ├── readwrite_go1_8_test.go │ │ │ ├── readwrite_go1_9_test.go │ │ │ ├── readwrite_test.go │ │ │ ├── sockopt.go │ │ │ ├── sockopt_posix.go │ │ │ ├── sockopt_stub.go │ │ │ ├── sys_asmreq.go │ │ │ ├── sys_asmreq_stub.go │ │ │ ├── sys_asmreqn.go │ │ │ ├── sys_asmreqn_stub.go │ │ │ ├── sys_bpf.go │ │ │ ├── sys_bpf_stub.go │ │ │ ├── sys_bsd.go │ │ │ ├── sys_darwin.go │ │ │ ├── sys_dragonfly.go │ │ │ ├── sys_freebsd.go │ │ │ ├── sys_linux.go │ │ │ ├── sys_solaris.go │ │ │ ├── sys_ssmreq.go │ │ │ ├── sys_ssmreq_stub.go │ │ │ ├── sys_stub.go │ │ │ ├── sys_windows.go │ │ │ ├── unicast_test.go │ │ │ ├── unicastsockopt_test.go │ │ │ ├── zsys_darwin.go │ │ │ ├── zsys_dragonfly.go │ │ │ ├── zsys_freebsd_386.go │ │ │ ├── zsys_freebsd_amd64.go │ │ │ ├── zsys_freebsd_arm.go │ │ │ ├── zsys_linux_386.go │ │ │ ├── zsys_linux_amd64.go │ │ │ ├── zsys_linux_arm.go │ │ │ ├── zsys_linux_arm64.go │ │ │ ├── zsys_linux_mips.go │ │ │ ├── zsys_linux_mips64.go │ │ │ ├── zsys_linux_mips64le.go │ │ │ ├── zsys_linux_mipsle.go │ │ │ ├── zsys_linux_ppc.go │ │ │ ├── zsys_linux_ppc64.go │ │ │ ├── zsys_linux_ppc64le.go │ │ │ ├── zsys_linux_s390x.go │ │ │ ├── zsys_netbsd.go │ │ │ ├── zsys_openbsd.go │ │ │ └── zsys_solaris.go │ │ │ ├── ipv6 │ │ │ ├── batch.go │ │ │ ├── bpf_test.go │ │ │ ├── control.go │ │ │ ├── control_rfc2292_unix.go │ │ │ ├── control_rfc3542_unix.go │ │ │ ├── control_stub.go │ │ │ ├── control_test.go │ │ │ ├── control_unix.go │ │ │ ├── control_windows.go │ │ │ ├── defs_darwin.go │ │ │ ├── defs_dragonfly.go │ │ │ ├── defs_freebsd.go │ │ │ ├── defs_linux.go │ │ │ ├── defs_netbsd.go │ │ │ ├── defs_openbsd.go │ │ │ ├── defs_solaris.go │ │ │ ├── dgramopt.go │ │ │ ├── doc.go │ │ │ ├── endpoint.go │ │ │ ├── example_test.go │ │ │ ├── gen.go │ │ │ ├── genericopt.go │ │ │ ├── header.go │ │ │ ├── header_test.go │ │ │ ├── helper.go │ │ │ ├── iana.go │ │ │ ├── icmp.go │ │ │ ├── icmp_bsd.go │ │ │ ├── icmp_linux.go │ │ │ ├── icmp_solaris.go │ │ │ ├── icmp_stub.go │ │ │ ├── icmp_test.go │ │ │ ├── icmp_windows.go │ │ │ ├── mocktransponder_test.go │ │ │ ├── multicast_test.go │ │ │ ├── multicastlistener_test.go │ │ │ ├── multicastsockopt_test.go │ │ │ ├── payload.go │ │ │ ├── payload_cmsg.go │ │ │ ├── payload_cmsg_go1_8.go │ │ │ ├── payload_cmsg_go1_9.go │ │ │ ├── payload_nocmsg.go │ │ │ ├── readwrite_go1_8_test.go │ │ │ ├── readwrite_go1_9_test.go │ │ │ ├── readwrite_test.go │ │ │ ├── sockopt.go │ │ │ ├── sockopt_posix.go │ │ │ ├── sockopt_stub.go │ │ │ ├── sockopt_test.go │ │ │ ├── sys_asmreq.go │ │ │ ├── sys_asmreq_stub.go │ │ │ ├── sys_bpf.go │ │ │ ├── sys_bpf_stub.go │ │ │ ├── sys_bsd.go │ │ │ ├── sys_darwin.go │ │ │ ├── sys_freebsd.go │ │ │ ├── sys_linux.go │ │ │ ├── sys_solaris.go │ │ │ ├── sys_ssmreq.go │ │ │ ├── sys_ssmreq_stub.go │ │ │ ├── sys_stub.go │ │ │ ├── sys_windows.go │ │ │ ├── unicast_test.go │ │ │ ├── unicastsockopt_test.go │ │ │ ├── zsys_darwin.go │ │ │ ├── zsys_dragonfly.go │ │ │ ├── zsys_freebsd_386.go │ │ │ ├── zsys_freebsd_amd64.go │ │ │ ├── zsys_freebsd_arm.go │ │ │ ├── zsys_linux_386.go │ │ │ ├── zsys_linux_amd64.go │ │ │ ├── zsys_linux_arm.go │ │ │ ├── zsys_linux_arm64.go │ │ │ ├── zsys_linux_mips.go │ │ │ ├── zsys_linux_mips64.go │ │ │ ├── zsys_linux_mips64le.go │ │ │ ├── zsys_linux_mipsle.go │ │ │ ├── zsys_linux_ppc.go │ │ │ ├── zsys_linux_ppc64.go │ │ │ ├── zsys_linux_ppc64le.go │ │ │ ├── zsys_linux_s390x.go │ │ │ ├── zsys_netbsd.go │ │ │ ├── zsys_openbsd.go │ │ │ └── zsys_solaris.go │ │ │ ├── lif │ │ │ ├── address.go │ │ │ ├── address_test.go │ │ │ ├── binary.go │ │ │ ├── defs_solaris.go │ │ │ ├── lif.go │ │ │ ├── link.go │ │ │ ├── link_test.go │ │ │ ├── sys.go │ │ │ ├── sys_solaris_amd64.s │ │ │ ├── syscall.go │ │ │ └── zsys_solaris_amd64.go │ │ │ ├── nettest │ │ │ ├── conntest.go │ │ │ ├── conntest_go16.go │ │ │ ├── conntest_go17.go │ │ │ └── conntest_test.go │ │ │ ├── netutil │ │ │ ├── listen.go │ │ │ └── listen_test.go │ │ │ ├── proxy │ │ │ ├── direct.go │ │ │ ├── per_host.go │ │ │ ├── per_host_test.go │ │ │ ├── proxy.go │ │ │ ├── proxy_test.go │ │ │ └── socks5.go │ │ │ ├── publicsuffix │ │ │ ├── gen.go │ │ │ ├── list.go │ │ │ ├── list_test.go │ │ │ ├── table.go │ │ │ └── table_test.go │ │ │ ├── route │ │ │ ├── address.go │ │ │ ├── address_darwin_test.go │ │ │ ├── address_test.go │ │ │ ├── binary.go │ │ │ ├── defs_darwin.go │ │ │ ├── defs_dragonfly.go │ │ │ ├── defs_freebsd.go │ │ │ ├── defs_netbsd.go │ │ │ ├── defs_openbsd.go │ │ │ ├── interface.go │ │ │ ├── interface_announce.go │ │ │ ├── interface_classic.go │ │ │ ├── interface_freebsd.go │ │ │ ├── interface_multicast.go │ │ │ ├── interface_openbsd.go │ │ │ ├── message.go │ │ │ ├── message_darwin_test.go │ │ │ ├── message_freebsd_test.go │ │ │ ├── message_test.go │ │ │ ├── route.go │ │ │ ├── route_classic.go │ │ │ ├── route_openbsd.go │ │ │ ├── route_test.go │ │ │ ├── sys.go │ │ │ ├── sys_darwin.go │ │ │ ├── sys_dragonfly.go │ │ │ ├── sys_freebsd.go │ │ │ ├── sys_netbsd.go │ │ │ ├── sys_openbsd.go │ │ │ ├── syscall.go │ │ │ ├── zsys_darwin.go │ │ │ ├── zsys_dragonfly.go │ │ │ ├── zsys_freebsd_386.go │ │ │ ├── zsys_freebsd_amd64.go │ │ │ ├── zsys_freebsd_arm.go │ │ │ ├── zsys_netbsd.go │ │ │ └── zsys_openbsd.go │ │ │ ├── trace │ │ │ ├── events.go │ │ │ ├── histogram.go │ │ │ ├── histogram_test.go │ │ │ ├── trace.go │ │ │ ├── trace_go16.go │ │ │ ├── trace_go17.go │ │ │ └── trace_test.go │ │ │ ├── webdav │ │ │ ├── file.go │ │ │ ├── file_go1.6.go │ │ │ ├── file_go1.7.go │ │ │ ├── file_test.go │ │ │ ├── if.go │ │ │ ├── if_test.go │ │ │ ├── internal │ │ │ │ └── xml │ │ │ │ │ ├── README │ │ │ │ │ ├── atom_test.go │ │ │ │ │ ├── example_test.go │ │ │ │ │ ├── marshal.go │ │ │ │ │ ├── marshal_test.go │ │ │ │ │ ├── read.go │ │ │ │ │ ├── read_test.go │ │ │ │ │ ├── typeinfo.go │ │ │ │ │ ├── xml.go │ │ │ │ │ └── xml_test.go │ │ │ ├── litmus_test_server.go │ │ │ ├── lock.go │ │ │ ├── lock_test.go │ │ │ ├── prop.go │ │ │ ├── prop_test.go │ │ │ ├── webdav.go │ │ │ ├── webdav_test.go │ │ │ ├── xml.go │ │ │ └── xml_test.go │ │ │ ├── websocket │ │ │ ├── client.go │ │ │ ├── dial.go │ │ │ ├── dial_test.go │ │ │ ├── exampledial_test.go │ │ │ ├── examplehandler_test.go │ │ │ ├── hybi.go │ │ │ ├── hybi_test.go │ │ │ ├── server.go │ │ │ ├── websocket.go │ │ │ └── websocket_test.go │ │ │ └── xsrftoken │ │ │ ├── xsrf.go │ │ │ └── xsrf_test.go │ │ ├── version.go │ │ ├── version_test.go │ │ ├── xfr.go │ │ ├── zcompress.go │ │ ├── zduplicate.go │ │ ├── zmsg.go │ │ └── ztypes.go ├── op │ └── go-logging │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTORS │ │ ├── LICENSE │ │ ├── README.md │ │ ├── backend.go │ │ ├── example_test.go │ │ ├── examples │ │ ├── example.go │ │ └── example.png │ │ ├── format.go │ │ ├── format_test.go │ │ ├── level.go │ │ ├── level_test.go │ │ ├── log_nix.go │ │ ├── log_test.go │ │ ├── log_windows.go │ │ ├── logger.go │ │ ├── logger_test.go │ │ ├── memory.go │ │ ├── memory_test.go │ │ ├── multi.go │ │ ├── multi_test.go │ │ ├── syslog.go │ │ └── syslog_fallback.go ├── prometheus │ ├── client_golang │ │ └── prometheus │ │ │ ├── README.md │ │ │ ├── benchmark_test.go │ │ │ ├── collector.go │ │ │ ├── counter.go │ │ │ ├── counter_test.go │ │ │ ├── desc.go │ │ │ ├── desc_test.go │ │ │ ├── doc.go │ │ │ ├── example_clustermanager_test.go │ │ │ ├── example_timer_complex_test.go │ │ │ ├── example_timer_gauge_test.go │ │ │ ├── example_timer_test.go │ │ │ ├── examples_test.go │ │ │ ├── expvar_collector.go │ │ │ ├── expvar_collector_test.go │ │ │ ├── fnv.go │ │ │ ├── gauge.go │ │ │ ├── gauge_test.go │ │ │ ├── go_collector.go │ │ │ ├── go_collector_test.go │ │ │ ├── graphite │ │ │ ├── bridge.go │ │ │ └── bridge_test.go │ │ │ ├── histogram.go │ │ │ ├── histogram_test.go │ │ │ ├── http.go │ │ │ ├── http_test.go │ │ │ ├── labels.go │ │ │ ├── metric.go │ │ │ ├── metric_test.go │ │ │ ├── observer.go │ │ │ ├── process_collector.go │ │ │ ├── process_collector_test.go │ │ │ ├── promauto │ │ │ └── auto.go │ │ │ ├── promhttp │ │ │ ├── delegator.go │ │ │ ├── delegator_1_8.go │ │ │ ├── delegator_pre_1_8.go │ │ │ ├── http.go │ │ │ ├── http_test.go │ │ │ ├── instrument_client.go │ │ │ ├── instrument_client_1_8.go │ │ │ ├── instrument_client_1_8_test.go │ │ │ ├── instrument_server.go │ │ │ └── instrument_server_test.go │ │ │ ├── push │ │ │ ├── deprecated.go │ │ │ ├── example_add_from_gatherer_test.go │ │ │ ├── examples_test.go │ │ │ ├── push.go │ │ │ └── push_test.go │ │ │ ├── registry.go │ │ │ ├── registry_test.go │ │ │ ├── summary.go │ │ │ ├── summary_test.go │ │ │ ├── timer.go │ │ │ ├── timer_test.go │ │ │ ├── untyped.go │ │ │ ├── value.go │ │ │ ├── value_test.go │ │ │ ├── vec.go │ │ │ └── vec_test.go │ ├── client_model │ │ └── go │ │ │ └── metrics.pb.go │ ├── common │ │ ├── expfmt │ │ │ ├── bench_test.go │ │ │ ├── decode.go │ │ │ ├── decode_test.go │ │ │ ├── encode.go │ │ │ ├── expfmt.go │ │ │ ├── fuzz.go │ │ │ ├── fuzz │ │ │ │ └── corpus │ │ │ │ │ ├── from_test_parse_0 │ │ │ │ │ ├── from_test_parse_1 │ │ │ │ │ ├── from_test_parse_2 │ │ │ │ │ ├── from_test_parse_3 │ │ │ │ │ ├── from_test_parse_4 │ │ │ │ │ ├── from_test_parse_error_0 │ │ │ │ │ ├── from_test_parse_error_1 │ │ │ │ │ ├── from_test_parse_error_10 │ │ │ │ │ ├── from_test_parse_error_11 │ │ │ │ │ ├── from_test_parse_error_12 │ │ │ │ │ ├── from_test_parse_error_13 │ │ │ │ │ ├── from_test_parse_error_14 │ │ │ │ │ ├── from_test_parse_error_15 │ │ │ │ │ ├── from_test_parse_error_16 │ │ │ │ │ ├── from_test_parse_error_17 │ │ │ │ │ ├── from_test_parse_error_18 │ │ │ │ │ ├── from_test_parse_error_19 │ │ │ │ │ ├── from_test_parse_error_2 │ │ │ │ │ ├── from_test_parse_error_3 │ │ │ │ │ ├── from_test_parse_error_4 │ │ │ │ │ ├── from_test_parse_error_5 │ │ │ │ │ ├── from_test_parse_error_6 │ │ │ │ │ ├── from_test_parse_error_7 │ │ │ │ │ ├── from_test_parse_error_8 │ │ │ │ │ ├── from_test_parse_error_9 │ │ │ │ │ └── minimal │ │ │ ├── testdata │ │ │ │ ├── json2 │ │ │ │ ├── json2_bad │ │ │ │ ├── protobuf │ │ │ │ └── text │ │ │ ├── text_create.go │ │ │ ├── text_create_test.go │ │ │ ├── text_parse.go │ │ │ └── text_parse_test.go │ │ ├── internal │ │ │ └── bitbucket.org │ │ │ │ └── ww │ │ │ │ └── goautoneg │ │ │ │ ├── README.txt │ │ │ │ ├── autoneg.go │ │ │ │ └── autoneg_test.go │ │ └── model │ │ │ ├── alert.go │ │ │ ├── alert_test.go │ │ │ ├── fingerprinting.go │ │ │ ├── fnv.go │ │ │ ├── labels.go │ │ │ ├── labels_test.go │ │ │ ├── labelset.go │ │ │ ├── metric.go │ │ │ ├── metric_test.go │ │ │ ├── model.go │ │ │ ├── signature.go │ │ │ ├── signature_test.go │ │ │ ├── silence.go │ │ │ ├── silence_test.go │ │ │ ├── time.go │ │ │ ├── time_test.go │ │ │ ├── value.go │ │ │ └── value_test.go │ └── procfs │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── MAINTAINERS.md │ │ ├── Makefile │ │ ├── NOTICE │ │ ├── README.md │ │ ├── bcache │ │ ├── bcache.go │ │ ├── get.go │ │ └── get_test.go │ │ ├── buddyinfo.go │ │ ├── buddyinfo_test.go │ │ ├── doc.go │ │ ├── fixtures.ttar │ │ ├── fs.go │ │ ├── fs_test.go │ │ ├── internal │ │ └── util │ │ │ └── parse.go │ │ ├── ipvs.go │ │ ├── ipvs_test.go │ │ ├── mdstat.go │ │ ├── mdstat_test.go │ │ ├── mountstats.go │ │ ├── mountstats_test.go │ │ ├── net_dev.go │ │ ├── net_dev_test.go │ │ ├── nfs │ │ ├── nfs.go │ │ ├── parse.go │ │ ├── parse_nfs.go │ │ ├── parse_nfs_test.go │ │ ├── parse_nfsd.go │ │ └── parse_nfsd_test.go │ │ ├── proc.go │ │ ├── proc_io.go │ │ ├── proc_io_test.go │ │ ├── proc_limits.go │ │ ├── proc_limits_test.go │ │ ├── proc_ns.go │ │ ├── proc_ns_test.go │ │ ├── proc_stat.go │ │ ├── proc_stat_test.go │ │ ├── proc_test.go │ │ ├── scripts │ │ └── check_license.sh │ │ ├── stat.go │ │ ├── stat_test.go │ │ ├── sysfs │ │ ├── doc.go │ │ ├── fixtures.ttar │ │ ├── fs.go │ │ ├── fs_test.go │ │ ├── net_class.go │ │ └── net_class_test.go │ │ ├── ttar │ │ ├── xfrm.go │ │ ├── xfrm_test.go │ │ └── xfs │ │ ├── parse.go │ │ ├── parse_test.go │ │ └── xfs.go ├── rcrowley │ └── go-metrics │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cmd │ │ ├── metrics-bench │ │ │ └── metrics-bench.go │ │ ├── metrics-example │ │ │ └── metrics-example.go │ │ └── never-read │ │ │ └── never-read.go │ │ ├── counter.go │ │ ├── counter_test.go │ │ ├── debug.go │ │ ├── debug_test.go │ │ ├── ewma.go │ │ ├── ewma_test.go │ │ ├── exp │ │ └── exp.go │ │ ├── gauge.go │ │ ├── gauge_float64.go │ │ ├── gauge_float64_test.go │ │ ├── gauge_test.go │ │ ├── graphite.go │ │ ├── graphite_test.go │ │ ├── healthcheck.go │ │ ├── histogram.go │ │ ├── histogram_test.go │ │ ├── json.go │ │ ├── json_test.go │ │ ├── librato │ │ ├── client.go │ │ └── librato.go │ │ ├── log.go │ │ ├── memory.md │ │ ├── meter.go │ │ ├── meter_test.go │ │ ├── metrics.go │ │ ├── metrics_test.go │ │ ├── opentsdb.go │ │ ├── opentsdb_test.go │ │ ├── registry.go │ │ ├── registry_test.go │ │ ├── runtime.go │ │ ├── runtime_cgo.go │ │ ├── runtime_gccpufraction.go │ │ ├── runtime_no_cgo.go │ │ ├── runtime_no_gccpufraction.go │ │ ├── runtime_test.go │ │ ├── sample.go │ │ ├── sample_test.go │ │ ├── stathat │ │ └── stathat.go │ │ ├── syslog.go │ │ ├── timer.go │ │ ├── timer_test.go │ │ ├── validate.sh │ │ ├── writer.go │ │ └── writer_test.go ├── skynetservices │ └── skydns │ │ ├── AUTHORS │ │ ├── CONTRIBUTORS │ │ ├── Dockerfile │ │ ├── Gopkg.lock │ │ ├── Gopkg.toml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── backends │ │ ├── etcd │ │ │ └── etcd.go │ │ └── etcd3 │ │ │ └── etcd3.go │ │ ├── cache │ │ ├── cache.go │ │ ├── cache_test.go │ │ └── hit.go │ │ ├── main.go │ │ ├── metrics │ │ └── metrics.go │ │ ├── msg │ │ ├── service.go │ │ └── service_test.go │ │ ├── server │ │ ├── backend.go │ │ ├── cache_test.go │ │ ├── config.go │ │ ├── dnssec.go │ │ ├── doc.go │ │ ├── exchange.go │ │ ├── forwarding.go │ │ ├── log.go │ │ ├── metrics_test.go │ │ ├── msg.go │ │ ├── nsec3.go │ │ ├── server.go │ │ ├── server_test.go │ │ └── stub.go │ │ └── singleflight │ │ └── singleflight.go ├── stathat │ └── go │ │ ├── LICENSE │ │ ├── README.md │ │ ├── example_test.go │ │ ├── stathat.go │ │ └── stathat_test.go ├── ugorji │ └── go │ │ └── codec │ │ ├── 0doc.go │ │ ├── README.md │ │ ├── binc.go │ │ ├── build.sh │ │ ├── cbor.go │ │ ├── cbor_test.go │ │ ├── codec_test.go │ │ ├── codecgen │ │ ├── README.md │ │ ├── gen.go │ │ └── z.go │ │ ├── decode.go │ │ ├── encode.go │ │ ├── fast-path.generated.go │ │ ├── fast-path.go.tmpl │ │ ├── fast-path.not.go │ │ ├── gen-dec-array.go.tmpl │ │ ├── gen-dec-map.go.tmpl │ │ ├── gen-enc-chan.go.tmpl │ │ ├── gen-helper.generated.go │ │ ├── gen-helper.go.tmpl │ │ ├── gen.generated.go │ │ ├── gen.go │ │ ├── goversion_arrayof_gte_go15.go │ │ ├── goversion_arrayof_lt_go15.go │ │ ├── goversion_makemap_gte_go19.go │ │ ├── goversion_makemap_lt_go19.go │ │ ├── goversion_unexportedembeddedptr_gte_go110.go │ │ ├── goversion_unexportedembeddedptr_lt_go110.go │ │ ├── goversion_unsupported_lt_go14.go │ │ ├── goversion_vendor_eq_go15.go │ │ ├── goversion_vendor_eq_go16.go │ │ ├── goversion_vendor_gte_go17.go │ │ ├── goversion_vendor_lt_go15.go │ │ ├── helper.go │ │ ├── helper_internal.go │ │ ├── helper_not_unsafe.go │ │ ├── helper_test.go │ │ ├── helper_unsafe.go │ │ ├── json.go │ │ ├── mammoth-test.go.tmpl │ │ ├── mammoth2-test.go.tmpl │ │ ├── mammoth2_codecgen_generated_test.go │ │ ├── mammoth2_generated_test.go │ │ ├── mammoth_generated_test.go │ │ ├── msgpack.go │ │ ├── py_test.go │ │ ├── rpc.go │ │ ├── shared_test.go │ │ ├── simple.go │ │ ├── test-cbor-goldens.json │ │ ├── test.py │ │ ├── values_flex_test.go │ │ ├── values_test.go │ │ ├── xml.go │ │ └── z_all_test.go ├── whyrusleeping │ └── go-tftp │ │ ├── client │ │ └── client.go │ │ └── packet │ │ ├── packet.go │ │ └── packet_test.go └── zignig │ └── go-tftp │ ├── README.md │ ├── client │ └── client.go │ ├── main.go │ ├── packet │ ├── packet.go │ └── packet_test.go │ ├── server │ ├── readreq.go │ ├── server.go │ └── writereq.go │ └── tftp-stress │ ├── main.go │ └── utils.go ├── golang.org └── x │ ├── crypto │ └── ed25519 │ │ ├── ed25519.go │ │ ├── ed25519_test.go │ │ └── internal │ │ └── edwards25519 │ │ ├── const.go │ │ └── edwards25519.go │ └── net │ ├── bpf │ ├── asm.go │ ├── constants.go │ ├── doc.go │ ├── instructions.go │ ├── instructions_test.go │ ├── setter.go │ ├── testdata │ │ ├── all_instructions.bpf │ │ └── all_instructions.txt │ ├── vm.go │ ├── vm_aluop_test.go │ ├── vm_bpf_test.go │ ├── vm_extension_test.go │ ├── vm_instructions.go │ ├── vm_jump_test.go │ ├── vm_load_test.go │ ├── vm_ret_test.go │ ├── vm_scratch_test.go │ └── vm_test.go │ ├── context │ ├── context.go │ ├── context_test.go │ ├── ctxhttp │ │ ├── ctxhttp.go │ │ ├── ctxhttp_17_test.go │ │ ├── ctxhttp_pre17.go │ │ ├── ctxhttp_pre17_test.go │ │ └── ctxhttp_test.go │ ├── go17.go │ ├── go19.go │ ├── pre_go17.go │ ├── pre_go19.go │ └── withtimeout_test.go │ ├── internal │ ├── iana │ │ ├── const.go │ │ └── gen.go │ └── socket │ │ ├── cmsghdr.go │ │ ├── cmsghdr_bsd.go │ │ ├── cmsghdr_linux_32bit.go │ │ ├── cmsghdr_linux_64bit.go │ │ ├── cmsghdr_solaris_64bit.go │ │ ├── cmsghdr_stub.go │ │ ├── defs_darwin.go │ │ ├── defs_dragonfly.go │ │ ├── defs_freebsd.go │ │ ├── defs_linux.go │ │ ├── defs_netbsd.go │ │ ├── defs_openbsd.go │ │ ├── defs_solaris.go │ │ ├── error_unix.go │ │ ├── error_windows.go │ │ ├── iovec_32bit.go │ │ ├── iovec_64bit.go │ │ ├── iovec_solaris_64bit.go │ │ ├── iovec_stub.go │ │ ├── mmsghdr_stub.go │ │ ├── mmsghdr_unix.go │ │ ├── msghdr_bsd.go │ │ ├── msghdr_bsdvar.go │ │ ├── msghdr_linux.go │ │ ├── msghdr_linux_32bit.go │ │ ├── msghdr_linux_64bit.go │ │ ├── msghdr_openbsd.go │ │ ├── msghdr_solaris_64bit.go │ │ ├── msghdr_stub.go │ │ ├── rawconn.go │ │ ├── rawconn_mmsg.go │ │ ├── rawconn_msg.go │ │ ├── rawconn_nommsg.go │ │ ├── rawconn_nomsg.go │ │ ├── rawconn_stub.go │ │ ├── reflect.go │ │ ├── socket.go │ │ ├── socket_go1_9_test.go │ │ ├── socket_test.go │ │ ├── sys.go │ │ ├── sys_bsd.go │ │ ├── sys_bsdvar.go │ │ ├── sys_darwin.go │ │ ├── sys_dragonfly.go │ │ ├── sys_linux.go │ │ ├── sys_linux_386.go │ │ ├── sys_linux_386.s │ │ ├── sys_linux_amd64.go │ │ ├── sys_linux_arm.go │ │ ├── sys_linux_arm64.go │ │ ├── sys_linux_mips.go │ │ ├── sys_linux_mips64.go │ │ ├── sys_linux_mips64le.go │ │ ├── sys_linux_mipsle.go │ │ ├── sys_linux_ppc64.go │ │ ├── sys_linux_ppc64le.go │ │ ├── sys_linux_s390x.go │ │ ├── sys_linux_s390x.s │ │ ├── sys_netbsd.go │ │ ├── sys_posix.go │ │ ├── sys_solaris.go │ │ ├── sys_solaris_amd64.s │ │ ├── sys_stub.go │ │ ├── sys_unix.go │ │ ├── sys_windows.go │ │ ├── zsys_darwin_386.go │ │ ├── zsys_darwin_amd64.go │ │ ├── zsys_darwin_arm.go │ │ ├── zsys_darwin_arm64.go │ │ ├── zsys_dragonfly_amd64.go │ │ ├── zsys_freebsd_386.go │ │ ├── zsys_freebsd_amd64.go │ │ ├── zsys_freebsd_arm.go │ │ ├── zsys_linux_386.go │ │ ├── zsys_linux_amd64.go │ │ ├── zsys_linux_arm.go │ │ ├── zsys_linux_arm64.go │ │ ├── zsys_linux_mips.go │ │ ├── zsys_linux_mips64.go │ │ ├── zsys_linux_mips64le.go │ │ ├── zsys_linux_mipsle.go │ │ ├── zsys_linux_ppc64.go │ │ ├── zsys_linux_ppc64le.go │ │ ├── zsys_linux_s390x.go │ │ ├── zsys_netbsd_386.go │ │ ├── zsys_netbsd_amd64.go │ │ ├── zsys_netbsd_arm.go │ │ ├── zsys_openbsd_386.go │ │ ├── zsys_openbsd_amd64.go │ │ ├── zsys_openbsd_arm.go │ │ └── zsys_solaris_amd64.go │ ├── ipv4 │ ├── batch.go │ ├── bpf_test.go │ ├── control.go │ ├── control_bsd.go │ ├── control_pktinfo.go │ ├── control_stub.go │ ├── control_test.go │ ├── control_unix.go │ ├── control_windows.go │ ├── defs_darwin.go │ ├── defs_dragonfly.go │ ├── defs_freebsd.go │ ├── defs_linux.go │ ├── defs_netbsd.go │ ├── defs_openbsd.go │ ├── defs_solaris.go │ ├── dgramopt.go │ ├── doc.go │ ├── endpoint.go │ ├── example_test.go │ ├── gen.go │ ├── genericopt.go │ ├── header.go │ ├── header_test.go │ ├── helper.go │ ├── iana.go │ ├── icmp.go │ ├── icmp_linux.go │ ├── icmp_stub.go │ ├── icmp_test.go │ ├── multicast_test.go │ ├── multicastlistener_test.go │ ├── multicastsockopt_test.go │ ├── packet.go │ ├── packet_go1_8.go │ ├── packet_go1_9.go │ ├── payload.go │ ├── payload_cmsg.go │ ├── payload_cmsg_go1_8.go │ ├── payload_cmsg_go1_9.go │ ├── payload_nocmsg.go │ ├── readwrite_go1_8_test.go │ ├── readwrite_go1_9_test.go │ ├── readwrite_test.go │ ├── sockopt.go │ ├── sockopt_posix.go │ ├── sockopt_stub.go │ ├── sys_asmreq.go │ ├── sys_asmreq_stub.go │ ├── sys_asmreqn.go │ ├── sys_asmreqn_stub.go │ ├── sys_bpf.go │ ├── sys_bpf_stub.go │ ├── sys_bsd.go │ ├── sys_darwin.go │ ├── sys_dragonfly.go │ ├── sys_freebsd.go │ ├── sys_linux.go │ ├── sys_solaris.go │ ├── sys_ssmreq.go │ ├── sys_ssmreq_stub.go │ ├── sys_stub.go │ ├── sys_windows.go │ ├── unicast_test.go │ ├── unicastsockopt_test.go │ ├── zsys_darwin.go │ ├── zsys_dragonfly.go │ ├── zsys_freebsd_386.go │ ├── zsys_freebsd_amd64.go │ ├── zsys_freebsd_arm.go │ ├── zsys_linux_386.go │ ├── zsys_linux_amd64.go │ ├── zsys_linux_arm.go │ ├── zsys_linux_arm64.go │ ├── zsys_linux_mips.go │ ├── zsys_linux_mips64.go │ ├── zsys_linux_mips64le.go │ ├── zsys_linux_mipsle.go │ ├── zsys_linux_ppc.go │ ├── zsys_linux_ppc64.go │ ├── zsys_linux_ppc64le.go │ ├── zsys_linux_s390x.go │ ├── zsys_netbsd.go │ ├── zsys_openbsd.go │ └── zsys_solaris.go │ └── ipv6 │ ├── batch.go │ ├── bpf_test.go │ ├── control.go │ ├── control_rfc2292_unix.go │ ├── control_rfc3542_unix.go │ ├── control_stub.go │ ├── control_test.go │ ├── control_unix.go │ ├── control_windows.go │ ├── defs_darwin.go │ ├── defs_dragonfly.go │ ├── defs_freebsd.go │ ├── defs_linux.go │ ├── defs_netbsd.go │ ├── defs_openbsd.go │ ├── defs_solaris.go │ ├── dgramopt.go │ ├── doc.go │ ├── endpoint.go │ ├── example_test.go │ ├── gen.go │ ├── genericopt.go │ ├── header.go │ ├── header_test.go │ ├── helper.go │ ├── iana.go │ ├── icmp.go │ ├── icmp_bsd.go │ ├── icmp_linux.go │ ├── icmp_solaris.go │ ├── icmp_stub.go │ ├── icmp_test.go │ ├── icmp_windows.go │ ├── mocktransponder_test.go │ ├── multicast_test.go │ ├── multicastlistener_test.go │ ├── multicastsockopt_test.go │ ├── payload.go │ ├── payload_cmsg.go │ ├── payload_cmsg_go1_8.go │ ├── payload_cmsg_go1_9.go │ ├── payload_nocmsg.go │ ├── readwrite_go1_8_test.go │ ├── readwrite_go1_9_test.go │ ├── readwrite_test.go │ ├── sockopt.go │ ├── sockopt_posix.go │ ├── sockopt_stub.go │ ├── sockopt_test.go │ ├── sys_asmreq.go │ ├── sys_asmreq_stub.go │ ├── sys_bpf.go │ ├── sys_bpf_stub.go │ ├── sys_bsd.go │ ├── sys_darwin.go │ ├── sys_freebsd.go │ ├── sys_linux.go │ ├── sys_solaris.go │ ├── sys_ssmreq.go │ ├── sys_ssmreq_stub.go │ ├── sys_stub.go │ ├── sys_windows.go │ ├── unicast_test.go │ ├── unicastsockopt_test.go │ ├── zsys_darwin.go │ ├── zsys_dragonfly.go │ ├── zsys_freebsd_386.go │ ├── zsys_freebsd_amd64.go │ ├── zsys_freebsd_arm.go │ ├── zsys_linux_386.go │ ├── zsys_linux_amd64.go │ ├── zsys_linux_arm.go │ ├── zsys_linux_arm64.go │ ├── zsys_linux_mips.go │ ├── zsys_linux_mips64.go │ ├── zsys_linux_mips64le.go │ ├── zsys_linux_mipsle.go │ ├── zsys_linux_ppc.go │ ├── zsys_linux_ppc64.go │ ├── zsys_linux_ppc64le.go │ ├── zsys_linux_s390x.go │ ├── zsys_netbsd.go │ ├── zsys_openbsd.go │ └── zsys_solaris.go └── gopkg.in ├── bluesuncorp └── validator.v5 │ ├── LICENSE │ ├── README.md │ ├── baked_in.go │ ├── benchmarks_test.go │ ├── doc.go │ ├── examples │ └── simple.go │ ├── examples_test.go │ ├── regexes.go │ ├── validator.go │ └── validator_test.go ├── go-playground └── validator.v8 │ ├── LICENSE │ ├── README.md │ ├── baked_in.go │ ├── benchmarks_test.go │ ├── cache.go │ ├── doc.go │ ├── examples │ ├── custom │ │ └── custom.go │ ├── simple │ │ └── simple.go │ └── struct-level │ │ └── struct_level.go │ ├── examples_test.go │ ├── logo.png │ ├── regexes.go │ ├── util.go │ ├── validator.go │ └── validator_test.go └── yaml.v2 ├── LICENSE ├── LICENSE.libyaml ├── NOTICE ├── README.md ├── apic.go ├── decode.go ├── decode_test.go ├── emitterc.go ├── encode.go ├── encode_test.go ├── example_embedded_test.go ├── go.mod ├── parserc.go ├── readerc.go ├── resolve.go ├── scannerc.go ├── sorter.go ├── suite_test.go ├── writerc.go ├── yaml.go ├── yamlh.go └── yamlprivateh.go /.gitignore: -------------------------------------------------------------------------------- 1 | *.vmlinuz 2 | *.gz 3 | linux 4 | pkg/ 5 | bin/ 6 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | Things to do ! 2 | 3 | 4 | -------------------------------------------------------------------------------- /config.toml: -------------------------------------------------------------------------------- 1 | interface = "virbr0" 2 | Spawn = false 3 | Domain = "virtual" 4 | UpstreamDNS = "192.168.1.5" 5 | DBname = "" 6 | Data = "" 7 | IPFS = false 8 | -------------------------------------------------------------------------------- /data: -------------------------------------------------------------------------------- 1 | data_dist/ -------------------------------------------------------------------------------- /data_dist/README.md: -------------------------------------------------------------------------------- 1 | Astralboot 2 | 3 | https://github.com/zignig/astralboot 4 | 5 | combination dhcp / tftp / web boot server 6 | 7 | gets data from local file system or ipfs 8 | 9 | -------------------------------------------------------------------------------- /data_dist/boot/coreos/README.md: -------------------------------------------------------------------------------- 1 | http://coreos.com/ 2 | -------------------------------------------------------------------------------- /data_dist/boot/coreos/classes.toml: -------------------------------------------------------------------------------- 1 | classes = ["etcd","worker"] 2 | -------------------------------------------------------------------------------- /data_dist/boot/coreos/images/get_latest.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | 3 | echo "file system image" 4 | wget -O coreos_production_pxe_image.cpio.gz http://stable.release.core-os.net/amd64-usr/current/coreos_production_pxe_image.cpio.gz 5 | eche "boot kernel" 6 | wget -O coreos_production_pxe.vmlinuz http://stable.release.core-os.net/amd64-usr/current/coreos_production_pxe.vmlinuz 7 | 8 | 9 | -------------------------------------------------------------------------------- /data_dist/boot/coreos/template/start-old.tmpl: -------------------------------------------------------------------------------- 1 | #!ipxe{{ $serverIP := .BaseIP }} 2 | 3 | kernel http://{{ $serverIP }}/image/coreos/coreos_production_pxe.vmlinuz console=tty0 console=ttyS0 coreos.autologin=tty1 coreos.autologin=ttyS0 cloud-config-url=http://{{ $serverIP }}/config/coreos/cloud 4 | initrd http://{{ $serverIP }}/image/coreos/coreos_production_pxe_image.cpio.gz 5 | boot 6 | 7 | -------------------------------------------------------------------------------- /data_dist/boot/coreos/template/start.tmpl: -------------------------------------------------------------------------------- 1 | #!ipxe{{ $serverIP := .BaseIP }} 2 | 3 | kernel http://{{ $serverIP }}/image/coreos/coreos_production_pxe.vmlinuz cloud-config-url=http://{{ $serverIP }}/config/coreos/cloud 4 | initrd http://{{ $serverIP }}/image/coreos/coreos_production_pxe_image.cpio.gz 5 | boot 6 | 7 | -------------------------------------------------------------------------------- /data_dist/boot/debian/README.md: -------------------------------------------------------------------------------- 1 | http://debian.org/ 2 | -------------------------------------------------------------------------------- /data_dist/boot/debian/classes.toml: -------------------------------------------------------------------------------- 1 | classes = ["saltmaster","worker"] 2 | -------------------------------------------------------------------------------- /data_dist/boot/debian/images/get.sh: -------------------------------------------------------------------------------- 1 | wget -O initrd.gz http://ftp.nl.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz 2 | wget -O linux http://ftp.nl.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux 3 | 4 | -------------------------------------------------------------------------------- /data_dist/boot/debian/images/images.json: -------------------------------------------------------------------------------- 1 | { 2 | "initrd.gz": 3 | { 4 | "url": "http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz", 5 | "sha512":"37a384dcb1d40411bd520f5c7daf085e0b902708ada696d6d66637229ce1f361484546b1bcbcd0bef384a7163625295ca0d9ebe470d16f7173b536bba51cdaeb" 6 | }, 7 | "linux": 8 | { 9 | "url" : "http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux" 10 | "sha512":"95d761c84612980c3fcd137c42634bb2eb4cc8ac2f0b114fbb1e54e02996917b3e63e4e4e7cca0299929ec6be3e7f4f4e115a5b1a86c3c41bda51eacdc0fea8a" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /data_dist/boot/debian/template/firstboot.tmpl: -------------------------------------------------------------------------------- 1 | #!/bin/sh {{ $serverIP := .BaseIP }} 2 | 3 | # Add the first boot script 4 | cat < /etc/systemd/system/firstboot.service 5 | [Unit] 6 | Description=Install Script for the first boot 7 | After=network.target 8 | 9 | [Service] 10 | ExecStart=/usr/local/bin/postinstall.sh 11 | Type=oneshot 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | EOF 16 | 17 | # Enable the unit 18 | systemctl enable firstboot 19 | wget --proxy=off http://{{ $serverIP }}/action/debian/postinstall -O /usr/local/bin/postinstall.sh 20 | chmod u+x /usr/local/bin/postinstall.sh 21 | 22 | # done 23 | -------------------------------------------------------------------------------- /data_dist/boot/debian/template/start.tmpl: -------------------------------------------------------------------------------- 1 | #!ipxe{{ $serverIP := .BaseIP }} 2 | 3 | kernel http://{{ $serverIP }}/image/debian/linux ramdisk_size=13746 root=/dev/ram auto=true priority=critical preseed/url=http://{{ $serverIP}}/action/debian/preseed 4 | initrd http://{{ $serverIP }}/image/debian/initrd.gz 5 | boot 6 | -------------------------------------------------------------------------------- /data_dist/boot/ubuntu/README.md: -------------------------------------------------------------------------------- 1 | http://debian.org/ 2 | -------------------------------------------------------------------------------- /data_dist/boot/ubuntu/classes.toml: -------------------------------------------------------------------------------- 1 | classes = ["loadbalancer","geometry","render","compile"] 2 | -------------------------------------------------------------------------------- /data_dist/boot/ubuntu/images/get.sh: -------------------------------------------------------------------------------- 1 | wget -O initrd.gz http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz 2 | wget -O linux http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux 3 | 4 | -------------------------------------------------------------------------------- /data_dist/boot/ubuntu/images/images.json: -------------------------------------------------------------------------------- 1 | { 2 | "initrd.gz": 3 | { 4 | "url": "http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz", 5 | "sha512":"37a384dcb1d40411bd520f5c7daf085e0b902708ada696d6d66637229ce1f361484546b1bcbcd0bef384a7163625295ca0d9ebe470d16f7173b536bba51cdaeb" 6 | }, 7 | "linux": 8 | { 9 | "url" : "http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux" 10 | "sha512":"95d761c84612980c3fcd137c42634bb2eb4cc8ac2f0b114fbb1e54e02996917b3e63e4e4e7cca0299929ec6be3e7f4f4e115a5b1a86c3c41bda51eacdc0fea8a" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /data_dist/boot/ubuntu/template/firstboot.tmpl: -------------------------------------------------------------------------------- 1 | #!/bin/sh {{ $serverIP := .BaseIP }} 2 | 3 | # Add the first boot script 4 | cat < /etc/systemd/system/firstboot.service 5 | [Unit] 6 | Description=Install Script for the first boot 7 | After=network.target 8 | 9 | [Service] 10 | ExecStart=/usr/local/bin/postinstall.sh 11 | Type=oneshot 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | EOF 16 | 17 | # Enable the unit 18 | systemctl enable firstboot 19 | wget --proxy=off http://{{ $serverIP }}/action/ubuntu/postinstall -O /usr/local/bin/postinstall.sh 20 | chmod u+x /usr/local/bin/postinstall.sh 21 | 22 | # done 23 | -------------------------------------------------------------------------------- /data_dist/boot/ubuntu/template/start.tmpl: -------------------------------------------------------------------------------- 1 | #!ipxe{{ $serverIP := .BaseIP }} 2 | 3 | kernel http://{{ $serverIP }}/image/ubuntu/linux ramdisk_size=13746 root=/dev/ram auto=true priority=critical preseed/url=http://{{ $serverIP}}/action/ubuntu/preseed 4 | initrd http://{{ $serverIP }}/image/ubuntu/initrd.gz 5 | boot 6 | -------------------------------------------------------------------------------- /data_dist/rkt/spawn-latest-linux-amd64.aci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zignig/astralboot/cc71025bf94468af5130145606ddf9cb9e7a3c35/data_dist/rkt/spawn-latest-linux-amd64.aci -------------------------------------------------------------------------------- /data_dist/tftp/README.md: -------------------------------------------------------------------------------- 1 | http://ipxe.org/ 2 | -------------------------------------------------------------------------------- /data_dist/tftp/undionly.kpxe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zignig/astralboot/cc71025bf94468af5130145606ddf9cb9e7a3c35/data_dist/tftp/undionly.kpxe -------------------------------------------------------------------------------- /data_dist/units/ipfs.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=ipfs node 3 | 4 | [Service] 5 | TimeoutStartSec=0 6 | ExecStart=/usr/bin/rkt --insecure-skip-verify run {{.BaseIP}}/rocket/ipfs:0.5 -- daemon --init 7 | 8 | [X-Fleet] 9 | Global=true 10 | MachineMetadata=role=worker 11 | -------------------------------------------------------------------------------- /doc/INSTRUCTIONS.md: -------------------------------------------------------------------------------- 1 | # INSTRUCTIONS 2 | 3 | Setting up and running Astralboot 4 | 5 | # Getting boot data 6 | 7 | The astralboot git repository has a default data folder that has a basic layout for booting. 8 | 9 | run ln -s data_dist data , in the root directory for access to the file system directory 10 | 11 | or for IPFS 12 | 13 | run ln -s refs.toml.dist refs.toml and add IPFS=true to the config.toml file 14 | 15 | if you use this you will need to have a running IPFS node on the local machine. 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /doc/TODO: -------------------------------------------------------------------------------- 1 | Better error handling on missing ipfs node 2 | Work on debian and ubuntu preseed. 3 | 4 | -------------------------------------------------------------------------------- /refs.toml.dist: -------------------------------------------------------------------------------- 1 | boot = "QmXRvmqk9DjhGsLPeWF1nZ8EryGYnD8j4iQoFLSh9hUJbH" 2 | #rocket = "QmdLDMoJBMwtFT13PLPP4SF3oxFnrNLF1kUdDqnxwYxDaZ" 3 | #spawn = "" 4 | -------------------------------------------------------------------------------- /src/astralboot/leases_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "encoding/json" 5 | "fmt" 6 | "testing" 7 | ) 8 | 9 | func TestLease(t *testing.T) { 10 | fmt.Println("---- LOCAL TESTS ------") 11 | l := &LeaseList{} 12 | l.Leases = append(l.Leases, &Lease{}) 13 | fmt.Println(l) 14 | e, err := json.MarshalIndent(&l, "", " ") 15 | fmt.Println(string(e), err) 16 | } 17 | -------------------------------------------------------------------------------- /src/spawn/README.md: -------------------------------------------------------------------------------- 1 | # spawn 2 | a fleetd wrangler for coreos 3 | Simon Kirkby 4 | tigger@interthingy.com 5 | 20150521 6 | 7 | # Usage 8 | 9 | Source and target IP addresses can be set with flags or environmental variables 10 | 11 | ## Source 12 | 13 | the spawn web service 14 | 15 | export SPWAN_SOURCE=10.10.10.5 , or -source=10.10.10.5 16 | 17 | ## Target 18 | 19 | the fleetd machines 20 | 21 | export SPWAN_SOURCE=10.10.10.5 , or -source=10.10.10.5 22 | 23 | # Function 24 | 25 | spawn connects astralboot to fleetd and wrangles unit files and .aci files 26 | 27 | # TODO 28 | 29 | 1. manage list of running units 30 | 2. generate unit files 31 | 3. generate sidekicks 32 | 4. start and stop units according to authoritive list 33 | 5. More stuff 34 | -------------------------------------------------------------------------------- /vendor/src/bitbucket.org/ww/goautoneg/Makefile: -------------------------------------------------------------------------------- 1 | include $(GOROOT)/src/Make.inc 2 | 3 | TARG=bitbucket.org/ww/goautoneg 4 | GOFILES=autoneg.go 5 | 6 | include $(GOROOT)/src/Make.pkg 7 | 8 | format: 9 | gofmt -w *.go 10 | 11 | docs: 12 | gomake clean 13 | godoc ${TARG} > README.txt 14 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/COMPATIBLE: -------------------------------------------------------------------------------- 1 | Compatible with TOML version 2 | [v0.4.0](https://github.com/toml-lang/toml/blob/v0.4.0/versions/en/toml-v0.4.0.md) 3 | 4 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/Makefile: -------------------------------------------------------------------------------- 1 | install: 2 | go install ./... 3 | 4 | test: install 5 | go test -v 6 | toml-test toml-test-decoder 7 | toml-test -encoder toml-test-encoder 8 | 9 | fmt: 10 | gofmt -w *.go */*.go 11 | colcheck *.go */*.go 12 | 13 | tags: 14 | find ./ -name '*.go' -print0 | xargs -0 gotags > TAGS 15 | 16 | push: 17 | git push origin master 18 | git push github master 19 | 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/_examples/implicit.toml: -------------------------------------------------------------------------------- 1 | # [x] you 2 | # [x.y] don't 3 | # [x.y.z] need these 4 | [x.y.z.w] # for this to work 5 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/_examples/invalid-apples.toml: -------------------------------------------------------------------------------- 1 | # DO NOT WANT 2 | [fruit] 3 | type = "apple" 4 | 5 | [fruit.type] 6 | apple = "yes" 7 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/_examples/readme1.toml: -------------------------------------------------------------------------------- 1 | Age = 25 2 | Cats = [ "Cauchy", "Plato" ] 3 | Pi = 3.14 4 | Perfection = [ 6, 28, 496, 8128 ] 5 | DOB = 1987-07-05T05:45:00Z 6 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/_examples/readme2.toml: -------------------------------------------------------------------------------- 1 | some_key_NAME = "wat" 2 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | 15 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/cmd/toml-test-decoder/README.md: -------------------------------------------------------------------------------- 1 | # Implements the TOML test suite interface 2 | 3 | This is an implementation of the interface expected by 4 | [toml-test](https://github.com/BurntSushi/toml-test) for my 5 | [toml parser written in Go](https://github.com/BurntSushi/toml). 6 | In particular, it maps TOML data on `stdin` to a JSON format on `stdout`. 7 | 8 | 9 | Compatible with TOML version 10 | [v0.4.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md) 11 | 12 | Compatible with `toml-test` version 13 | [v0.2.0](https://github.com/BurntSushi/toml-test/tree/v0.2.0) 14 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | 15 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/cmd/toml-test-encoder/README.md: -------------------------------------------------------------------------------- 1 | # Implements the TOML test suite interface for TOML encoders 2 | 3 | This is an implementation of the interface expected by 4 | [toml-test](https://github.com/BurntSushi/toml-test) for the 5 | [TOML encoder](https://github.com/BurntSushi/toml). 6 | In particular, it maps JSON data on `stdin` to a TOML format on `stdout`. 7 | 8 | 9 | Compatible with TOML version 10 | [v0.4.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md) 11 | 12 | Compatible with `toml-test` version 13 | [v0.2.0](https://github.com/BurntSushi/toml-test/tree/v0.2.0) 14 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/cmd/tomlv/COPYING: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | 15 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/cmd/tomlv/README.md: -------------------------------------------------------------------------------- 1 | # TOML Validator 2 | 3 | If Go is installed, it's simple to try it out: 4 | 5 | ```bash 6 | go get github.com/BurntSushi/toml/cmd/tomlv 7 | tomlv some-toml-file.toml 8 | ``` 9 | 10 | You can see the types of every key in a TOML file with: 11 | 12 | ```bash 13 | tomlv -types some-toml-file.toml 14 | ``` 15 | 16 | At the moment, only one error message is reported at a time. Error messages 17 | include line numbers. No output means that the files given are valid TOML, or 18 | there is a bug in `tomlv`. 19 | 20 | Compatible with TOML version 21 | [v0.4.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md) 22 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/encoding_types.go: -------------------------------------------------------------------------------- 1 | // +build go1.2 2 | 3 | package toml 4 | 5 | // In order to support Go 1.1, we define our own TextMarshaler and 6 | // TextUnmarshaler types. For Go 1.2+, we just alias them with the 7 | // standard library interfaces. 8 | 9 | import ( 10 | "encoding" 11 | ) 12 | 13 | // TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here 14 | // so that Go 1.1 can be supported. 15 | type TextMarshaler encoding.TextMarshaler 16 | 17 | // TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined 18 | // here so that Go 1.1 can be supported. 19 | type TextUnmarshaler encoding.TextUnmarshaler 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/encoding_types_1.1.go: -------------------------------------------------------------------------------- 1 | // +build !go1.2 2 | 3 | package toml 4 | 5 | // These interfaces were introduced in Go 1.2, so we add them manually when 6 | // compiling for Go 1.1. 7 | 8 | // TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here 9 | // so that Go 1.1 can be supported. 10 | type TextMarshaler interface { 11 | MarshalText() (text []byte, err error) 12 | } 13 | 14 | // TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined 15 | // here so that Go 1.1 can be supported. 16 | type TextUnmarshaler interface { 17 | UnmarshalText(text []byte) error 18 | } 19 | -------------------------------------------------------------------------------- /vendor/src/github.com/BurntSushi/toml/session.vim: -------------------------------------------------------------------------------- 1 | au BufWritePost *.go silent!make tags > /dev/null 2>&1 2 | -------------------------------------------------------------------------------- /vendor/src/github.com/coreos/etcd/client/cancelreq.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // borrowed from golang/net/context/ctxhttp/cancelreq.go 6 | 7 | package client 8 | 9 | import "net/http" 10 | 11 | func requestCanceler(tr CancelableTransport, req *http.Request) func() { 12 | ch := make(chan struct{}) 13 | req.Cancel = ch 14 | 15 | return func() { 16 | close(ch) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /vendor/src/github.com/coreos/etcd/client/integration/main_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package integration 6 | 7 | import ( 8 | "os" 9 | "testing" 10 | 11 | "github.com/coreos/etcd/pkg/testutil" 12 | ) 13 | 14 | func TestMain(m *testing.M) { 15 | v := m.Run() 16 | if v == 0 && testutil.CheckLeakedGoroutine() { 17 | os.Exit(1) 18 | } 19 | os.Exit(v) 20 | } 21 | -------------------------------------------------------------------------------- /vendor/src/github.com/coreos/go-etcd/etcd/add_child.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | // Add a new directory with a random etcd-generated key under the given path. 4 | func (c *Client) AddChildDir(key string, ttl uint64) (*Response, error) { 5 | raw, err := c.post(key, "", ttl) 6 | 7 | if err != nil { 8 | return nil, err 9 | } 10 | 11 | return raw.Unmarshal() 12 | } 13 | 14 | // Add a new file with a random etcd-generated key under the given path. 15 | func (c *Client) AddChild(key string, value string, ttl uint64) (*Response, error) { 16 | raw, err := c.post(key, value, ttl) 17 | 18 | if err != nil { 19 | return nil, err 20 | } 21 | 22 | return raw.Unmarshal() 23 | } 24 | -------------------------------------------------------------------------------- /vendor/src/github.com/coreos/go-etcd/etcd/debug_test.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | type Foo struct{} 8 | type Bar struct { 9 | one string 10 | two int 11 | } 12 | 13 | // Tests that logs don't panic with arbitrary interfaces 14 | func TestDebug(t *testing.T) { 15 | f := &Foo{} 16 | b := &Bar{"asfd", 3} 17 | for _, test := range []interface{}{ 18 | 1234, 19 | "asdf", 20 | f, 21 | b, 22 | } { 23 | logger.Debug(test) 24 | logger.Debugf("something, %s", test) 25 | logger.Warning(test) 26 | logger.Warningf("something, %s", test) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/src/github.com/coreos/go-etcd/etcd/member.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | import "encoding/json" 4 | 5 | type Member struct { 6 | ID string `json:"id"` 7 | Name string `json:"name"` 8 | PeerURLs []string `json:"peerURLs"` 9 | ClientURLs []string `json:"clientURLs"` 10 | } 11 | 12 | type memberCollection []Member 13 | 14 | func (c *memberCollection) UnmarshalJSON(data []byte) error { 15 | d := struct { 16 | Members []Member 17 | }{} 18 | 19 | if err := json.Unmarshal(data, &d); err != nil { 20 | return err 21 | } 22 | 23 | if d.Members == nil { 24 | *c = make([]Member, 0) 25 | return nil 26 | } 27 | 28 | *c = d.Members 29 | return nil 30 | } 31 | -------------------------------------------------------------------------------- /vendor/src/github.com/coreos/go-etcd/etcd/requests_test.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | import "testing" 4 | 5 | func TestKeyToPath(t *testing.T) { 6 | tests := []struct { 7 | key string 8 | wpath string 9 | }{ 10 | {"", "keys/"}, 11 | {"foo", "keys/foo"}, 12 | {"foo/bar", "keys/foo/bar"}, 13 | {"%z", "keys/%25z"}, 14 | {"/", "keys/"}, 15 | } 16 | for i, tt := range tests { 17 | path := keyToPath(tt.key) 18 | if path != tt.wpath { 19 | t.Errorf("#%d: path = %s, want %s", i, path, tt.wpath) 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /vendor/src/github.com/coreos/go-etcd/etcd/shuffle.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | import ( 4 | "math/rand" 5 | ) 6 | 7 | func shuffleStringSlice(cards []string) []string { 8 | size := len(cards) 9 | //Do not need to copy if nothing changed 10 | if size <= 1 { 11 | return cards 12 | } 13 | shuffled := make([]string, size) 14 | index := rand.Perm(size) 15 | for i := range cards { 16 | shuffled[index[i]] = cards[i] 17 | } 18 | return shuffled 19 | } 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/coreos/go-etcd/etcd/version.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | const ( 4 | version = "v2" 5 | packageVersion = "v2.0.0+git" 6 | ) 7 | -------------------------------------------------------------------------------- /vendor/src/github.com/dustin/go-broadcast/README.markdown: -------------------------------------------------------------------------------- 1 | pubsubbing channels. 2 | 3 | This project primarily exists because I've been copying and pasting 4 | the exact same two files into numerous projects. It does work well, 5 | though. 6 | 7 | See [the documentation][doc] for usage and examples. 8 | 9 | 10 | [doc]: https://godoc.org/github.com/dustin/go-broadcast 11 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-contrib/sse/writer.go: -------------------------------------------------------------------------------- 1 | package sse 2 | 3 | import "io" 4 | 5 | type stringWriter interface { 6 | io.Writer 7 | WriteString(string) (int, error) 8 | } 9 | 10 | type stringWrapper struct { 11 | io.Writer 12 | } 13 | 14 | func (w stringWrapper) WriteString(str string) (int, error) { 15 | return w.Writer.Write([]byte(str)) 16 | } 17 | 18 | func checkWriter(writer io.Writer) stringWriter { 19 | if w, ok := writer.(stringWriter); ok { 20 | return w 21 | } else { 22 | return stringWrapper{writer} 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | - With issues: 4 | - Use the search tool before opening a new issue. 5 | - Please provide source code and commit sha if you found a bug. 6 | - Review existing issues and provide feedback or react to them. 7 | 8 | - With pull requests: 9 | - Open your pull request against `master` 10 | - Your pull request should have no more than two commits, if not you should squash them. 11 | - It should pass all tests in the available continuous integrations systems such as TravisCI. 12 | - You should add/modify tests to cover your proposed code changes. 13 | - If your pull request contains a new feature, please document it on the README. 14 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/binding/example/test.proto: -------------------------------------------------------------------------------- 1 | package example; 2 | 3 | enum FOO {X=17;}; 4 | 5 | message Test { 6 | required string label = 1; 7 | optional int32 type = 2[default=77]; 8 | repeated int64 reps = 3; 9 | optional group OptionalGroup = 4{ 10 | required string RequiredField = 5; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/binding/query.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Manu Martinez-Almeida. All rights reserved. 2 | // Use of this source code is governed by a MIT style 3 | // license that can be found in the LICENSE file. 4 | 5 | package binding 6 | 7 | import "net/http" 8 | 9 | type queryBinding struct{} 10 | 11 | func (queryBinding) Name() string { 12 | return "query" 13 | } 14 | 15 | func (queryBinding) Bind(req *http.Request, obj interface{}) error { 16 | values := req.URL.Query() 17 | if err := mapForm(obj, values); err != nil { 18 | return err 19 | } 20 | return validate(obj) 21 | } 22 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/codecov.yml: -------------------------------------------------------------------------------- 1 | coverage: 2 | notify: 3 | gitter: 4 | default: 5 | url: https://webhooks.gitter.im/e/d90dcdeeab2f1e357165 6 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/context_appengine.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | // Copyright 2017 Manu Martinez-Almeida. All rights reserved. 4 | // Use of this source code is governed by a MIT style 5 | // license that can be found in the LICENSE file. 6 | 7 | package gin 8 | 9 | func init() { 10 | defaultAppEngine = true 11 | } 12 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/coverage.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | echo "mode: count" > coverage.out 6 | 7 | for d in $(go list ./... | grep -E 'gin$|binding$|render$' | grep -v 'examples'); do 8 | go test -v -covermode=count -coverprofile=profile.out $d 9 | if [ -f profile.out ]; then 10 | cat profile.out | grep -v "mode:" >> coverage.out 11 | rm profile.out 12 | fi 13 | done 14 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package gin implements a HTTP web framework called gin. 3 | 4 | See https://gin-gonic.github.io/gin/ for more information about gin. 5 | */ 6 | package gin // import "github.com/gin-gonic/gin" 7 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/app-engine/README.md: -------------------------------------------------------------------------------- 1 | # Guide to run Gin under App Engine LOCAL Development Server 2 | 3 | 1. Download, install and setup Go in your computer. (That includes setting your `$GOPATH`.) 4 | 2. Download SDK for your platform from [here](https://cloud.google.com/appengine/docs/standard/go/download): `https://cloud.google.com/appengine/docs/standard/go/download` 5 | 3. Download Gin source code using: `$ go get github.com/gin-gonic/gin` 6 | 4. Navigate to examples folder: `$ cd $GOPATH/src/github.com/gin-gonic/gin/examples/app-engine/` 7 | 5. Run it: `$ dev_appserver.py .` (notice that you have to run this script by Python2) 8 | 9 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/app-engine/app.yaml: -------------------------------------------------------------------------------- 1 | application: hello 2 | version: 1 3 | runtime: go 4 | api_version: go1 5 | 6 | handlers: 7 | - url: /.* 8 | script: _go_app -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/app-engine/hello.go: -------------------------------------------------------------------------------- 1 | package hello 2 | 3 | import ( 4 | "net/http" 5 | 6 | "github.com/gin-gonic/gin" 7 | ) 8 | 9 | // This function's name is a must. App Engine uses it to drive the requests properly. 10 | func init() { 11 | // Starts a new Gin instance with no middle-ware 12 | r := gin.New() 13 | 14 | // Define your handlers 15 | r.GET("/", func(c *gin.Context) { 16 | c.String(http.StatusOK, "Hello World!") 17 | }) 18 | r.GET("/ping", func(c *gin.Context) { 19 | c.String(http.StatusOK, "pong") 20 | }) 21 | 22 | // Handle all requests using net/http 23 | http.Handle("/", r) 24 | } 25 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/assets-in-binary/README.md: -------------------------------------------------------------------------------- 1 | # Building a single binary containing templates 2 | 3 | This is a complete example to create a single binary with the 4 | [gin-gonic/gin][gin] Web Server with HTML templates. 5 | 6 | [gin]: https://github.com/gin-gonic/gin 7 | 8 | ## How to use 9 | 10 | ### Prepare Packages 11 | 12 | ``` 13 | go get github.com/gin-gonic/gin 14 | go get github.com/jessevdk/go-assets-builder 15 | ``` 16 | 17 | ### Generate assets.go 18 | 19 | ``` 20 | go-assets-builder html -o assets.go 21 | ``` 22 | 23 | ### Build the server 24 | 25 | ``` 26 | go build -o assets-in-binary 27 | ``` 28 | 29 | ### Run 30 | 31 | ``` 32 | ./assets-in-binary 33 | ``` 34 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/assets-in-binary/html/bar.tmpl: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Can you see this? → {{.Bar}}

4 | 5 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/assets-in-binary/html/index.tmpl: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Hello, {{.Foo}}

4 | 5 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/auto-tls/example1/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "log" 5 | 6 | "github.com/gin-gonic/autotls" 7 | "github.com/gin-gonic/gin" 8 | ) 9 | 10 | func main() { 11 | r := gin.Default() 12 | 13 | // Ping handler 14 | r.GET("/ping", func(c *gin.Context) { 15 | c.String(200, "pong") 16 | }) 17 | 18 | log.Fatal(autotls.Run(r, "example1.com", "example2.com")) 19 | } 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/auto-tls/example2/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "log" 5 | 6 | "github.com/gin-gonic/autotls" 7 | "github.com/gin-gonic/gin" 8 | "golang.org/x/crypto/acme/autocert" 9 | ) 10 | 11 | func main() { 12 | r := gin.Default() 13 | 14 | // Ping handler 15 | r.GET("/ping", func(c *gin.Context) { 16 | c.String(200, "pong") 17 | }) 18 | 19 | m := autocert.Manager{ 20 | Prompt: autocert.AcceptTOS, 21 | HostPolicy: autocert.HostWhitelist("example1.com", "example2.com"), 22 | Cache: autocert.DirCache("/var/www/.cache"), 23 | } 24 | 25 | log.Fatal(autotls.RunWithManager(r, &m)) 26 | } 27 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/basic/main_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "net/http" 5 | "net/http/httptest" 6 | "testing" 7 | 8 | "github.com/stretchr/testify/assert" 9 | ) 10 | 11 | func TestPingRoute(t *testing.T) { 12 | router := setupRouter() 13 | 14 | w := httptest.NewRecorder() 15 | req, _ := http.NewRequest("GET", "/ping", nil) 16 | router.ServeHTTP(w, req) 17 | 18 | assert.Equal(t, 200, w.Code) 19 | assert.Equal(t, "pong", w.Body.String()) 20 | } 21 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zignig/astralboot/cc71025bf94468af5130145606ddf9cb9e7a3c35/vendor/src/github.com/gin-gonic/gin/examples/favicon/favicon.ico -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/favicon/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/gin-gonic/gin" 5 | "github.com/thinkerou/favicon" 6 | ) 7 | 8 | func main() { 9 | app := gin.Default() 10 | app.Use(favicon.New("./favicon.ico")) 11 | app.GET("/ping", func(c *gin.Context) { 12 | c.String(200, "Hello favicon.") 13 | }) 14 | app.Run(":8080") 15 | } 16 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/grpc/README.md: -------------------------------------------------------------------------------- 1 | ## How to run this example 2 | 3 | 1. run grpc server 4 | 5 | ```sh 6 | $ go run grpc/server.go 7 | ``` 8 | 9 | 2. run gin server 10 | 11 | ```sh 12 | $ go run gin/main.go 13 | ``` 14 | 15 | 3. use curl command to test it 16 | 17 | ```sh 18 | $ curl -v 'http://localhost:8052/rest/n/thinkerou' 19 | ``` 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/http-pusher/assets/app.js: -------------------------------------------------------------------------------- 1 | console.log("http2 pusher"); 2 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/http2/README.md: -------------------------------------------------------------------------------- 1 | ## How to generate RSA private key and digital certificate 2 | 3 | 1. Install Openssl 4 | 5 | Please visit https://github.com/openssl/openssl to get pkg and install. 6 | 7 | 2. Generate RSA private key 8 | 9 | ```sh 10 | $ mkdir testdata 11 | $ openssl genrsa -out ./testdata/server.key 2048 12 | ``` 13 | 14 | 3. Generate digital certificate 15 | 16 | ```sh 17 | $ openssl req -new -x509 -key ./testdata/server.key -out ./testdata/server.pem -days 365 18 | ``` 19 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/realtime-advanced/Makefile: -------------------------------------------------------------------------------- 1 | all: deps build 2 | 3 | .PHONY: deps 4 | deps: 5 | go get -d -v github.com/dustin/go-broadcast/... 6 | go get -d -v github.com/manucorporat/stats/... 7 | 8 | .PHONY: build 9 | build: deps 10 | go build -o realtime-advanced main.go rooms.go routes.go stats.go 11 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/realtime-advanced/rooms.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "github.com/dustin/go-broadcast" 4 | 5 | var roomChannels = make(map[string]broadcast.Broadcaster) 6 | 7 | func openListener(roomid string) chan interface{} { 8 | listener := make(chan interface{}) 9 | room(roomid).Register(listener) 10 | return listener 11 | } 12 | 13 | func closeListener(roomid string, listener chan interface{}) { 14 | room(roomid).Unregister(listener) 15 | close(listener) 16 | } 17 | 18 | func room(roomid string) broadcast.Broadcaster { 19 | b, ok := roomChannels[roomid] 20 | if !ok { 21 | b = broadcast.NewBroadcaster(10) 22 | roomChannels[roomid] = b 23 | } 24 | return b 25 | } 26 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/realtime-chat/Makefile: -------------------------------------------------------------------------------- 1 | all: deps build 2 | 3 | .PHONY: deps 4 | deps: 5 | go get -d -v github.com/dustin/go-broadcast/... 6 | 7 | .PHONY: build 8 | build: deps 9 | go build -o realtime-chat main.go rooms.go template.go 10 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/upload-file/multiple/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Multiple file upload 6 | 7 | 8 |

Upload multiple files with fields

9 | 10 |
11 | Name:
12 | Email:
13 | Files:

14 | 15 |
16 | 17 | 18 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/examples/upload-file/single/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Single file upload 6 | 7 | 8 |

Upload single file with fields

9 | 10 |
11 | Name:
12 | Email:
13 | Files:

14 | 15 |
16 | 17 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/fixtures/basic/hello.tmpl: -------------------------------------------------------------------------------- 1 |

Hello {[{.name}]}

-------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/fixtures/basic/raw.tmpl: -------------------------------------------------------------------------------- 1 | Date: {[{.now | formatAsDate}]} 2 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/ginS/README.md: -------------------------------------------------------------------------------- 1 | # Gin Default Server 2 | 3 | This is API experiment for Gin. 4 | 5 | ```go 6 | package main 7 | 8 | import ( 9 | "github.com/gin-gonic/gin" 10 | "github.com/gin-gonic/gin/ginS" 11 | ) 12 | 13 | func main() { 14 | ginS.GET("/", func(c *gin.Context) { c.String(200, "Hello World") }) 15 | ginS.Run() 16 | } 17 | ``` 18 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/json/json.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Bo-Yi Wu. All rights reserved. 2 | // Use of this source code is governed by a MIT style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !jsoniter 6 | 7 | package json 8 | 9 | import "encoding/json" 10 | 11 | var ( 12 | Marshal = json.Marshal 13 | MarshalIndent = json.MarshalIndent 14 | NewDecoder = json.NewDecoder 15 | ) 16 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/json/jsoniter.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Bo-Yi Wu. All rights reserved. 2 | // Use of this source code is governed by a MIT style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build jsoniter 6 | 7 | package json 8 | 9 | import "github.com/json-iterator/go" 10 | 11 | var ( 12 | json = jsoniter.ConfigCompatibleWithStandardLibrary 13 | Marshal = json.Marshal 14 | MarshalIndent = json.MarshalIndent 15 | NewDecoder = json.NewDecoder 16 | ) 17 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/render/data.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Manu Martinez-Almeida. All rights reserved. 2 | // Use of this source code is governed by a MIT style 3 | // license that can be found in the LICENSE file. 4 | 5 | package render 6 | 7 | import "net/http" 8 | 9 | type Data struct { 10 | ContentType string 11 | Data []byte 12 | } 13 | 14 | // Render (Data) writes data with custom ContentType. 15 | func (r Data) Render(w http.ResponseWriter) (err error) { 16 | r.WriteContentType(w) 17 | _, err = w.Write(r.Data) 18 | return 19 | } 20 | 21 | func (r Data) WriteContentType(w http.ResponseWriter) { 22 | writeContentType(w, []string{r.ContentType}) 23 | } 24 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/render/redirect.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Manu Martinez-Almeida. All rights reserved. 2 | // Use of this source code is governed by a MIT style 3 | // license that can be found in the LICENSE file. 4 | 5 | package render 6 | 7 | import ( 8 | "fmt" 9 | "net/http" 10 | ) 11 | 12 | type Redirect struct { 13 | Code int 14 | Request *http.Request 15 | Location string 16 | } 17 | 18 | func (r Redirect) Render(w http.ResponseWriter) error { 19 | if (r.Code < 300 || r.Code > 308) && r.Code != 201 { 20 | panic(fmt.Sprintf("Cannot redirect with status code %d", r.Code)) 21 | } 22 | http.Redirect(w, r.Request, r.Location, r.Code) 23 | return nil 24 | } 25 | 26 | func (r Redirect) WriteContentType(http.ResponseWriter) {} 27 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/render/xml.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Manu Martinez-Almeida. All rights reserved. 2 | // Use of this source code is governed by a MIT style 3 | // license that can be found in the LICENSE file. 4 | 5 | package render 6 | 7 | import ( 8 | "encoding/xml" 9 | "net/http" 10 | ) 11 | 12 | type XML struct { 13 | Data interface{} 14 | } 15 | 16 | var xmlContentType = []string{"application/xml; charset=utf-8"} 17 | 18 | func (r XML) Render(w http.ResponseWriter) error { 19 | r.WriteContentType(w) 20 | return xml.NewEncoder(w).Encode(r.Data) 21 | } 22 | 23 | func (r XML) WriteContentType(w http.ResponseWriter) { 24 | writeContentType(w, xmlContentType) 25 | } 26 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/render/yaml.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Manu Martinez-Almeida. All rights reserved. 2 | // Use of this source code is governed by a MIT style 3 | // license that can be found in the LICENSE file. 4 | 5 | package render 6 | 7 | import ( 8 | "net/http" 9 | 10 | "gopkg.in/yaml.v2" 11 | ) 12 | 13 | type YAML struct { 14 | Data interface{} 15 | } 16 | 17 | var yamlContentType = []string{"application/x-yaml; charset=utf-8"} 18 | 19 | func (r YAML) Render(w http.ResponseWriter) error { 20 | r.WriteContentType(w) 21 | 22 | bytes, err := yaml.Marshal(r.Data) 23 | if err != nil { 24 | return err 25 | } 26 | 27 | w.Write(bytes) 28 | return nil 29 | } 30 | 31 | func (r YAML) WriteContentType(w http.ResponseWriter) { 32 | writeContentType(w, yamlContentType) 33 | } 34 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/response_writer_1.7.go: -------------------------------------------------------------------------------- 1 | // +build !go1.8 2 | 3 | // Copyright 2018 Gin Core Team. All rights reserved. 4 | // Use of this source code is governed by a MIT style 5 | // license that can be found in the LICENSE file. 6 | 7 | package gin 8 | 9 | // ResponseWriter ... 10 | type ResponseWriter interface { 11 | responseWriterBase 12 | } 13 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/response_writer_1.8.go: -------------------------------------------------------------------------------- 1 | // +build go1.8 2 | 3 | // Copyright 2018 Gin Core Team. All rights reserved. 4 | // Use of this source code is governed by a MIT style 5 | // license that can be found in the LICENSE file. 6 | 7 | package gin 8 | 9 | import ( 10 | "net/http" 11 | ) 12 | 13 | // ResponseWriter ... 14 | type ResponseWriter interface { 15 | responseWriterBase 16 | // get the http.Pusher for server push 17 | Pusher() http.Pusher 18 | } 19 | 20 | func (w *responseWriter) Pusher() (pusher http.Pusher) { 21 | if pusher, ok := w.ResponseWriter.(http.Pusher); ok { 22 | return pusher 23 | } 24 | return nil 25 | } 26 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/test_helpers.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 Manu Martinez-Almeida. All rights reserved. 2 | // Use of this source code is governed by a MIT style 3 | // license that can be found in the LICENSE file. 4 | 5 | package gin 6 | 7 | import ( 8 | "net/http" 9 | ) 10 | 11 | // CreateTestContext returns a fresh engine and context for testing purposes 12 | func CreateTestContext(w http.ResponseWriter) (c *Context, r *Engine) { 13 | r = New() 14 | c = r.allocateContext() 15 | c.reset() 16 | c.writermem.reset(w) 17 | return 18 | } 19 | -------------------------------------------------------------------------------- /vendor/src/github.com/gin-gonic/gin/wercker.yml: -------------------------------------------------------------------------------- 1 | box: wercker/default -------------------------------------------------------------------------------- /vendor/src/github.com/krolaw/dhcp4/README.md: -------------------------------------------------------------------------------- 1 | # DHCP4 - A DHCP library written in Go. 2 | 3 | ## Author 4 | http://richard.warburton.it/ 5 | 6 | ## Quick Start 7 | See example_test.go for how to use this library to create a basic server. 8 | 9 | ## Documentation 10 | http://godoc.org/github.com/krolaw/dhcp4 11 | 12 | ## Thanks 13 | Special thanks to: 14 | * https://github.com/pietern for suggesting how to use go.net 15 | to be able to listen on a single network interface. 16 | * https://github.com/fdurand for proper interface binding on linux. 17 | 18 | ## Wow 19 | DHCP4 is one of the libraries used by Facebook's [DHCP load balancing relay](https://github.com/facebookincubator/dhcplb). "Facebook currently uses it in production, and it's deployed at global scale across all of our data centers." 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/krolaw/dhcp4/messagetype_string.go: -------------------------------------------------------------------------------- 1 | // generated by stringer -type=MessageType; DO NOT EDIT 2 | 3 | package dhcp4 4 | 5 | import "fmt" 6 | 7 | const _MessageType_name = "DiscoverOfferRequestDeclineACKNAKReleaseInform" 8 | 9 | var _MessageType_index = [...]uint8{0, 8, 13, 20, 27, 30, 33, 40, 46} 10 | 11 | func (i MessageType) String() string { 12 | i -= 1 13 | if i+1 >= MessageType(len(_MessageType_index)) { 14 | return fmt.Sprintf("MessageType(%d)", i+1) 15 | } 16 | return _MessageType_name[_MessageType_index[i]:_MessageType_index[i+1]] 17 | } 18 | -------------------------------------------------------------------------------- /vendor/src/github.com/manucorporat/sse/writer.go: -------------------------------------------------------------------------------- 1 | package sse 2 | 3 | import "io" 4 | 5 | type stringWriter interface { 6 | io.Writer 7 | WriteString(string) (int, error) 8 | } 9 | 10 | type stringWrapper struct { 11 | io.Writer 12 | } 13 | 14 | func (w stringWrapper) WriteString(str string) (int, error) { 15 | return w.Writer.Write([]byte(str)) 16 | } 17 | 18 | func checkWriter(writer io.Writer) stringWriter { 19 | if w, ok := writer.(stringWriter); ok { 20 | return w 21 | } else { 22 | return stringWrapper{writer} 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-colorable/_example/escape-seq/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bufio" 5 | "fmt" 6 | 7 | "github.com/mattn/go-colorable" 8 | ) 9 | 10 | func main() { 11 | stdOut := bufio.NewWriter(colorable.NewColorableStdout()) 12 | 13 | fmt.Fprint(stdOut, "\x1B[3GMove to 3rd Column\n") 14 | fmt.Fprint(stdOut, "\x1B[1;2HMove to 2nd Column on 1st Line\n") 15 | stdOut.Flush() 16 | } 17 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-colorable/_example/logrus/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/mattn/go-colorable" 5 | "github.com/sirupsen/logrus" 6 | ) 7 | 8 | func main() { 9 | logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true}) 10 | logrus.SetOutput(colorable.NewColorableStdout()) 11 | 12 | logrus.Info("succeeded") 13 | logrus.Warn("not correct") 14 | logrus.Error("something error") 15 | logrus.Fatal("panic") 16 | } 17 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-colorable/_example/title/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | . "github.com/mattn/go-colorable" 7 | ) 8 | 9 | func main() { 10 | out := NewColorableStdout() 11 | fmt.Fprint(out, "\x1B]0;TITLE Changed\007(See title and hit any key)") 12 | var c [1]byte 13 | os.Stdin.Read(c[:]) 14 | } 15 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-colorable/cmd/colorable/colorable.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "io" 5 | "os" 6 | 7 | "github.com/mattn/go-colorable" 8 | ) 9 | 10 | func main() { 11 | io.Copy(colorable.NewColorableStdout(), os.Stdin) 12 | } 13 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-colorable/colorable_appengine.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | package colorable 4 | 5 | import ( 6 | "io" 7 | "os" 8 | 9 | _ "github.com/mattn/go-isatty" 10 | ) 11 | 12 | // NewColorable return new instance of Writer which handle escape sequence. 13 | func NewColorable(file *os.File) io.Writer { 14 | if file == nil { 15 | panic("nil passed instead of *os.File to NewColorable()") 16 | } 17 | 18 | return file 19 | } 20 | 21 | // NewColorableStdout return new instance of Writer which handle escape sequence for stdout. 22 | func NewColorableStdout() io.Writer { 23 | return os.Stdout 24 | } 25 | 26 | // NewColorableStderr return new instance of Writer which handle escape sequence for stderr. 27 | func NewColorableStderr() io.Writer { 28 | return os.Stderr 29 | } 30 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-isatty/doc.go: -------------------------------------------------------------------------------- 1 | // Package isatty implements interface to isatty 2 | package isatty 3 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-isatty/example_test.go: -------------------------------------------------------------------------------- 1 | package isatty_test 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | 7 | "github.com/mattn/go-isatty" 8 | ) 9 | 10 | func Example() { 11 | if isatty.IsTerminal(os.Stdout.Fd()) { 12 | fmt.Println("Is Terminal") 13 | } else if isatty.IsCygwinTerminal(os.Stdout.Fd()) { 14 | fmt.Println("Is Cygwin/MSYS2 Terminal") 15 | } else { 16 | fmt.Println("Is Not Terminal") 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-isatty/isatty_appengine.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | package isatty 4 | 5 | // IsTerminal returns true if the file descriptor is terminal which 6 | // is always false on on appengine classic which is a sandboxed PaaS. 7 | func IsTerminal(fd uintptr) bool { 8 | return false 9 | } 10 | 11 | // IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 12 | // terminal. This is also always false on this environment. 13 | func IsCygwinTerminal(fd uintptr) bool { 14 | return false 15 | } 16 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-isatty/isatty_bsd.go: -------------------------------------------------------------------------------- 1 | // +build darwin freebsd openbsd netbsd dragonfly 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | import ( 7 | "syscall" 8 | "unsafe" 9 | ) 10 | 11 | const ioctlReadTermios = syscall.TIOCGETA 12 | 13 | // IsTerminal return true if the file descriptor is terminal. 14 | func IsTerminal(fd uintptr) bool { 15 | var termios syscall.Termios 16 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 17 | return err == 0 18 | } 19 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-isatty/isatty_linux.go: -------------------------------------------------------------------------------- 1 | // +build linux 2 | // +build !appengine,!ppc64,!ppc64le 3 | 4 | package isatty 5 | 6 | import ( 7 | "syscall" 8 | "unsafe" 9 | ) 10 | 11 | const ioctlReadTermios = syscall.TCGETS 12 | 13 | // IsTerminal return true if the file descriptor is terminal. 14 | func IsTerminal(fd uintptr) bool { 15 | var termios syscall.Termios 16 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 17 | return err == 0 18 | } 19 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-isatty/isatty_linux_ppc64x.go: -------------------------------------------------------------------------------- 1 | // +build linux 2 | // +build ppc64 ppc64le 3 | 4 | package isatty 5 | 6 | import ( 7 | "unsafe" 8 | 9 | syscall "golang.org/x/sys/unix" 10 | ) 11 | 12 | const ioctlReadTermios = syscall.TCGETS 13 | 14 | // IsTerminal return true if the file descriptor is terminal. 15 | func IsTerminal(fd uintptr) bool { 16 | var termios syscall.Termios 17 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 18 | return err == 0 19 | } 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-isatty/isatty_others.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 7 | // terminal. This is also always false on this environment. 8 | func IsCygwinTerminal(fd uintptr) bool { 9 | return false 10 | } 11 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-isatty/isatty_others_test.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | 3 | package isatty 4 | 5 | import ( 6 | "os" 7 | "testing" 8 | ) 9 | 10 | func TestTerminal(t *testing.T) { 11 | // test for non-panic 12 | IsTerminal(os.Stdout.Fd()) 13 | } 14 | 15 | func TestCygwinPipeName(t *testing.T) { 16 | if IsCygwinTerminal(os.Stdout.Fd()) { 17 | t.Fatal("should be false always") 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/mattn/go-isatty/isatty_solaris.go: -------------------------------------------------------------------------------- 1 | // +build solaris 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | import ( 7 | "golang.org/x/sys/unix" 8 | ) 9 | 10 | // IsTerminal returns true if the given file descriptor is a terminal. 11 | // see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c 12 | func IsTerminal(fd uintptr) bool { 13 | var termio unix.Termio 14 | err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio) 15 | return err == nil 16 | } 17 | -------------------------------------------------------------------------------- /vendor/src/github.com/matttproud/golang_protobuf_extensions/pbutil/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | 3 | cover: 4 | go test -cover -v -coverprofile=cover.dat ./... 5 | go tool cover -func cover.dat 6 | 7 | .PHONY: cover 8 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/AUTHORS: -------------------------------------------------------------------------------- 1 | Miek Gieben 2 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | Alex A. Skinner 2 | Andrew Tunnell-Jones 3 | Ask Bjørn Hansen 4 | Dave Cheney 5 | Dusty Wilson 6 | Marek Majkowski 7 | Peter van Dijk 8 | Omri Bahumi 9 | Alex Sergeyev 10 | James Hartig 11 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright 2009 The Go Authors. All rights reserved. Use of this source code 2 | is governed by a BSD-style license that can be found in the LICENSE file. 3 | Extensions of the original work are copyright (c) 2011 Miek Gieben 4 | 5 | Copyright 2011 Miek Gieben. All rights reserved. Use of this source code is 6 | governed by a BSD-style license that can be found in the LICENSE file. 7 | 8 | Copyright 2014 CloudFlare. All rights reserved. Use of this source code is 9 | governed by a BSD-style license that can be found in the LICENSE file. 10 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/Gopkg.lock: -------------------------------------------------------------------------------- 1 | # This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. 2 | 3 | 4 | [[projects]] 5 | branch = "master" 6 | name = "golang.org/x/crypto" 7 | packages = ["ed25519","ed25519/internal/edwards25519"] 8 | revision = "b47b1587369238182299fe4dad77d05b8b461e06" 9 | 10 | [[projects]] 11 | branch = "master" 12 | name = "golang.org/x/net" 13 | packages = ["bpf","internal/iana","internal/socket","ipv4","ipv6"] 14 | revision = "1e491301e022f8f977054da4c2d852decd59571f" 15 | 16 | [solve-meta] 17 | analyzer-name = "dep" 18 | analyzer-version = 1 19 | inputs-digest = "c4abc38abaeeeeb9be92455c9c02cae32841122b8982aaa067ef25bb8e86ff9d" 20 | solver-name = "gps-cdcl" 21 | solver-version = 1 22 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/Gopkg.toml: -------------------------------------------------------------------------------- 1 | 2 | # Gopkg.toml example 3 | # 4 | # Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md 5 | # for detailed Gopkg.toml documentation. 6 | # 7 | # required = ["github.com/user/thing/cmd/thing"] 8 | # ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] 9 | # 10 | # [[constraint]] 11 | # name = "github.com/user/project" 12 | # version = "1.0.0" 13 | # 14 | # [[constraint]] 15 | # name = "github.com/user/project2" 16 | # branch = "dev" 17 | # source = "github.com/myfork/project2" 18 | # 19 | # [[override]] 20 | # name = "github.com/x/y" 21 | # version = "2.4.0" 22 | 23 | 24 | [[constraint]] 25 | branch = "master" 26 | name = "golang.org/x/crypto" 27 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/dyn_test.go: -------------------------------------------------------------------------------- 1 | package dns 2 | 3 | // Find better solution 4 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/fuzz.go: -------------------------------------------------------------------------------- 1 | // +build fuzz 2 | 3 | package dns 4 | 5 | func Fuzz(data []byte) int { 6 | msg := new(Msg) 7 | 8 | if err := msg.Unpack(data); err != nil { 9 | return 0 10 | } 11 | if _, err := msg.Pack(); err != nil { 12 | return 0 13 | } 14 | 15 | return 1 16 | } 17 | 18 | func FuzzNewRR(data []byte) int { 19 | if _, err := NewRR(string(data)); err != nil { 20 | return 0 21 | } 22 | return 1 23 | } 24 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/remote_test.go: -------------------------------------------------------------------------------- 1 | package dns 2 | 3 | import "testing" 4 | 5 | const LinodeAddr = "176.58.119.54:53" 6 | 7 | func TestClientRemote(t *testing.T) { 8 | m := new(Msg) 9 | m.SetQuestion("go.dns.miek.nl.", TypeTXT) 10 | 11 | c := new(Client) 12 | r, _, err := c.Exchange(m, LinodeAddr) 13 | if err != nil { 14 | t.Errorf("failed to exchange: %v", err) 15 | } 16 | if r != nil && r.Rcode != RcodeSuccess { 17 | t.Errorf("failed to get an valid answer\n%v", r) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/rr_test.go: -------------------------------------------------------------------------------- 1 | package dns 2 | 3 | // testRR returns the RR from string s. The error is thrown away. 4 | func testRR(s string) RR { 5 | r, _ := NewRR(s) 6 | return r 7 | } 8 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/AUTHORS: -------------------------------------------------------------------------------- 1 | # This source code refers to The Go Authors for copyright purposes. 2 | # The master list of authors is in the main Go distribution, 3 | # visible at https://tip.golang.org/AUTHORS. 4 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | # This source code was written by the Go contributors. 2 | # The master list of contributors is in the main Go distribution, 3 | # visible at https://tip.golang.org/CONTRIBUTORS. 4 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/argon2/blamka_ref.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !amd64 appengine gccgo 6 | 7 | package argon2 8 | 9 | func processBlock(out, in1, in2 *block) { 10 | processBlockGeneric(out, in1, in2, false) 11 | } 12 | 13 | func processBlockXOR(out, in1, in2 *block) { 14 | processBlockGeneric(out, in1, in2, true) 15 | } 16 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !go1.7,amd64,!gccgo,!appengine 6 | 7 | package blake2b 8 | 9 | import "golang.org/x/sys/cpu" 10 | 11 | func init() { 12 | useSSE4 = cpu.X86.HasSSE41 13 | } 14 | 15 | //go:noescape 16 | func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) 17 | 18 | func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) { 19 | if useSSE4 { 20 | hashBlocksSSE4(h, c, flag, blocks) 21 | } else { 22 | hashBlocksGeneric(h, c, flag, blocks) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/blake2b/blake2b_ref.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !amd64 appengine gccgo 6 | 7 | package blake2b 8 | 9 | func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) { 10 | hashBlocksGeneric(h, c, flag, blocks) 11 | } 12 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/blake2s/blake2s_ref.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !amd64,!386 gccgo appengine 6 | 7 | package blake2s 8 | 9 | var ( 10 | useSSE4 = false 11 | useSSSE3 = false 12 | useSSE2 = false 13 | ) 14 | 15 | func hashBlocks(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) { 16 | hashBlocksGeneric(h, c, flag, blocks) 17 | } 18 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/blake2s/register.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.9 6 | 7 | package blake2s 8 | 9 | import ( 10 | "crypto" 11 | "hash" 12 | ) 13 | 14 | func init() { 15 | newHash256 := func() hash.Hash { 16 | h, _ := New256(nil) 17 | return h 18 | } 19 | 20 | crypto.RegisterHash(crypto.BLAKE2s_256, newHash256) 21 | } 22 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_noasm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !amd64 !go1.7 gccgo appengine 6 | 7 | package chacha20poly1305 8 | 9 | func (c *chacha20poly1305) seal(dst, nonce, plaintext, additionalData []byte) []byte { 10 | return c.sealGeneric(dst, nonce, plaintext, additionalData) 11 | } 12 | 13 | func (c *chacha20poly1305) open(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) { 14 | return c.openGeneric(dst, nonce, ciphertext, additionalData) 15 | } 16 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/codereview.cfg: -------------------------------------------------------------------------------- 1 | issuerepo: golang/go 2 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/curve25519/const_amd64.h: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // This code was translated into a form compatible with 6a from the public 6 | // domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html 7 | 8 | #define REDMASK51 0x0007FFFFFFFFFFFF 9 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/curve25519/const_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // This code was translated into a form compatible with 6a from the public 6 | // domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html 7 | 8 | // +build amd64,!gccgo,!appengine 9 | 10 | // These constants cannot be encoded in non-MOVQ immediates. 11 | // We access them directly from memory instead. 12 | 13 | DATA ·_121666_213(SB)/8, $996687872 14 | GLOBL ·_121666_213(SB), 8, $8 15 | 16 | DATA ·_2P0(SB)/8, $0xFFFFFFFFFFFDA 17 | GLOBL ·_2P0(SB), 8, $8 18 | 19 | DATA ·_2P1234(SB)/8, $0xFFFFFFFFFFFFE 20 | GLOBL ·_2P1234(SB), 8, $8 21 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !s390x gccgo appengine 6 | 7 | package chacha20 8 | 9 | const ( 10 | bufSize = 64 11 | haveAsm = false 12 | ) 13 | 14 | func (*Cipher) xorKeyStreamAsm(dst, src []byte) { 15 | panic("not implemented") 16 | } 17 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/md4/example_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package md4_test 6 | 7 | import ( 8 | "fmt" 9 | "io" 10 | 11 | "golang.org/x/crypto/md4" 12 | ) 13 | 14 | func ExampleNew() { 15 | h := md4.New() 16 | data := "These pretzels are making me thirsty." 17 | io.WriteString(h, data) 18 | fmt.Printf("%x", h.Sum(nil)) 19 | // Output: 48c4e365090b30a32f084c4888deceaa 20 | } 21 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/pkcs12/internal/rc2/bench_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package rc2 6 | 7 | import ( 8 | "testing" 9 | ) 10 | 11 | func BenchmarkEncrypt(b *testing.B) { 12 | r, _ := New([]byte{0, 0, 0, 0, 0, 0, 0, 0}, 64) 13 | b.ResetTimer() 14 | var src [8]byte 15 | for i := 0; i < b.N; i++ { 16 | r.Encrypt(src[:], src[:]) 17 | } 18 | } 19 | 20 | func BenchmarkDecrypt(b *testing.B) { 21 | r, _ := New([]byte{0, 0, 0, 0, 0, 0, 0, 0}, 64) 22 | b.ResetTimer() 23 | var src [8]byte 24 | for i := 0; i < b.N; i++ { 25 | r.Decrypt(src[:], src[:]) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/poly1305/sum_noasm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build s390x,!go1.11 !arm,!amd64,!s390x gccgo appengine nacl 6 | 7 | package poly1305 8 | 9 | // Sum generates an authenticator for msg using a one-time key and puts the 10 | // 16-byte result into out. Authenticating two different messages with the same 11 | // key allows an attacker to forge messages at will. 12 | func Sum(out *[TagSize]byte, msg []byte, key *[32]byte) { 13 | sumGeneric(out, msg, key) 14 | } 15 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build amd64,!appengine,!gccgo 6 | 7 | package sha3 8 | 9 | // This function is implemented in keccakf_amd64.s. 10 | 11 | //go:noescape 12 | 13 | func keccakF1600(a *[25]uint64) 14 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/sha3/register.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.4 6 | 7 | package sha3 8 | 9 | import ( 10 | "crypto" 11 | ) 12 | 13 | func init() { 14 | crypto.RegisterHash(crypto.SHA3_224, New224) 15 | crypto.RegisterHash(crypto.SHA3_256, New256) 16 | crypto.RegisterHash(crypto.SHA3_384, New384) 17 | crypto.RegisterHash(crypto.SHA3_512, New512) 18 | } 19 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/sha3/shake_generic.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //+build gccgo appengine !s390x 6 | 7 | package sha3 8 | 9 | // newShake128Asm returns an assembly implementation of SHAKE-128 if available, 10 | // otherwise it returns nil. 11 | func newShake128Asm() ShakeHash { 12 | return nil 13 | } 14 | 15 | // newShake256Asm returns an assembly implementation of SHAKE-256 if available, 16 | // otherwise it returns nil. 17 | func newShake256Asm() ShakeHash { 18 | return nil 19 | } 20 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zignig/astralboot/cc71025bf94468af5130145606ddf9cb9e7a3c35/vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/sha3/xor.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !amd64,!386,!ppc64le appengine 6 | 7 | package sha3 8 | 9 | var ( 10 | xorIn = xorInGeneric 11 | copyOut = copyOutGeneric 12 | xorInUnaligned = xorInGeneric 13 | copyOutUnaligned = copyOutGeneric 14 | ) 15 | 16 | const xorImplementationUnaligned = "generic" 17 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/ssh/tcpip_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package ssh 6 | 7 | import ( 8 | "testing" 9 | ) 10 | 11 | func TestAutoPortListenBroken(t *testing.T) { 12 | broken := "SSH-2.0-OpenSSH_5.9hh11" 13 | works := "SSH-2.0-OpenSSH_6.1" 14 | if !isBrokenOpenSSHVersion(broken) { 15 | t.Errorf("version %q not marked as broken", broken) 16 | } 17 | if isBrokenOpenSSHVersion(works) { 18 | t.Errorf("version %q marked as broken", works) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin dragonfly freebsd netbsd openbsd 6 | 7 | package terminal 8 | 9 | import "golang.org/x/sys/unix" 10 | 11 | const ioctlReadTermios = unix.TIOCGETA 12 | const ioctlWriteTermios = unix.TIOCSETA 13 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package terminal 6 | 7 | import "golang.org/x/sys/unix" 8 | 9 | const ioctlReadTermios = unix.TCGETS 10 | const ioctlWriteTermios = unix.TCSETS 11 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/ssh/test/doc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Package test contains integration tests for the 6 | // golang.org/x/crypto/ssh package. 7 | package test // import "golang.org/x/crypto/ssh/test" 8 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/crypto/ssh/testdata/doc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // This package contains test data shared between the various subpackages of 6 | // the golang.org/x/crypto/ssh package. Under no circumstance should 7 | // this data be used for production code. 8 | package testdata // import "golang.org/x/crypto/ssh/testdata" 9 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/AUTHORS: -------------------------------------------------------------------------------- 1 | # This source code refers to The Go Authors for copyright purposes. 2 | # The master list of authors is in the main Go distribution, 3 | # visible at http://tip.golang.org/AUTHORS. 4 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | # This source code was written by the Go contributors. 2 | # The master list of contributors is in the main Go distribution, 3 | # visible at http://tip.golang.org/CONTRIBUTORS. 4 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/README.md: -------------------------------------------------------------------------------- 1 | # Go Networking 2 | 3 | This repository holds supplementary Go networking libraries. 4 | 5 | ## Download/Install 6 | 7 | The easiest way to install is to run `go get -u golang.org/x/net`. You can 8 | also manually git clone the repository to `$GOPATH/src/golang.org/x/net`. 9 | 10 | ## Report Issues / Send Patches 11 | 12 | This repository uses Gerrit for code changes. To learn how to submit 13 | changes to this repository, see https://golang.org/doc/contribute.html. 14 | The main issue tracker for the net repository is located at 15 | https://github.com/golang/go/issues. Prefix your issue with "x/net:" in the 16 | subject line, so it is easy to find. 17 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/bpf/setter.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package bpf 6 | 7 | // A Setter is a type which can attach a compiled BPF filter to itself. 8 | type Setter interface { 9 | SetBPF(filter []RawInstruction) error 10 | } 11 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/bpf/testdata/all_instructions.bpf: -------------------------------------------------------------------------------- 1 | 50,0 0 0 42,1 0 0 42,96 0 0 3,97 0 0 3,48 0 0 42,40 0 0 42,32 0 0 42,80 0 0 42,72 0 0 42,64 0 0 42,177 0 0 42,128 0 0 0,32 0 0 4294963200,32 0 0 4294963204,32 0 0 4294963256,2 0 0 3,3 0 0 3,4 0 0 42,20 0 0 42,36 0 0 42,52 0 0 42,68 0 0 42,84 0 0 42,100 0 0 42,116 0 0 42,148 0 0 42,164 0 0 42,12 0 0 0,28 0 0 0,44 0 0 0,60 0 0 0,76 0 0 0,92 0 0 0,108 0 0 0,124 0 0 0,156 0 0 0,172 0 0 0,132 0 0 0,5 0 0 10,21 8 9 42,21 0 8 42,53 0 7 42,37 0 6 42,37 4 5 42,53 3 4 42,69 2 3 42,7 0 0 0,135 0 0 0,22 0 0 0,6 0 0 0, 2 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/codereview.cfg: -------------------------------------------------------------------------------- 1 | issuerepo: golang/go 2 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/html/charset/testdata/README: -------------------------------------------------------------------------------- 1 | These test cases come from 2 | http://www.w3.org/International/tests/repository/html5/the-input-byte-stream/results-basics 3 | 4 | Distributed under both the W3C Test Suite License 5 | (http://www.w3.org/Consortium/Legal/2008/04-testsuite-license) 6 | and the W3C 3-clause BSD License 7 | (http://www.w3.org/Consortium/Legal/2008/03-bsd-license). 8 | To contribute to a W3C Test Suite, see the policies and contribution 9 | forms (http://www.w3.org/2004/10/27-testcases). 10 | -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zignig/astralboot/cc71025bf94468af5130145606ddf9cb9e7a3c35/vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zignig/astralboot/cc71025bf94468af5130145606ddf9cb9e7a3c35/vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html -------------------------------------------------------------------------------- /vendor/src/github.com/miekg/dns/vendor/golang.org/x/net/html/testdata/webkit/adoption02.dat: -------------------------------------------------------------------------------- 1 | #data 2 | 12

34 3 | #errors 4 | #document 5 | | 6 | | 7 | | 8 | | 9 | | "1" 10 | | 11 | | "2" 12 | | 13 | |

14 | | 15 | | "3" 16 | | "4" 17 | 18 | #data 19 |

20 | #errors 21 | #document 22 | | 23 | | 24 | | 25 | | 26 | |
27 | | 28 | |