├── README.md ├── README_CN.md ├── app.go ├── app_test.go ├── atc.go ├── cache.go ├── cache ├── README.md ├── cache.go ├── memcache │ ├── memcache.go │ └── memcache_test.go └── redis │ ├── redis.go │ └── redis_test.go ├── conf ├── app.ini └── error.ini ├── config.go ├── context └── context.go ├── doc ├── README.md └── image │ ├── life.png │ ├── life │ ├── 未命名 │ │ ├── 版面 1.png │ │ ├── 版面 2.png │ │ └── 版面 3.png │ ├── 版面 1.png │ └── 版面 2.png │ ├── life1.png │ ├── life2.png │ ├── module.graffle │ └── module.png ├── errors.go ├── files.go ├── grace.go ├── grace ├── README.md ├── grace.go ├── grace_test.go └── signal.go ├── grpc.go ├── handlers.go ├── init.go ├── logs.go ├── logs ├── README.md ├── file.go ├── log.go ├── log_test.go └── stdout.go ├── mgo.go ├── mgo ├── mgo.go └── mgo_test.go ├── orm.go ├── orm ├── orm.go ├── util │ └── util.go └── xorm │ ├── xorm.go │ └── xorm_test.go ├── pool ├── pool.go └── pool_test.go ├── queue.go ├── queue ├── README.md ├── example_test.go ├── lib.go ├── message │ ├── common.pb.go │ ├── common.proto │ ├── meta.go │ ├── rpc.pb.go │ └── rpc.proto ├── queue_nats │ ├── impl.go │ ├── lib_test.go │ ├── nats.go │ └── uri.go ├── queue_nats_streaming │ ├── impl.go │ ├── lib_test.go │ ├── nats-streaming.go │ └── uri.go ├── queue_redis │ ├── impl.go │ ├── lib_test.go │ ├── redis.go │ └── uri.go ├── testdata │ ├── pbtest.pb.go │ └── pbtest.proto └── util │ ├── message.go │ ├── message_id.go │ └── util.go ├── router.go ├── router_test.go ├── rpc ├── README.md ├── pgrpc │ ├── grpcserve.go │ └── helloworld.proto └── thrift │ ├── gen │ ├── atcrpc │ │ ├── atcrpc_thrift-remote │ │ │ └── atcrpc_thrift-remote.go │ │ ├── atcrpcthrift.go │ │ ├── constants.go │ │ └── ttypes.go │ └── micro │ │ ├── constants.go │ │ ├── micro_thrift-remote │ │ └── micro_thrift-remote.go │ │ ├── microthrift.go │ │ └── ttypes.go │ ├── lib │ └── thrift │ │ ├── application_exception.go │ │ ├── application_exception_test.go │ │ ├── binary_protocol.go │ │ ├── binary_protocol_test.go │ │ ├── buffered_transport.go │ │ ├── buffered_transport_test.go │ │ ├── compact_protocol.go │ │ ├── compact_protocol_test.go │ │ ├── debug_protocol.go │ │ ├── deserializer.go │ │ ├── exception.go │ │ ├── exception_test.go │ │ ├── field.go │ │ ├── framed_transport.go │ │ ├── framed_transport_test.go │ │ ├── http_client.go │ │ ├── http_client_test.go │ │ ├── http_transport.go │ │ ├── iostream_transport.go │ │ ├── iostream_transport_test.go │ │ ├── json_protocol.go │ │ ├── json_protocol_test.go │ │ ├── lowlevel_benchmarks_test.go │ │ ├── memory_buffer.go │ │ ├── memory_buffer_test.go │ │ ├── messagetype.go │ │ ├── multiplexed_protocol.go │ │ ├── numeric.go │ │ ├── pointerize.go │ │ ├── processor.go │ │ ├── processor_factory.go │ │ ├── protocol.go │ │ ├── protocol_exception.go │ │ ├── protocol_factory.go │ │ ├── protocol_test.go │ │ ├── rich_transport.go │ │ ├── rich_transport_test.go │ │ ├── serializer.go │ │ ├── serializer_test.go │ │ ├── serializer_types_test.go │ │ ├── server.go │ │ ├── server_socket.go │ │ ├── server_socket_test.go │ │ ├── server_test.go │ │ ├── server_transport.go │ │ ├── simple_json_protocol.go │ │ ├── simple_json_protocol_test.go │ │ ├── simple_server.go │ │ ├── socket.go │ │ ├── ssl_server_socket.go │ │ ├── ssl_socket.go │ │ ├── transport.go │ │ ├── transport_exception.go │ │ ├── transport_exception_test.go │ │ ├── transport_factory.go │ │ ├── transport_test.go │ │ ├── type.go │ │ ├── zlib_transport.go │ │ └── zlib_transport_test.go │ ├── thriftclient.go │ ├── thriftserve.go │ └── thriftserve_test.go ├── utils ├── encrypt │ ├── aes.go │ ├── des.go │ ├── encrypt.go │ ├── encrypt_test.go │ └── rsa.go ├── file.go ├── utils.go └── utils_test.go └── vendor └── code.google.com └── p └── go.net ├── .hg ├── 00changelog.i ├── branch ├── cache │ ├── branch2-served │ └── tags ├── dirstate ├── hgrc ├── requires ├── store │ ├── 00changelog.i │ ├── 00manifest.i │ ├── data │ │ ├── _a_u_t_h_o_r_s.i │ │ ├── _c_o_n_t_r_i_b_u_t_o_r_s.i │ │ ├── _l_i_c_e_n_s_e.i │ │ ├── _p_a_t_e_n_t_s.i │ │ ├── _r_e_a_d_m_e.i │ │ ├── codereview.cfg.i │ │ ├── context │ │ │ ├── context.go.i │ │ │ ├── context__test.go.i │ │ │ └── withtimeout__test.go.i │ │ ├── dict │ │ │ └── dict.go.i │ │ ├── html │ │ │ ├── atom │ │ │ │ ├── atom.go.i │ │ │ │ ├── atom__test.go.i │ │ │ │ ├── gen.go.i │ │ │ │ ├── table.go.i │ │ │ │ └── table__test.go.i │ │ │ ├── charset │ │ │ │ ├── charset.go.i │ │ │ │ ├── charset__test.go.i │ │ │ │ ├── encoding.go.i │ │ │ │ ├── encoding__test.go.i │ │ │ │ ├── gen.go.i │ │ │ │ ├── table.go.i │ │ │ │ └── testdata │ │ │ │ │ ├── _h_t_t_p-charset.html.i │ │ │ │ │ ├── _h_t_t_p-vs-_u_t_f-8-_b_o_m.html.i │ │ │ │ │ ├── _h_t_t_p-vs-meta-charset.html.i │ │ │ │ │ ├── _h_t_t_p-vs-meta-content.html.i │ │ │ │ │ ├── _no-encoding-declaration.html.i │ │ │ │ │ ├── _r_e_a_d_m_e.i │ │ │ │ │ ├── _u_t_f-16_b_e-_b_o_m.html.i │ │ │ │ │ ├── _u_t_f-16_l_e-_b_o_m.html.i │ │ │ │ │ ├── _u_t_f-8-_b_o_m-vs-meta-charset.html.i │ │ │ │ │ ├── _u_t_f-8-_b_o_m-vs-meta-content.html.i │ │ │ │ │ ├── meta-charset-attribute.html.i │ │ │ │ │ └── meta-content-attribute.html.i │ │ │ ├── const.go.i │ │ │ ├── doc.go.i │ │ │ ├── doctype.go.i │ │ │ ├── entity.go.i │ │ │ ├── entity__test.go.i │ │ │ ├── escape.go.i │ │ │ ├── escape__test.go.i │ │ │ ├── example__test.go.i │ │ │ ├── foreign.go.i │ │ │ ├── node.go.i │ │ │ ├── node__test.go.i │ │ │ ├── parse.go.i │ │ │ ├── parse__test.go.i │ │ │ ├── render.go.i │ │ │ ├── render__test.go.i │ │ │ ├── testdata │ │ │ │ ├── go1.html.i │ │ │ │ └── webkit │ │ │ │ │ ├── _r_e_a_d_m_e.i │ │ │ │ │ ├── adoption01.dat.i │ │ │ │ │ ├── adoption02.dat.i │ │ │ │ │ ├── comments01.dat.i │ │ │ │ │ ├── doctype01.dat.i │ │ │ │ │ ├── entities01.dat.i │ │ │ │ │ ├── entities02.dat.i │ │ │ │ │ ├── html5test-com.dat.i │ │ │ │ │ ├── inbody01.dat.i │ │ │ │ │ ├── isindex.dat.i │ │ │ │ │ ├── pending-spec-changes-plain-text-unsafe.dat.i │ │ │ │ │ ├── pending-spec-changes.dat.i │ │ │ │ │ ├── plain-text-unsafe.dat.i │ │ │ │ │ ├── scriptdata01.dat.i │ │ │ │ │ ├── scripted │ │ │ │ │ ├── adoption01.dat.i │ │ │ │ │ └── webkit01.dat.i │ │ │ │ │ ├── tables01.dat.i │ │ │ │ │ ├── tests1.dat.i │ │ │ │ │ ├── tests10.dat.i │ │ │ │ │ ├── tests11.dat.i │ │ │ │ │ ├── tests12.dat.i │ │ │ │ │ ├── tests14.dat.i │ │ │ │ │ ├── tests15.dat.i │ │ │ │ │ ├── tests16.dat.i │ │ │ │ │ ├── tests17.dat.i │ │ │ │ │ ├── tests18.dat.i │ │ │ │ │ ├── tests19.dat.i │ │ │ │ │ ├── tests2.dat.i │ │ │ │ │ ├── tests20.dat.i │ │ │ │ │ ├── tests21.dat.i │ │ │ │ │ ├── tests22.dat.i │ │ │ │ │ ├── tests23.dat.i │ │ │ │ │ ├── tests24.dat.i │ │ │ │ │ ├── tests25.dat.i │ │ │ │ │ ├── tests26.dat.i │ │ │ │ │ ├── tests3.dat.i │ │ │ │ │ ├── tests4.dat.i │ │ │ │ │ ├── tests5.dat.i │ │ │ │ │ ├── tests6.dat.i │ │ │ │ │ ├── tests7.dat.i │ │ │ │ │ ├── tests8.dat.i │ │ │ │ │ ├── tests9.dat.i │ │ │ │ │ ├── tests__inner_h_t_m_l__1.dat.i │ │ │ │ │ ├── tricky01.dat.i │ │ │ │ │ ├── webkit01.dat.i │ │ │ │ │ └── webkit02.dat.i │ │ │ ├── token.go.i │ │ │ └── token__test.go.i │ │ ├── idna │ │ │ ├── idna.go.i │ │ │ ├── idna__test.go.i │ │ │ ├── punycode.go.i │ │ │ └── punycode__test.go.i │ │ ├── ipv4 │ │ │ ├── control.go.i │ │ │ ├── control__bsd.go.i │ │ │ ├── control__linux.go.i │ │ │ ├── control__nonpktinfo.go.i │ │ │ ├── control__pktinfo.go.i │ │ │ ├── control__plan9.go.i │ │ │ ├── control__stub.go.i │ │ │ ├── control__unix.go.i │ │ │ ├── control__windows.go.i │ │ │ ├── dgramopt__plan9.go.i │ │ │ ├── dgramopt__posix.go.i │ │ │ ├── dgramopt__stub.go.i │ │ │ ├── doc.go.i │ │ │ ├── endpoint.go.i │ │ │ ├── example__test.go.i │ │ │ ├── gen.go.i │ │ │ ├── genericopt__plan9.go.i │ │ │ ├── genericopt__posix.go.i │ │ │ ├── genericopt__stub.go.i │ │ │ ├── gentest.go.i │ │ │ ├── header.go.i │ │ │ ├── header__test.go.i │ │ │ ├── helper.go.i │ │ │ ├── helper__plan9.go.i │ │ │ ├── helper__posix.go.i │ │ │ ├── helper__stub.go.i │ │ │ ├── helper__unix.go.i │ │ │ ├── helper__windows.go.i │ │ │ ├── iana.go.i │ │ │ ├── iana__test.go.i │ │ │ ├── icmp.go.i │ │ │ ├── mockicmp__test.go.i │ │ │ ├── mocktransponder__test.go.i │ │ │ ├── multicast__test.go.i │ │ │ ├── multicastlistener__test.go.i │ │ │ ├── multicastsockopt__test.go.i │ │ │ ├── packet.go.i │ │ │ ├── payload.go.i │ │ │ ├── payload__cmsg.go.i │ │ │ ├── payload__noncmsg.go.i │ │ │ ├── sockopt__bsd.go.i │ │ │ ├── sockopt__freebsd.go.i │ │ │ ├── sockopt__linux.go.i │ │ │ ├── sockopt__mreq.go.i │ │ │ ├── sockopt__mreqn.go.i │ │ │ ├── sockopt__nonpktinfo.go.i │ │ │ ├── sockopt__pktinfo.go.i │ │ │ ├── sockopt__plan9.go.i │ │ │ ├── sockopt__stub.go.i │ │ │ ├── sockopt__unix.go.i │ │ │ ├── sockopt__windows.go.i │ │ │ ├── sys.go.i │ │ │ ├── sys__bsd.go.i │ │ │ ├── sys__darwin.go.i │ │ │ ├── sys__freebsd.go.i │ │ │ ├── sys__linux.go.i │ │ │ ├── sys__mreq.go.i │ │ │ ├── sys__windows.go.i │ │ │ ├── unicast__test.go.i │ │ │ └── unicastsockopt__test.go.i │ │ ├── ipv6 │ │ │ ├── control.go.i │ │ │ ├── control__rfc2292__darwin.go.i │ │ │ ├── control__rfc2292__unix.go.i │ │ │ ├── control__rfc3542__bsd.go.i │ │ │ ├── control__rfc3542__linux.go.i │ │ │ ├── control__rfc3542__plan9.go.i │ │ │ ├── control__rfc3542__stub.go.i │ │ │ ├── control__rfc3542__unix.go.i │ │ │ ├── control__rfc3542__windows.go.i │ │ │ ├── control__test.go.i │ │ │ ├── dgramopt__plan9.go.i │ │ │ ├── dgramopt__posix.go.i │ │ │ ├── dgramopt__stub.go.i │ │ │ ├── doc.go.i │ │ │ ├── endpoint.go.i │ │ │ ├── gen.go.i │ │ │ ├── genericopt__plan9.go.i │ │ │ ├── genericopt__posix.go.i │ │ │ ├── genericopt__stub.go.i │ │ │ ├── gentest.go.i │ │ │ ├── helper.go.i │ │ │ ├── helper__plan9.go.i │ │ │ ├── helper__stub.go.i │ │ │ ├── helper__unix.go.i │ │ │ ├── helper__windows.go.i │ │ │ ├── iana.go.i │ │ │ ├── iana__test.go.i │ │ │ ├── icmp.go.i │ │ │ ├── icmp__bsd.go.i │ │ │ ├── icmp__linux.go.i │ │ │ ├── icmp__plan9.go.i │ │ │ ├── icmp__stub.go.i │ │ │ ├── icmp__test.go.i │ │ │ ├── icmp__windows.go.i │ │ │ ├── mockicmp__test.go.i │ │ │ ├── mocktransponder__test.go.i │ │ │ ├── multicast__test.go.i │ │ │ ├── multicastlistener__test.go.i │ │ │ ├── multicastsockopt__test.go.i │ │ │ ├── payload.go.i │ │ │ ├── payload__cmsg.go.i │ │ │ ├── payload__noncmsg.go.i │ │ │ ├── readwrite__test.go.i │ │ │ ├── sockopt__rfc2292__darwin.go.i │ │ │ ├── sockopt__rfc2292__unix.go.i │ │ │ ├── sockopt__rfc3493__bsd.go.i │ │ │ ├── sockopt__rfc3493__linux.go.i │ │ │ ├── sockopt__rfc3493__unix.go.i │ │ │ ├── sockopt__rfc3493__windows.go.i │ │ │ ├── sockopt__rfc3542__bsd.go.i │ │ │ ├── sockopt__rfc3542__linux.go.i │ │ │ ├── sockopt__rfc3542__plan9.go.i │ │ │ ├── sockopt__rfc3542__stub.go.i │ │ │ ├── sockopt__rfc3542__unix.go.i │ │ │ ├── sockopt__rfc3542__windows.go.i │ │ │ ├── sockopt__test.go.i │ │ │ ├── sys.go.i │ │ │ ├── sys__bsd.go.i │ │ │ ├── sys__darwin.go.i │ │ │ ├── sys__linux.go.i │ │ │ ├── sys__unix.go.i │ │ │ ├── sys__windows.go.i │ │ │ ├── syscall__linux__386.go.i │ │ │ ├── syscall__linux__386.s.i │ │ │ ├── syscall__nosplit4__linux__386.go.i │ │ │ ├── syscall__nosplit7__linux__386.go.i │ │ │ ├── syscall__unix.go.i │ │ │ ├── unicast__test.go.i │ │ │ └── unicastsockopt__test.go.i │ │ ├── netutil │ │ │ ├── listen.go.i │ │ │ └── listen__test.go.i │ │ ├── proxy │ │ │ ├── direct.go.i │ │ │ ├── per__host.go.i │ │ │ ├── per__host__test.go.i │ │ │ ├── proxy.go.i │ │ │ ├── proxy__test.go.i │ │ │ └── socks5.go.i │ │ ├── publicsuffix │ │ │ ├── gen.go.i │ │ │ ├── list.go.i │ │ │ ├── list__test.go.i │ │ │ ├── table.go.d │ │ │ ├── table.go.i │ │ │ └── table__test.go.i │ │ ├── spdy │ │ │ ├── dictionary.go.i │ │ │ ├── read.go.i │ │ │ ├── spdy__test.go.i │ │ │ ├── types.go.i │ │ │ └── write.go.i │ │ ├── websocket │ │ │ ├── client.go.i │ │ │ ├── exampledial__test.go.i │ │ │ ├── examplehandler__test.go.i │ │ │ ├── hixie.go.i │ │ │ ├── hixie__test.go.i │ │ │ ├── hybi.go.i │ │ │ ├── hybi__test.go.i │ │ │ ├── server.go.i │ │ │ ├── websocket.go.i │ │ │ └── websocket__test.go.i │ │ └── ~2ehgignore.i │ ├── fncache │ ├── phaseroots │ ├── undo │ └── undo.phaseroots ├── undo.bookmarks ├── undo.branch ├── undo.desc └── undo.dirstate ├── .hgignore ├── AUTHORS ├── CONTRIBUTORS ├── LICENSE ├── PATENTS ├── README ├── codereview.cfg ├── context ├── context.go ├── context_test.go └── withtimeout_test.go ├── dict └── dict.go ├── html ├── atom │ ├── atom.go │ ├── atom_test.go │ ├── gen.go │ ├── table.go │ └── table_test.go ├── charset │ ├── charset.go │ ├── charset_test.go │ ├── gen.go │ ├── table.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 │ │ ├── scriptdata01.dat │ │ ├── scripted │ │ ├── adoption01.dat │ │ └── webkit01.dat │ │ ├── tables01.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 ├── idna ├── idna.go ├── idna_test.go ├── punycode.go └── punycode_test.go ├── ipv4 ├── control.go ├── control_bsd.go ├── control_linux.go ├── control_nonpktinfo.go ├── control_pktinfo.go ├── control_stub.go ├── control_unix.go ├── control_windows.go ├── dgramopt_posix.go ├── dgramopt_stub.go ├── doc.go ├── endpoint.go ├── example_test.go ├── gen.go ├── genericopt_posix.go ├── genericopt_stub.go ├── gentest.go ├── header.go ├── header_test.go ├── helper.go ├── helper_stub.go ├── helper_unix.go ├── helper_windows.go ├── iana.go ├── iana_test.go ├── icmp.go ├── mockicmp_test.go ├── mocktransponder_test.go ├── multicast_test.go ├── multicastlistener_test.go ├── multicastsockopt_test.go ├── packet.go ├── payload.go ├── payload_cmsg.go ├── payload_noncmsg.go ├── sockopt_bsd.go ├── sockopt_linux.go ├── sockopt_mreq.go ├── sockopt_mreqn.go ├── sockopt_nonpktinfo.go ├── sockopt_pktinfo.go ├── sockopt_stub.go ├── sockopt_unix.go ├── sockopt_windows.go ├── sys.go ├── sys_bsd.go ├── sys_darwin.go ├── sys_freebsd.go ├── sys_linux.go ├── sys_mreq.go ├── sys_windows.go ├── unicast_test.go └── unicastsockopt_test.go ├── ipv6 ├── control.go ├── control_rfc2292_unix.go ├── control_rfc3542_stub.go ├── control_rfc3542_unix.go ├── control_rfc3542_windows.go ├── dgramopt_posix.go ├── dgramopt_stub.go ├── doc.go ├── endpoint.go ├── gen.go ├── genericopt_posix.go ├── genericopt_stub.go ├── gentest.go ├── helper.go ├── helper_stub.go ├── helper_unix.go ├── helper_windows.go ├── iana.go ├── iana_test.go ├── icmp.go ├── icmp_bsd.go ├── icmp_linux.go ├── icmp_stub.go ├── icmp_test.go ├── icmp_windows.go ├── mockicmp_test.go ├── mocktransponder_test.go ├── multicast_test.go ├── multicastlistener_test.go ├── multicastsockopt_test.go ├── payload.go ├── payload_cmsg.go ├── payload_noncmsg.go ├── readwrite_test.go ├── sockopt_rfc2292_unix.go ├── sockopt_rfc3493_bsd.go ├── sockopt_rfc3493_linux.go ├── sockopt_rfc3493_unix.go ├── sockopt_rfc3493_windows.go ├── sockopt_rfc3542_stub.go ├── sockopt_rfc3542_unix.go ├── sockopt_rfc3542_windows.go ├── sockopt_test.go ├── sys.go ├── sys_bsd.go ├── sys_darwin.go ├── sys_linux.go ├── sys_unix.go ├── sys_windows.go ├── syscall_linux_386.go ├── syscall_linux_386.s ├── syscall_nosplit4_linux_386.go ├── syscall_nosplit7_linux_386.go ├── syscall_unix.go ├── unicast_test.go └── unicastsockopt_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 ├── spdy ├── dictionary.go ├── read.go ├── spdy_test.go ├── types.go └── write.go └── websocket ├── client.go ├── exampledial_test.go ├── examplehandler_test.go ├── hybi.go ├── hybi_test.go ├── server.go ├── websocket.go └── websocket_test.go /app_test.go: -------------------------------------------------------------------------------- 1 | package atc 2 | 3 | //import ( 4 | // "fmt" 5 | // "testing" 6 | //) 7 | // 8 | //func HandlerAppRun1(ctx *Context) { 9 | // fmt.Println("appRun1") 10 | // ctx.Write([]byte(ctx.Query("a"))) 11 | //} 12 | // 13 | //func HandlerAppRun2(ctx *Context) { 14 | // fmt.Println("appRun2") 15 | // ctx.Write([]byte(ctx.Query("a"))) 16 | //} 17 | // 18 | //func TestAppRun(t *testing.T) { 19 | // //appRun 1 20 | // go func() { 21 | // atcRun1 := NewApp("127.0.0.1", 8081) 22 | // atcRun1.Handler.AddRouter("/test1", HandlerAppRun1) 23 | // atcRun1.Run() 24 | // }() 25 | // 26 | // //appRun 2 27 | // atcRun2 := NewApp("127.0.0.1", 8082) 28 | // atcRun2.Handler.AddRouter("/test2", HandlerAppRun2) 29 | // atcRun2.Run() 30 | //} 31 | -------------------------------------------------------------------------------- /cache/memcache/memcache_test.go: -------------------------------------------------------------------------------- 1 | package memcache 2 | 3 | import ( 4 | "testing" 5 | "time" 6 | 7 | "github.com/adolphlxm/atc/cache" 8 | ) 9 | 10 | func TestNewMemCache(t *testing.T) { 11 | m, err := cache.NewCache("memcache","127.0.0.1:11211") 12 | if err != nil { 13 | t.Errorf("Memcache init err:%v",err.Error()) 14 | } 15 | 16 | // test put 17 | timeoutDuration := 10 * time.Second 18 | if err = m.Put("atc","atc framework",timeoutDuration); err != nil { 19 | t.Errorf("Memcache put err:%v",err.Error()) 20 | } 21 | 22 | // test get 23 | v, err := m.Get("atc") 24 | if err != nil { 25 | t.Errorf("Memcache Get err:%v",err.Error()) 26 | } 27 | if string(v.([]byte)) != "atc framework" { 28 | t.Errorf("Memcache Get value error.") 29 | } 30 | 31 | // test delete 32 | if err := m.Delete("atc"); err != nil { 33 | t.Errorf("Memcache Delete err:%v",err.Error()) 34 | } 35 | } -------------------------------------------------------------------------------- /cache/redis/redis_test.go: -------------------------------------------------------------------------------- 1 | package redis 2 | 3 | import ( 4 | "github.com/adolphlxm/atc/cache" 5 | "github.com/garyburd/redigo/redis" 6 | "testing" 7 | "time" 8 | ) 9 | 10 | func TestNewRedisCache(t *testing.T) { 11 | r, err := cache.NewCache("redis", `{"addr":"127.0.0.1:6379","maxidle":"2","maxactive":"2","idletimeout":"5"}`) 12 | if err != nil { 13 | t.Errorf("Redis init err:%v", err.Error()) 14 | } 15 | key := "atc" 16 | 17 | // test put 18 | timeoutDuration := 10 * time.Second 19 | if err = r.Put(key, "atc framework", timeoutDuration); err != nil { 20 | t.Errorf("Redis put err:%v", err.Error()) 21 | } 22 | 23 | // test get 24 | v, err := redis.String(r.Get(key)) 25 | if err != nil { 26 | t.Errorf("Redis Get err:%v", err.Error()) 27 | } 28 | 29 | if v != "atc framework" { 30 | t.Errorf("Redis Get value error.") 31 | } 32 | 33 | // test delete 34 | err = r.Delete(key) 35 | if err != nil { 36 | t.Errorf("Redis Delete err:%v", err.Error()) 37 | } 38 | b, err := redis.Bool(r.Do("EXISTS", key)) 39 | if err != nil { 40 | t.Errorf("Redis Do err:%v", err.Error()) 41 | } 42 | if b { 43 | t.Errorf("Redis %s key is EXISTS.", key) 44 | } 45 | 46 | // test increment 47 | err = r.Increment(key + "_rement") 48 | if err != nil { 49 | t.Errorf("Redis Increment err:%v", err.Error()) 50 | } 51 | 52 | // test decrement 53 | err = r.Decrement(key + "_rement") 54 | if err != nil { 55 | t.Errorf("Redis Decrement err:%v", err.Error()) 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /conf/error.ini: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # atc configuration file 3 | # See: 4 | # xxx 5 | # for more detailed documentation. 6 | ################################################################################ 7 | -1 = 没有权限访问 8 | 10001 = 测试10001 9 | -------------------------------------------------------------------------------- /doc/README.md: -------------------------------------------------------------------------------- 1 | # 设计架构思路 2 | 3 | ## 整体设计架构 4 | ![图片](https://github.com/adolphlxm/atc/blob/dev/doc/image/module.png) 5 | 6 | #请求生命周期 7 | 8 | ## http 9 | 10 | ### HTTP Handler 11 | 12 | Hander?,它是一个接口。这个接口很简单,只要某个struct有ServeHTTP(http.ResponseWriter, *http.Request)这个方法,那这个struct就自动实现了Hander接口 13 | 14 | * ATC 构建自 GO HTTP server, 他为每个请求创建一个 goroutine(轻量级线程),用于并发处理。 15 | * ATC 把 request 请求通过Handler交给 过滤器、Actions处理,完成后把结果写到response响应中。 16 | 17 | Handler接口中有一个 ServeHTTP(ResponseWriter, *Request) 方法,当SERVER从TCP端口中获取到新的请求时,会调用这个方法去执行具体,换而言之, ServeHTTP方法就是所有SERVER消息处理接口的入口函数.其他所有想要处理HTTP请求的方法都必须直接或间接通过这个接口实现. 18 | 19 | ### 过滤器 20 | 支持三种过滤器: 21 | 1. EFORE_ROUTE //匹配路由之前 22 | 2. BEFORE_HANDLER //匹配到路由后,执行Handler actions之前 23 | 3. AFTER //执行完actions逻辑后 24 | 25 | ### RESTFul 26 | RESTful 是一种目前 API 开发中广泛采用的形式,ATC 支持这样的请求方法,也就是用户 Get 请求就执行 Get 方法,Post 请求就执行 Post 方法。 27 | 28 | ### Response 29 | 失败响应: 30 | ```go 31 | { 32 | "error": "Undefined error", 33 | "code": 10003, 34 | "request": "/V1/ram/auth/" 35 | } 36 | ``` 37 | 成功响应: 38 | ```go 39 | { 40 | "a": "1", 41 | "b": 2, 42 | "c": "3" 43 | } 44 | ``` 45 | ## RPC 46 | ### thrift 47 | -------------------------------------------------------------------------------- /doc/image/life.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/life.png -------------------------------------------------------------------------------- /doc/image/life/未命名/版面 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/life/未命名/版面 1.png -------------------------------------------------------------------------------- /doc/image/life/未命名/版面 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/life/未命名/版面 2.png -------------------------------------------------------------------------------- /doc/image/life/未命名/版面 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/life/未命名/版面 3.png -------------------------------------------------------------------------------- /doc/image/life/版面 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/life/版面 1.png -------------------------------------------------------------------------------- /doc/image/life/版面 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/life/版面 2.png -------------------------------------------------------------------------------- /doc/image/life1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/life1.png -------------------------------------------------------------------------------- /doc/image/life2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/life2.png -------------------------------------------------------------------------------- /doc/image/module.graffle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/module.graffle -------------------------------------------------------------------------------- /doc/image/module.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/doc/image/module.png -------------------------------------------------------------------------------- /grace/README.md: -------------------------------------------------------------------------------- 1 | # grace 2 | 3 | 顺序平滑退出包,使用双向链表list实现 4 | 退出顺序:从队尾开始逆序退出 5 | 6 | # 安装 7 | 8 | go get github.com/adolphlxm/atc/grace 9 | 10 | # 使用步骤 11 | ## 第一步:引入包 12 | 13 | import( 14 | "github.com/adolphlxm/atc/grace" 15 | ) 16 | 17 | ## 第二步:实现接口 18 | 19 | 客户端退出需实现如下接口(支持多模块退出): 20 | 21 | type TT interface { 22 | ModuleID() string 23 | Stop() error 24 | } 25 | 26 | * ModuleID() 方法返回string, 表示退出模块名称 27 | * Stop() 方法根据客户端业务自行实现退出逻辑 28 | 29 | 30 | ## 第三步:初始化Grace 31 | 32 | grace := grace.NewGrace() 33 | // 双向链表队头插入退出接口 34 | grace.PushFront(TT) 35 | // 双向链表队尾插入退出接口 36 | grace.PushBack(TT) 37 | // 在"atc"模块的链表之后插入退出接口 38 | grace.InsertAfter("atc",TT) 39 | // 在"atc"模块的链表之前插入退出接口 40 | grace.InsertBefore("atc",TT) 41 | // 在链表中移除"atc"退出接口 42 | grace.Remove("atc") 43 | // 在链表中将"atc"接口移动到"http"之后。 44 | grace.MoveAfter("atc", "http") 45 | // 在链表中将"atc"接口移动到"http"之前。 46 | grace.MoveAfter("atc", "http") 47 | 48 | ## 案例 49 | 50 | ```go 51 | package main 52 | 53 | import ( 54 | "github.com/adolphlxm/atc/grace" 55 | ) 56 | 57 | type ShutDown struct{} 58 | func (this *ShutDown) ModuleID() string { 59 | return "down" 60 | } 61 | func (this *ShutDown) Stop() error { 62 | fmt.Println("客户端退出逻辑,完成退出") 63 | return nil 64 | } 65 | 66 | func main() { 67 | 68 | grace := grace.NewGrace() 69 | grace.PushFront(&ShutDown{}) 70 | // ... 71 | } 72 | 73 | ``` -------------------------------------------------------------------------------- /grpc.go: -------------------------------------------------------------------------------- 1 | package atc 2 | 3 | import ( 4 | "net/url" 5 | 6 | "google.golang.org/grpc" 7 | "github.com/adolphlxm/atc/rpc/pgrpc" 8 | "github.com/adolphlxm/atc/logs" 9 | ) 10 | 11 | var grpcserve pgrpc.Grpc 12 | 13 | func lazyInitGrpcServer() error { 14 | addrs := AppConfig.String("grpc.addrs") 15 | logs.Trace("grpc.serve:starting...") 16 | addrUrl, err := url.Parse(addrs) 17 | 18 | grpcserve = pgrpc.NewGrpc() 19 | err = grpcserve.NewServer("tcp", addrUrl.Host) 20 | if err != nil { 21 | logs.Fatalf("grpc.serve:start addrs fail err:%s", err.Error()) 22 | panic(err) 23 | } 24 | 25 | return nil 26 | } 27 | 28 | func runGrpcServe() { 29 | end := make(chan struct{}) 30 | go func() { 31 | close(end) 32 | err := grpcserve.Serve() 33 | if err != nil { 34 | logs.Fatalf("grpc.serve:start fail err:%s", err.Error()) 35 | panic(err) 36 | } 37 | }() 38 | <-end 39 | 40 | GracePushFront(&grpcServeShutDown{}) 41 | // TODO serviceInfo 42 | addrs := AppConfig.String("grpc.addrs") 43 | addrUrl, _ := url.Parse(addrs) 44 | logs.Tracef("grpc.serve:Running on %s.", addrUrl.Host) 45 | } 46 | 47 | 48 | type grpcServeShutDown struct {} 49 | func (this *grpcServeShutDown) ModuleID() string { 50 | return "pgrpc" 51 | } 52 | func (this *grpcServeShutDown) Stop() error { 53 | grpcserve.GracefulStop() 54 | return nil 55 | } 56 | 57 | func GetGrpcServer() *grpc.Server{ 58 | return grpcserve.GetServer() 59 | } -------------------------------------------------------------------------------- /logs.go: -------------------------------------------------------------------------------- 1 | package atc 2 | 3 | import "github.com/adolphlxm/atc/logs" 4 | 5 | // Initialize logs. 6 | func initLogs(){ 7 | logFile := &logs.File{ 8 | LogDir: AppConfig.DefaultString("log.dir", ""), 9 | MaxSize: uint64(AppConfig.DefaultInt("log.maxsize", 0)), 10 | Buffersize: AppConfig.DefaultInt("log.buffersize", 0), 11 | FlushInterval: uint64(AppConfig.DefaultInt("log.flushinterval", 0)), 12 | } 13 | err := logs.SetLogger(Aconfig.LogOutput, logFile) 14 | if err != nil { 15 | panic(err) 16 | } 17 | 18 | logs.SetLevel(Aconfig.LogLevel) 19 | 20 | // Initializes error file. 21 | initError() 22 | } 23 | -------------------------------------------------------------------------------- /logs/README.md: -------------------------------------------------------------------------------- 1 | # logs 2 | 3 | 日志模块,目前支持的引擎有stdout、file 4 | 5 | # 安装 6 | 7 | go get github.com/adolphlxm/atc/logs 8 | 9 | # 使用步骤 10 | ## 第一步:引入包 11 | 12 | import( 13 | "github.com/adolphlxm/atc/logs" 14 | ) 15 | 16 | ## 第二步:添加输出引擎 17 | 18 | logs.SetLogger("stdout") 19 | 20 | // 引擎支持第二个参数,配置信息 21 | logFile := &File{ 22 | LogDir:"./", 23 | MaxSize:1000, 24 | Buffersize:1000, 25 | FlushInterval:5, 26 | } 27 | logs.SetLogger("file", logFile) 28 | 29 | ## 参数说明 30 | 31 | * logdir 存放日志路径 32 | * maxsize 日志分割文件尺寸, 单位:byte 33 | * buffersize 日志缓冲区大小,单位:byte 34 | * flushinterval 定时刷新日志到磁盘的间隔时间,单位:s 35 | 36 | ## 通用方式(推进) 37 | 38 | ```go 39 | package main 40 | 41 | import ( 42 | "github.com/adolphlxm/atc/logs" 43 | ) 44 | 45 | func main() { 46 | 47 | logs.Debug("") 48 | logs.Info("") 49 | logs.Warn("") 50 | logs.Error("") 51 | ... 52 | // 程序退出时把缓冲区数据刷入磁盘 53 | logs.Flush() 54 | } 55 | 56 | ``` 57 | 58 | ## 多实例使用 59 | 60 | ```go 61 | package main 62 | 63 | import ( 64 | "github.com/adolphlxm/atc/logs" 65 | ) 66 | 67 | func main() { 68 | log := logs.NewLogger(1024) 69 | log.SetLogger(logs.AdapterStdout) 70 | log.Debug("this is a debug message") 71 | log.Flush() 72 | } 73 | 74 | ``` -------------------------------------------------------------------------------- /logs/log_test.go: -------------------------------------------------------------------------------- 1 | package logs 2 | 3 | import ( 4 | "testing" 5 | "time" 6 | ) 7 | 8 | func testAllLevel(l *AtcLogger) { 9 | l.Trace("args:", "Trace info.") 10 | l.Info("args:", "Info info.") 11 | l.Notice("args:", "Notice info.") 12 | l.Warn("args:", "Warn info.") 13 | l.Error("args:", "Error info.") 14 | l.Debug("args:", "Debug info.") 15 | 16 | l.Tracef("%v", "Tracef info.") 17 | l.Infof("%v", "Infof info.") 18 | l.Noticef("%v", "Noticef info.") 19 | l.Warnf("%v", "Warnf info") 20 | l.Errorf("%v", "Errorf info") 21 | l.Fatalf("%v", "Fatalf info.") 22 | l.Debugf("%v", "Debug info.") 23 | } 24 | 25 | func TestStdout(t *testing.T) { 26 | l1 := NewLogger(10000) 27 | l1.SetLogger(AdapterStdout) 28 | l1.SetLevel(LevelFatal) 29 | testAllLevel(l1) 30 | time.Sleep(1 * time.Millisecond) 31 | } 32 | 33 | func TestFile(t *testing.T) { 34 | l := NewLogger(10000) 35 | l.SetLogger(AdapterFile, &File{LogDir:"./", MaxSize:1000,Buffersize:1000,FlushInterval:5}) 36 | l.SetLevel(LevelDebug) 37 | testAllLevel(l) 38 | time.Sleep(1 * time.Millisecond) 39 | l.Flush() 40 | } 41 | 42 | func TestLogs(t *testing.T){ 43 | SetLogger("stdout") 44 | Tracef("%v", "Trace info.") 45 | Infof("%v", "Info info.") 46 | Noticef("%v", "Notice info.") 47 | Debugf("%v", "Debug info.") 48 | time.Sleep(1 * time.Millisecond) 49 | } -------------------------------------------------------------------------------- /logs/stdout.go: -------------------------------------------------------------------------------- 1 | package logs 2 | 3 | import ( 4 | "fmt" 5 | ) 6 | 7 | type Stdout struct { 8 | } 9 | 10 | func NewStdoutLog() IAtcLogger { 11 | stdout := &Stdout{} 12 | return stdout 13 | } 14 | 15 | func (s *Stdout) Init(config interface{}) error { 16 | return nil 17 | } 18 | 19 | // Output message in stdout. 20 | func (s *Stdout) Output(msg []byte) error { 21 | fmt.Print(string(msg)) 22 | return nil 23 | } 24 | 25 | func (s *Stdout) Flush(){ 26 | 27 | } 28 | 29 | //Register NewStdout 30 | func init() { 31 | Register("stdout", NewStdoutLog) 32 | } 33 | -------------------------------------------------------------------------------- /mgo.go: -------------------------------------------------------------------------------- 1 | package atc 2 | 3 | import ( 4 | "github.com/adolphlxm/atc/mgo" 5 | "github.com/adolphlxm/atc/logs" 6 | ) 7 | 8 | var mgoDBs map[string]*mgo.MgoDB 9 | 10 | func RunMgoDBs() { 11 | mgoDBs = make(map[string]*mgo.MgoDB, 0) 12 | aliasnames := AppConfig.Strings("mgo.aliasnames") 13 | for _, aliasname := range aliasnames { 14 | keyPerfix := "mgo." + aliasname + "." 15 | addrs := AppConfig.String(keyPerfix + "addrs") 16 | logs.Tracef("mgo:[%s] starting...", aliasname) 17 | db, err := mgo.NewMgoDB(addrs) 18 | if err != nil { 19 | logs.Fatalf("mgo:[%s] start fail err:%s", aliasname, err.Error()) 20 | continue 21 | } 22 | 23 | mgoDBs[aliasname] = db 24 | logs.Tracef("mgo:[%s] Running on %s.", aliasname, addrs) 25 | } 26 | } 27 | 28 | func GetMgoDB(aliasname string) *mgo.MgoDB { 29 | return mgoDBs[aliasname] 30 | } -------------------------------------------------------------------------------- /mgo/mgo_test.go: -------------------------------------------------------------------------------- 1 | package mgo 2 | 3 | import ( 4 | "testing" 5 | "fmt" 6 | ) 7 | 8 | const addrs = "mongodb://127.0.0.1:27017" 9 | 10 | var M *MgoDB 11 | 12 | func initMgo(){ 13 | var err error 14 | M, err = NewMgoDB(addrs) 15 | if err != nil { 16 | fmt.Println(err.Error()) 17 | } 18 | } 19 | 20 | type Data struct { 21 | A int 22 | B string 23 | } 24 | 25 | func TestMgoDB_Insert(t *testing.T) { 26 | initMgo() 27 | 28 | data := &Data{A:1,B:"atc"} 29 | err := M.Session().DB("test1").C("test1").Insert(data) 30 | if err != nil { 31 | t.Error(err) 32 | } 33 | } -------------------------------------------------------------------------------- /orm/orm.go: -------------------------------------------------------------------------------- 1 | package orm 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/go-xorm/xorm" 7 | ) 8 | 9 | type OrmFunc func() Orm 10 | 11 | type Orm interface { 12 | // new a db manager according to the parameter. Currently support four for xorm 13 | Open(aliasName string, dataSourceName []string) error 14 | 15 | Ping(aliasName string) error 16 | 17 | Clone(aliasName string) error 18 | 19 | SetLevel(aliasName string, level string) 20 | 21 | // Xorm 22 | Use(aliasName string) *xorm.EngineGroup 23 | } 24 | 25 | var adapters = make(map[string]OrmFunc) 26 | 27 | func Register(name string, adapter OrmFunc) { 28 | if adapter == nil { 29 | panic("ATC orm: Register handler is nil") 30 | } 31 | if _, found := adapters[name]; found { 32 | panic("ATC orm: Register failed for handler " + name) 33 | } 34 | adapters[name] = adapter 35 | } 36 | 37 | func NewOrm(adapterName string) (Orm, error) { 38 | if handler, ok := adapters[adapterName]; ok { 39 | return handler(), nil 40 | } else { 41 | return nil, fmt.Errorf("ATC orm: unknown adapter name %s failed.", adapterName) 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /orm/util/util.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import ( 4 | "strings" 5 | "errors" 6 | "path" 7 | ) 8 | 9 | type OrmInfo struct { 10 | DriverName string 11 | Addr string 12 | Options map[string]string 13 | } 14 | 15 | func ExtractURL(s string) (*OrmInfo, error) { 16 | info := &OrmInfo{Options: make(map[string]string)} 17 | 18 | if c := strings.Index(s, "?"); c != -1 { 19 | for _, pair := range strings.Split(s[c+1:], "&") { 20 | l := strings.SplitN(pair, "=", 2) 21 | if len(l) != 2 || l[0] == "" || l[1] == "" { 22 | return nil, errors.New("connection option must be key=value: " + pair) 23 | } 24 | info.Options[l[0]] = l[1] 25 | } 26 | s = s[:c] 27 | } 28 | addr := strings.SplitN(s, "://", 2) 29 | if len(addr) == 2 { 30 | info.DriverName = addr[0] 31 | info.Addr = path.Clean(addr[1]) 32 | } else { 33 | info.Addr = s 34 | } 35 | 36 | info.Addr = strings.Replace(info.Addr, "@", "@tcp(",1) + ")" 37 | return info, nil 38 | } -------------------------------------------------------------------------------- /pool/pool_test.go: -------------------------------------------------------------------------------- 1 | package pool 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestPool_Get(t *testing.T) { 8 | pool := &Pool{ 9 | Dial: func() (interface{}, error) { 10 | return nil, nil 11 | }, 12 | Close: func(c interface{}) error { 13 | 14 | return nil 15 | }, 16 | MaxActive: 10, 17 | MaxIdle: 8, 18 | IdleTimeout: 1, 19 | } 20 | for i := 0; i < 12; i++ { 21 | _, err := pool.Get() 22 | if err != nil { 23 | t.Error(err) 24 | } 25 | pool.Put(nil, false) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /queue/README.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Queue Lib for ATC, internal support Redis, Nats, protobuffer etc. 3 | 4 | ## Install 5 | `go get github.com/adolphlxm/atc/queue` 6 | 7 | ## Notice 8 | > driver `nats_streaming` and `nats` is not full test accept 9 | 10 | ## Usage 11 | 12 | #### Publisher 13 | ```go 14 | import ( 15 | "github.com/adolphlxm/atc/queue/message" 16 | 17 | "github.com/adolphlxm/atc/queue" 18 | _ "github.com/adolphlxm/atc/queue/queue_redis" 19 | ) 20 | 21 | pub, _ := queue.NewPublisher("redis", "redis://127.0.0.1:6379") 22 | pub.Publish("subject", &message.Message{ 23 | Body: util.MustMessageBody(nil, /* point to your protobuffer struct */ ), 24 | }) 25 | pub.Close() 26 | ``` 27 | 28 | #### Consumer 29 | ```go 30 | import ( 31 | "github.com/adolphlxm/atc/queue/message" 32 | 33 | "github.com/adolphlxm/atc/queue" 34 | _ "github.com/adolphlxm/atc/queue/queue_redis" 35 | ) 36 | 37 | con, _ := queue.NewConsumer("redis", "redis://127.0.0.1:6379") 38 | sub,_ := con.Subscribe("subject", "cluster-group") 39 | msg, _ := sub.NextMessage(time.Second) 40 | // logic for msg 41 | con.Close() 42 | ``` 43 | -------------------------------------------------------------------------------- /queue/example_test.go: -------------------------------------------------------------------------------- 1 | package queue_test 2 | 3 | import ( 4 | "log" 5 | "time" 6 | "strings" 7 | 8 | "github.com/adolphlxm/atc/queue" 9 | "github.com/adolphlxm/atc/queue/message" 10 | "github.com/adolphlxm/atc/queue/util" 11 | ) 12 | 13 | func ExampleNewPublisher() { 14 | pub, err := queue.NewPublisher("redis", "redis://:123456@localhost") 15 | if err != nil { 16 | log.Fatal(err) 17 | } 18 | defer pub.Close() 19 | 20 | err = pub.Publish("subject", &message.Message{}) 21 | if err != nil { 22 | log.Fatal(err) 23 | } 24 | } 25 | 26 | func ExampleNewConsumer() { 27 | c, err := queue.NewConsumer("redis", "redis://:123456@localhost") 28 | if err != nil { 29 | log.Fatal(err) 30 | } 31 | defer c.Close() 32 | 33 | sub, err := c.Subscribe("subject", "appName") 34 | if err != nil { 35 | log.Fatal(err) 36 | } 37 | 38 | msg, err := sub.NextMessage(time.Second) 39 | if err != nil { 40 | if !strings.Contains(err.Error(), "timeout"){ 41 | log.Fatal(err) 42 | } 43 | // retry? 44 | } 45 | 46 | // t is the message's publish time 47 | t, _ := util.TimestampFromMessageID(msg.MessageId) 48 | _ = t 49 | 50 | _ = msg 51 | // msg.MessageId 52 | // msg.Priority 53 | // msg.Options some options for the msg 54 | // msg.Body 55 | // ptypes.UnmarshalAny(msg.Body, &YourProtoBufferStructPoint) 56 | } -------------------------------------------------------------------------------- /queue/message/common.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package message; 4 | 5 | enum MsgPriority { 6 | PRIORITY0 = 0; 7 | PRIORITY1 = 1; 8 | PRIORITY2 = 2; 9 | PRIORITY3 = 3; 10 | PRIORITY4 = 4; 11 | PRIORITY5 = 5; 12 | PRIORITY6 = 6; 13 | PRIORITY7 = 7; 14 | PRIORITY8 = 8; 15 | PRIORITY9 = 9; 16 | } 17 | 18 | message Message { 19 | reserved 4 to 15; // 保留序号 20 | 21 | string MessageId = 1; // 消息ID 22 | MsgPriority priority = 2; // 消息优先级 23 | map options = 100; // 消息选项 24 | bytes Body = 3; // 消息具体内容 25 | } -------------------------------------------------------------------------------- /queue/message/meta.go: -------------------------------------------------------------------------------- 1 | package message 2 | 3 | type Meta struct { 4 | MessageId string 5 | Src string 6 | Priority MsgPriority 7 | Options map[string]string 8 | } 9 | 10 | func (m *Meta) FormMessage(msg *Message) { 11 | if msg != nil { 12 | m.MessageId = msg.MessageId 13 | m.Options = msg.Options 14 | m.Priority = msg.Priority 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /queue/message/rpc.proto: -------------------------------------------------------------------------------- 1 | // protoc --go_out=./ *.proto 2 | syntax = "proto3"; 3 | 4 | package message; 5 | 6 | message RpcMessage { 7 | reserved 4 to 15; // 保留序号 8 | 9 | string MessageId = 1; // 消息ID 10 | uint32 Code = 2; // 错误码 11 | map options = 100; // 消息选项 12 | bytes Body = 3; // 消息具体内容 13 | } -------------------------------------------------------------------------------- /queue/queue_nats/nats.go: -------------------------------------------------------------------------------- 1 | package queue_nats 2 | 3 | import ( 4 | "github.com/adolphlxm/atc/queue" 5 | "github.com/nats-io/go-nats" 6 | ) 7 | 8 | type NatsQueueDriver struct{} 9 | 10 | // dsn format is `nats://[user:pass@host1:port],[user2:pass@host2:port2]/?options` 11 | // 12 | // options can be: 13 | // allowReconnect - default is true 14 | // name - unique client name, default is random 15 | // noRandomize - if true, then turn off randomizing the server pool, default is false 16 | // maxReconnect - maxReconnects is an Option to set the maximum number of reconnect attempts 17 | // 18 | // all timeout option's unit is ms 19 | // connectTimeout - default is 2000ms, connectTimeout is an Option to set the timeout for Dial on a connection. 20 | // 21 | func (d *NatsQueueDriver) Open(addr string) (queue.Conn, error) { 22 | info, err := parseURL(addr) 23 | if err != nil { 24 | return nil, err 25 | } 26 | 27 | nc, err := nats.Connect(info.Url, info.Options...) 28 | if err != nil { 29 | return nil, err 30 | } 31 | return &natsQueueConn{conn: nc}, nil 32 | } 33 | 34 | func init() { 35 | queue.Register("nats", &NatsQueueDriver{}) 36 | } 37 | -------------------------------------------------------------------------------- /queue/queue_nats_streaming/nats-streaming.go: -------------------------------------------------------------------------------- 1 | package queue_nats_streaming 2 | 3 | import ( 4 | "github.com/adolphlxm/atc/queue" 5 | 6 | "github.com/nats-io/go-nats-streaming" 7 | ) 8 | 9 | // Driver for nats-streaming 10 | type NatsStreamingQueueDriver struct{} 11 | 12 | // dsn format is `nats://[user:pass@host1:port],[user2:pass@host2:port2]/?cluster=xxx&client=xx&options` 13 | // 14 | // cluster - The NATS Streaming cluster ID, required 15 | // client - unique client id, required 16 | // 17 | // all timeout option's unit is ms 18 | // connectTimeout - default is 2000ms, timeout for establishing a connection 19 | // ackTimeout - default is 30000ms, timeout for waiting for an ACK for a published message. 20 | // maxPubAcksInflight - default is 16384, maximum number of published messages 21 | // without outstanding ACKs from the server 22 | // 23 | func (d *NatsStreamingQueueDriver) Open(addr string) (queue.Conn, error) { 24 | info, err := parseURL(addr) 25 | if err != nil { 26 | return nil, err 27 | } 28 | 29 | nc, err := stan.Connect(info.ClusterID, info.ClientID, info.Options...) 30 | if err != nil { 31 | return nil, err 32 | } 33 | // here we need a block channel 34 | return &natsStreamingQueueConn{conn: nc, ch:make(chan *stan.Msg, 0)}, nil 35 | } 36 | 37 | func init() { 38 | queue.Register("nats-streaming", &NatsStreamingQueueDriver{}) 39 | } 40 | -------------------------------------------------------------------------------- /queue/testdata/pbtest.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package testdata; 4 | 5 | message Something { 6 | 7 | string name = 1; 8 | int32 age = 2; 9 | string address = 3; 10 | } 11 | -------------------------------------------------------------------------------- /queue/util/message.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import ( 4 | "github.com/golang/protobuf/proto" 5 | ) 6 | 7 | func MustMessageBody(m proto.Message) []byte { 8 | buf, err := proto.Marshal(m) 9 | if err != nil { 10 | panic(err) 11 | } 12 | return buf 13 | } 14 | 15 | func FromMessageBody(buf []byte, dst proto.Message) error { 16 | return proto.Unmarshal(buf, dst) 17 | } -------------------------------------------------------------------------------- /queue/util/util.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import ( 4 | "errors" 5 | "strings" 6 | ) 7 | 8 | type UrlInfo struct { 9 | Addr string 10 | Options map[string]string 11 | } 12 | 13 | func ExtractURL(s string) (*UrlInfo, error) { 14 | info := &UrlInfo{Options: make(map[string]string)} 15 | 16 | if c := strings.Index(s, "?"); c != -1 { 17 | for _, pair := range strings.Split(s[c+1:], "&") { 18 | l := strings.SplitN(pair, "=", 2) 19 | if len(l) != 2 || l[0] == "" || l[1] == "" { 20 | return nil, errors.New("connection option must be key=value: " + pair) 21 | } 22 | info.Options[l[0]] = l[1] 23 | } 24 | s = s[:c] 25 | } 26 | info.Addr = s 27 | return info, nil 28 | } 29 | -------------------------------------------------------------------------------- /rpc/pgrpc/grpcserve.go: -------------------------------------------------------------------------------- 1 | package pgrpc 2 | 3 | import ( 4 | "net" 5 | "google.golang.org/grpc" 6 | ) 7 | 8 | type Grpc interface { 9 | NewServer(network, addr string) error 10 | GetServer() *grpc.Server 11 | Serve() error 12 | GetServiceInfo() map[string]grpc.ServiceInfo 13 | GracefulStop() 14 | } 15 | 16 | type GrpcServe struct { 17 | lis net.Listener 18 | server *grpc.Server 19 | } 20 | 21 | func NewGrpc() Grpc { 22 | return &GrpcServe{} 23 | } 24 | 25 | // NewServer creates a gRPC server which has no service registered and has not 26 | // started to accept requests yet. 27 | func (this *GrpcServe) NewServer(network, addr string) error { 28 | var err error 29 | this.lis, err = net.Listen(network, addr) 30 | if err != nil { 31 | return err 32 | } 33 | 34 | this.server = grpc.NewServer() 35 | 36 | return nil 37 | } 38 | 39 | func (this *GrpcServe) GetServer() *grpc.Server { 40 | return this.server 41 | } 42 | 43 | func (this *GrpcServe) Serve() error { 44 | return this.server.Serve(this.lis) 45 | } 46 | 47 | func (this *GrpcServe) GetServiceInfo() map[string]grpc.ServiceInfo { 48 | return this.server.GetServiceInfo() 49 | } 50 | 51 | func (this *GrpcServe) GracefulStop() { 52 | this.server.GracefulStop() 53 | } -------------------------------------------------------------------------------- /rpc/pgrpc/helloworld.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package helloworld; 4 | 5 | // The greeter service definition. 6 | service Greeter { 7 | // Sends a greeting 8 | rpc SayHello (HelloRequest) returns (HelloReply) {} 9 | rpc ListFeatures(Rectangle) returns (stream Feature) {} 10 | } 11 | 12 | // The request message containing the user's name. 13 | message HelloRequest { 14 | string name = 1; 15 | } 16 | 17 | // The response message containing the greetings 18 | message HelloReply { 19 | string message = 1; 20 | } -------------------------------------------------------------------------------- /rpc/thrift/gen/atcrpc/constants.go: -------------------------------------------------------------------------------- 1 | // Autogenerated by Thrift Compiler (0.9.3) 2 | // DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING 3 | 4 | package atcrpc 5 | 6 | import ( 7 | "bytes" 8 | "fmt" 9 | "github.com/adolphlxm/atc/rpc/thrift/lib/thrift" 10 | ) 11 | 12 | // (needed to ensure safety because of naive import list construction.) 13 | var _ = thrift.ZERO 14 | var _ = fmt.Printf 15 | var _ = bytes.Equal 16 | 17 | func init() { 18 | } 19 | -------------------------------------------------------------------------------- /rpc/thrift/gen/micro/constants.go: -------------------------------------------------------------------------------- 1 | // Autogenerated by Thrift Compiler (0.9.3) 2 | // DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING 3 | 4 | package micro 5 | 6 | import ( 7 | "bytes" 8 | "fmt" 9 | "github.com/adolphlxm/atc/rpc/thrift/lib/thrift" 10 | ) 11 | 12 | // (needed to ensure safety because of naive import list construction.) 13 | var _ = thrift.ZERO 14 | var _ = fmt.Printf 15 | var _ = bytes.Equal 16 | 17 | var MAPCONSTANT map[string]string 18 | 19 | func init() { 20 | MAPCONSTANT = map[string]string{ 21 | "hello": "world", 22 | "goodnight": "moon", 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/binary_protocol_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | import ( 23 | "testing" 24 | ) 25 | 26 | func TestReadWriteBinaryProtocol(t *testing.T) { 27 | ReadWriteProtocolTest(t, NewTBinaryProtocolFactoryDefault()) 28 | } 29 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/buffered_transport_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | import ( 23 | "testing" 24 | ) 25 | 26 | func TestBufferedTransport(t *testing.T) { 27 | trans := NewTBufferedTransport(NewTMemoryBuffer(), 10240) 28 | TransportTest(t, trans, trans) 29 | } 30 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/framed_transport_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | import ( 23 | "testing" 24 | ) 25 | 26 | func TestFramedTransport(t *testing.T) { 27 | trans := NewTFramedTransport(NewTMemoryBuffer()) 28 | TransportTest(t, trans, trans) 29 | } 30 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/http_transport.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | import "net/http" 23 | 24 | // NewThriftHandlerFunc is a function that create a ready to use Apache Thrift Handler function 25 | func NewThriftHandlerFunc(processor TProcessor, 26 | inPfactory, outPfactory TProtocolFactory) func(w http.ResponseWriter, r *http.Request) { 27 | 28 | return func(w http.ResponseWriter, r *http.Request) { 29 | w.Header().Add("Content-Type", "application/x-thrift") 30 | 31 | transport := NewStreamTransport(r.Body, w) 32 | processor.Process(inPfactory.GetProtocol(transport), outPfactory.GetProtocol(transport)) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/memory_buffer_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | import ( 23 | "testing" 24 | ) 25 | 26 | func TestMemoryBuffer(t *testing.T) { 27 | trans := NewTMemoryBufferLen(1024) 28 | TransportTest(t, trans, trans) 29 | } 30 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/messagetype.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | // Message type constants in the Thrift protocol. 23 | type TMessageType int32 24 | 25 | const ( 26 | INVALID_TMESSAGE_TYPE TMessageType = 0 27 | CALL TMessageType = 1 28 | REPLY TMessageType = 2 29 | EXCEPTION TMessageType = 3 30 | ONEWAY TMessageType = 4 31 | ) 32 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/processor.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | // A processor is a generic object which operates upon an input stream and 23 | // writes to some output stream. 24 | type TProcessor interface { 25 | Process(in, out TProtocol) (bool, TException) 26 | } 27 | 28 | type TProcessorFunction interface { 29 | Process(seqId int32, in, out TProtocol) (bool, TException) 30 | } 31 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/protocol_factory.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | // Factory interface for constructing protocol instances. 23 | type TProtocolFactory interface { 24 | GetProtocol(trans TTransport) TProtocol 25 | } 26 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/server.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | type TServer interface { 23 | ProcessorFactory() TProcessorFactory 24 | ServerTransport() TServerTransport 25 | InputTransportFactory() TTransportFactory 26 | OutputTransportFactory() TTransportFactory 27 | InputProtocolFactory() TProtocolFactory 28 | OutputProtocolFactory() TProtocolFactory 29 | 30 | // Starts the server 31 | Serve() error 32 | // Stops the server. This is optional on a per-implementation basis. Not 33 | // all servers are required to be cleanly stoppable. 34 | Stop() error 35 | } 36 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/server_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | import ( 23 | "testing" 24 | ) 25 | 26 | func TestNothing(t *testing.T) { 27 | 28 | } 29 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/server_transport.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | // Server transport. Object which provides client transports. 23 | type TServerTransport interface { 24 | Listen() error 25 | Accept() (TTransport, error) 26 | Close() error 27 | 28 | // Optional method implementation. This signals to the server transport 29 | // that it should break out of any accept() or listen() that it is currently 30 | // blocked on. This method, if implemented, MUST be thread safe, as it may 31 | // be called from a different thread context than the other TServerTransport 32 | // methods. 33 | Interrupt() error 34 | } 35 | -------------------------------------------------------------------------------- /rpc/thrift/lib/thrift/zlib_transport_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package thrift 21 | 22 | import ( 23 | "compress/zlib" 24 | "testing" 25 | ) 26 | 27 | func TestZlibTransport(t *testing.T) { 28 | trans, err := NewTZlibTransport(NewTMemoryBuffer(), zlib.BestCompression) 29 | if err != nil { 30 | t.Fatal(err) 31 | } 32 | TransportTest(t, trans, trans) 33 | } 34 | -------------------------------------------------------------------------------- /utils/encrypt/aes.go: -------------------------------------------------------------------------------- 1 | package encrypt 2 | 3 | import ( 4 | "crypto/aes" 5 | "crypto/cipher" 6 | ) 7 | 8 | /************************************/ 9 | /********** AES encryption **********/ 10 | /************************************/ 11 | 12 | // AES encrypt 13 | // Note: 14 | // AES-128. 长度16,24,32byte 对应AES-128,AES-192,AES-256 15 | func AesEncrypt(origData, key []byte) ([]byte, error) { 16 | block, err := aes.NewCipher(key) 17 | if err != nil { 18 | return nil, err 19 | } 20 | blockSize := block.BlockSize() 21 | origData = PKCS5Padding(origData, blockSize) 22 | // origData = ZeroPadding(origData, block.BlockSize()) 23 | blockMode := cipher.NewCBCEncrypter(block, key[:blockSize]) 24 | crypted := make([]byte, len(origData)) 25 | // 根据CryptBlocks方法的说明,如下方式初始化crypted也可以 26 | // crypted := origData 27 | blockMode.CryptBlocks(crypted, origData) 28 | return crypted, nil 29 | } 30 | 31 | func AesDecrypt(crypted, key []byte) ([]byte, error) { 32 | block, err := aes.NewCipher(key) 33 | if err != nil { 34 | return nil, err 35 | } 36 | blockSize := block.BlockSize() 37 | blockMode := cipher.NewCBCDecrypter(block, key[:blockSize]) 38 | origData := make([]byte, len(crypted)) 39 | // origData := crypted 40 | blockMode.CryptBlocks(origData, crypted) 41 | origData = PKCS5UnPadding(origData) 42 | // origData = ZeroUnPadding(origData) 43 | return origData, nil 44 | } 45 | -------------------------------------------------------------------------------- /utils/encrypt/encrypt.go: -------------------------------------------------------------------------------- 1 | package encrypt 2 | 3 | import ( 4 | "bytes" 5 | "crypto/md5" 6 | "encoding/hex" 7 | ) 8 | 9 | /************************************/ 10 | /********** MD5 encryption **********/ 11 | /************************************/ 12 | func MD5(str string) string { 13 | hasher := md5.New() 14 | hasher.Write([]byte(str)) 15 | return hex.EncodeToString(hasher.Sum(nil)) 16 | } 17 | 18 | func PKCS5Padding(ciphertext []byte, blockSize int) []byte { 19 | padding := blockSize - len(ciphertext)%blockSize 20 | padtext := bytes.Repeat([]byte{byte(padding)}, padding) 21 | return append(ciphertext, padtext...) 22 | } 23 | 24 | func PKCS5UnPadding(origData []byte) []byte { 25 | length := len(origData) 26 | unpadding := int(origData[length-1]) 27 | return origData[:(length - unpadding)] 28 | } 29 | -------------------------------------------------------------------------------- /utils/encrypt/rsa.go: -------------------------------------------------------------------------------- 1 | package encrypt 2 | 3 | import ( 4 | "crypto/rand" 5 | "crypto/rsa" 6 | "crypto/x509" 7 | "encoding/pem" 8 | "errors" 9 | ) 10 | 11 | /************************************/ 12 | /********** AES encryption **********/ 13 | /************************************/ 14 | // 15 | // 基于PKCS#1规范 16 | // PublicKey和PrivateKey两个类型分别代表公钥和私钥 17 | // OpenSSl生成publickey,privatekey 18 | // $ openssl 19 | // $ genrsa -out rsa_private_key.pem 2048 // 生成私钥 20 | // $ pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt // 第二句命令:把RSA私钥转换成PKCS8格式。提示输入密码,密码为空(直接回车)就行; 21 | // $ rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem // 生成公钥 22 | func RsaEncrypt(origData, publicKey []byte) ([]byte, error) { 23 | block, _ := pem.Decode(publicKey) 24 | if block == nil { 25 | return nil, errors.New("public key error.") 26 | } 27 | 28 | pubInterface, err := x509.ParsePKIXPublicKey(block.Bytes) 29 | if err != nil { 30 | return nil, err 31 | } 32 | 33 | pub := pubInterface.(*rsa.PublicKey) 34 | return rsa.EncryptPKCS1v15(rand.Reader, pub, origData) 35 | } 36 | 37 | func RsaDecrypt(ciphertext, privateKey []byte) ([]byte, error) { 38 | block, _ := pem.Decode(privateKey) 39 | if block == nil { 40 | return nil, errors.New("private key error.") 41 | } 42 | private, err := x509.ParsePKCS1PrivateKey(block.Bytes) 43 | if err != nil { 44 | return nil, err 45 | } 46 | 47 | return rsa.DecryptPKCS1v15(rand.Reader, private, ciphertext) 48 | } 49 | -------------------------------------------------------------------------------- /utils/file.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import "os" 4 | 5 | func FileExists(name string) bool { 6 | if _, err := os.Stat(name); err != nil { 7 | if os.IsNotExist(err) { 8 | return false 9 | } 10 | } 11 | return true 12 | } -------------------------------------------------------------------------------- /utils/utils.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "math/rand" 5 | "regexp" 6 | "time" 7 | ) 8 | 9 | const ( 10 | RegMobile = "^1[34578]\\d{9}$" 11 | RegEmail = "^[A-Za-z\\d]+([-_.][A-Za-z\\d]+)*@([A-Za-z\\d]+[-.])+[A-Za-z\\d]{2,4}$" 12 | ) 13 | 14 | // 生成随机字符串 15 | func RandString(length int) string { 16 | str := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 17 | bytes := []byte(str) 18 | result := []byte{} 19 | 20 | r := rand.New(rand.NewSource(time.Now().UnixNano())) 21 | for i := 0; i < length; i++ { 22 | result = append(result, bytes[r.Intn(len(bytes))]) 23 | } 24 | 25 | return string(result) 26 | } 27 | 28 | // 手机号验证 29 | func VerifyMobile(mobile string) bool { 30 | return regexp.MustCompile(RegMobile).MatchString(mobile) 31 | } 32 | 33 | // 邮箱验证 34 | func VerifyEmail(email string) bool { 35 | return regexp.MustCompile(RegEmail).MatchString(email) 36 | } 37 | -------------------------------------------------------------------------------- /utils/utils_test.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "fmt" 5 | "testing" 6 | "regexp" 7 | ) 8 | 9 | func TestRandString(t *testing.T) { 10 | fmt.Println(RandString(10)) 11 | } 12 | 13 | func TestVerifyMobile(t *testing.T) { 14 | if b := VerifyMobile("18691635352"); !b { 15 | t.Error(b) 16 | } 17 | } 18 | 19 | func TestVerifyEmail(t *testing.T) { 20 | if b := VerifyEmail("1235355@qq.com"); !b { 21 | t.Error(b) 22 | } 23 | } -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/00changelog.i: -------------------------------------------------------------------------------- 1 |  dummy changelog to prevent using the old repo layout -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/branch: -------------------------------------------------------------------------------- 1 | default 2 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/cache/branch2-served: -------------------------------------------------------------------------------- 1 | 98fd1f5506373df1033b67a1881078705456e2ee 138 2 | 98fd1f5506373df1033b67a1881078705456e2ee o default 3 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/cache/tags: -------------------------------------------------------------------------------- 1 | 138 98fd1f5506373df1033b67a1881078705456e2ee 2 | 3 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/dirstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/dirstate -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/hgrc: -------------------------------------------------------------------------------- 1 | [paths] 2 | default = https://code.google.com/p/go.net 3 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/requires: -------------------------------------------------------------------------------- 1 | dotencode 2 | fncache 3 | revlogv1 4 | store 5 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/00changelog.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/00changelog.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/00manifest.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/00manifest.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/_a_u_t_h_o_r_s.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/_a_u_t_h_o_r_s.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/_c_o_n_t_r_i_b_u_t_o_r_s.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/_c_o_n_t_r_i_b_u_t_o_r_s.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/_l_i_c_e_n_s_e.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/_l_i_c_e_n_s_e.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/_p_a_t_e_n_t_s.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/_p_a_t_e_n_t_s.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/_r_e_a_d_m_e.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/_r_e_a_d_m_e.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/codereview.cfg.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/codereview.cfg.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/context/context.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/context/context.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/context/context__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/context/context__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/context/withtimeout__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/context/withtimeout__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/dict/dict.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/dict/dict.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/atom/atom.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/atom/atom.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/atom/atom__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/atom/atom__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/atom/gen.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/atom/gen.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/atom/table.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/atom/table.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/atom/table__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/atom/table__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/charset.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/charset.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/charset__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/charset__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/encoding.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/encoding.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/encoding__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/encoding__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/gen.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/gen.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/table.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/table.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_h_t_t_p-charset.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_h_t_t_p-charset.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_h_t_t_p-vs-_u_t_f-8-_b_o_m.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_h_t_t_p-vs-_u_t_f-8-_b_o_m.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_h_t_t_p-vs-meta-charset.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_h_t_t_p-vs-meta-charset.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_h_t_t_p-vs-meta-content.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_h_t_t_p-vs-meta-content.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_no-encoding-declaration.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_no-encoding-declaration.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_r_e_a_d_m_e.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_r_e_a_d_m_e.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_u_t_f-16_b_e-_b_o_m.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_u_t_f-16_b_e-_b_o_m.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_u_t_f-16_l_e-_b_o_m.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_u_t_f-16_l_e-_b_o_m.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_u_t_f-8-_b_o_m-vs-meta-charset.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_u_t_f-8-_b_o_m-vs-meta-charset.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_u_t_f-8-_b_o_m-vs-meta-content.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/_u_t_f-8-_b_o_m-vs-meta-content.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/meta-charset-attribute.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/meta-charset-attribute.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/meta-content-attribute.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/charset/testdata/meta-content-attribute.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/const.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/const.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/doc.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/doc.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/doctype.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/doctype.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/entity.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/entity.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/entity__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/entity__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/escape.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/escape.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/escape__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/escape__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/example__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/example__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/foreign.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/foreign.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/node.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/node.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/node__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/node__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/parse.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/parse.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/parse__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/parse__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/render.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/render.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/render__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/render__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/go1.html.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/go1.html.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/_r_e_a_d_m_e.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/_r_e_a_d_m_e.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/adoption01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/adoption01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/adoption02.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/adoption02.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/comments01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/comments01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/doctype01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/doctype01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/entities01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/entities01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/entities02.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/entities02.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/html5test-com.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/html5test-com.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/inbody01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/inbody01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/isindex.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/isindex.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/pending-spec-changes.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/pending-spec-changes.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/plain-text-unsafe.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/plain-text-unsafe.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/scriptdata01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/scriptdata01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/scripted/adoption01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/scripted/adoption01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/scripted/webkit01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/scripted/webkit01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tables01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tables01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests1.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests1.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests10.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests10.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests11.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests11.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests12.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests12.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests14.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests14.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests15.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests15.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests16.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests16.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests17.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests17.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests18.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests18.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests19.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests19.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests2.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests2.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests20.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests20.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests21.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests21.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests22.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests22.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests23.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests23.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests24.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests24.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests25.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests25.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests26.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests26.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests3.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests3.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests4.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests4.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests5.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests5.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests6.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests6.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests7.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests7.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests8.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests8.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests9.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests9.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests__inner_h_t_m_l__1.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tests__inner_h_t_m_l__1.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tricky01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/tricky01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/webkit01.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/webkit01.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/webkit02.dat.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/testdata/webkit/webkit02.dat.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/token.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/token.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/html/token__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/html/token__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/idna/idna.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/idna/idna.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/idna/idna__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/idna/idna__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/idna/punycode.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/idna/punycode.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/idna/punycode__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/idna/punycode__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__bsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__bsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__linux.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__linux.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__nonpktinfo.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__nonpktinfo.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__pktinfo.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__pktinfo.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/control__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/dgramopt__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/dgramopt__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/dgramopt__posix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/dgramopt__posix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/dgramopt__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/dgramopt__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/doc.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/doc.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/endpoint.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/endpoint.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/example__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/example__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/gen.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/gen.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/genericopt__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/genericopt__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/genericopt__posix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/genericopt__posix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/genericopt__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/genericopt__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/gentest.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/gentest.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/header.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/header.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/header__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/header__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__posix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__posix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/helper__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/iana.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/iana.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/iana__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/iana__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/icmp.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/icmp.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/mockicmp__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/mockicmp__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/mocktransponder__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/mocktransponder__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/multicast__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/multicast__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/multicastlistener__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/multicastlistener__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/multicastsockopt__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/multicastsockopt__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/packet.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/packet.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/payload.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/payload.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/payload__cmsg.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/payload__cmsg.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/payload__noncmsg.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/payload__noncmsg.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__bsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__bsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__freebsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__freebsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__linux.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__linux.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__mreq.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__mreq.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__mreqn.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__mreqn.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__nonpktinfo.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__nonpktinfo.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__pktinfo.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__pktinfo.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sockopt__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__bsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__bsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__darwin.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__darwin.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__freebsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__freebsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__linux.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__linux.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__mreq.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__mreq.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/sys__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/unicast__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/unicast__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv4/unicastsockopt__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv4/unicastsockopt__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc2292__darwin.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc2292__darwin.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc2292__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc2292__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__bsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__bsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__linux.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__linux.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__rfc3542__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/control__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/dgramopt__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/dgramopt__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/dgramopt__posix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/dgramopt__posix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/dgramopt__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/dgramopt__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/doc.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/doc.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/endpoint.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/endpoint.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/gen.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/gen.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/genericopt__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/genericopt__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/genericopt__posix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/genericopt__posix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/genericopt__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/genericopt__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/gentest.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/gentest.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/helper__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/iana.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/iana.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/iana__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/iana__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__bsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__bsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__linux.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__linux.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/icmp__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/mockicmp__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/mockicmp__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/mocktransponder__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/mocktransponder__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/multicast__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/multicast__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/multicastlistener__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/multicastlistener__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/multicastsockopt__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/multicastsockopt__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/payload.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/payload.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/payload__cmsg.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/payload__cmsg.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/payload__noncmsg.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/payload__noncmsg.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/readwrite__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/readwrite__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc2292__darwin.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc2292__darwin.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc2292__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc2292__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3493__bsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3493__bsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3493__linux.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3493__linux.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3493__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3493__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3493__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3493__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__bsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__bsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__linux.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__linux.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__plan9.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__plan9.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__stub.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__stub.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__rfc3542__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sockopt__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__bsd.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__bsd.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__darwin.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__darwin.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__linux.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__linux.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__windows.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/sys__windows.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__linux__386.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__linux__386.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__linux__386.s.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__linux__386.s.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__nosplit4__linux__386.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__nosplit4__linux__386.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__nosplit7__linux__386.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__nosplit7__linux__386.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__unix.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/syscall__unix.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/unicast__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/unicast__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/ipv6/unicastsockopt__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/ipv6/unicastsockopt__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/netutil/listen.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/netutil/listen.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/netutil/listen__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/netutil/listen__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/proxy/direct.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/proxy/direct.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/proxy/per__host.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/proxy/per__host.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/proxy/per__host__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/proxy/per__host__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/proxy/proxy.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/proxy/proxy.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/proxy/proxy__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/proxy/proxy__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/proxy/socks5.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/proxy/socks5.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/gen.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/gen.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/list.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/list.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/list__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/list__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/table.go.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/table.go.d -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/table.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/table.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/table__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/publicsuffix/table__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/spdy/dictionary.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/spdy/dictionary.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/spdy/read.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/spdy/read.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/spdy/spdy__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/spdy/spdy__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/spdy/types.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/spdy/types.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/spdy/write.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/spdy/write.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/client.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/client.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/exampledial__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/exampledial__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/examplehandler__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/examplehandler__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/hixie.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/hixie.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/hixie__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/hixie__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/hybi.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/hybi.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/hybi__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/hybi__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/server.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/server.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/websocket.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/websocket.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/websocket/websocket__test.go.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/websocket/websocket__test.go.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/data/~2ehgignore.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/data/~2ehgignore.i -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/phaseroots: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/phaseroots -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/store/undo.phaseroots: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/store/undo.phaseroots -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/undo.bookmarks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/undo.bookmarks -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/undo.branch: -------------------------------------------------------------------------------- 1 | default -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/undo.desc: -------------------------------------------------------------------------------- 1 | 0 2 | pull 3 | https://code.google.com/p/go.net 4 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hg/undo.dirstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/.hg/undo.dirstate -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/.hgignore: -------------------------------------------------------------------------------- 1 | # Add no patterns to .hgignore except for files generated by the build. 2 | syntax:glob 3 | last-change 4 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.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/code.google.com/p/go.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/code.google.com/p/go.net/PATENTS: -------------------------------------------------------------------------------- 1 | Additional IP Rights Grant (Patents) 2 | 3 | "This implementation" means the copyrightable works distributed by 4 | Google as part of the Go project. 5 | 6 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 7 | no-charge, royalty-free, irrevocable (except as stated in this section) 8 | patent license to make, have made, use, offer to sell, sell, import, 9 | transfer and otherwise run, modify and propagate the contents of this 10 | implementation of Go, where such license applies only to those patent 11 | claims, both currently owned or controlled by Google and acquired in 12 | the future, licensable by Google that are necessarily infringed by this 13 | implementation of Go. This grant does not include claims that would be 14 | infringed only as a consequence of further modification of this 15 | implementation. If you or your agent or exclusive licensee institute or 16 | order or agree to the institution of patent litigation against any 17 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 18 | that this implementation of Go or any code incorporated within this 19 | implementation of Go constitutes direct or contributory patent 20 | infringement, or inducement of patent infringement, then any patent 21 | rights granted to you under this License for this implementation of Go 22 | shall terminate as of the date such litigation is filed. 23 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/README: -------------------------------------------------------------------------------- 1 | This repository holds supplementary Go networking libraries. 2 | 3 | To submit changes to this repository, see http://golang.org/doc/contribute.html. 4 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/codereview.cfg: -------------------------------------------------------------------------------- 1 | defaultcc: golang-codereviews@googlegroups.com 2 | contributors: http://go.googlecode.com/hg/CONTRIBUTORS 3 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/context/withtimeout_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 context_test 6 | 7 | import ( 8 | "fmt" 9 | "time" 10 | 11 | "code.google.com/p/go.net/context" 12 | ) 13 | 14 | func ExampleWithTimeout() { 15 | // Pass a context with a timeout to tell a blocking function that it 16 | // should abandon its work after the timeout elapses. 17 | ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond) 18 | select { 19 | case <-time.After(200 * time.Millisecond): 20 | fmt.Println("overslept") 21 | case <-ctx.Done(): 22 | fmt.Println(ctx.Err()) // prints "context deadline exceeded" 23 | } 24 | // Output: 25 | // context deadline exceeded 26 | } 27 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/html/charset/testdata/README: -------------------------------------------------------------------------------- 1 | These test cases come from http://www.w3.org/International/tests/html5/the-input-byte-stream/results-basics 2 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/html/charset/testdata/UTF-16BE-BOM.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/html/charset/testdata/UTF-16BE-BOM.html -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/html/charset/testdata/UTF-16LE-BOM.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adolphlxm/atc/a826f27ee46734e117f294bc2e1f25586e922aa2/vendor/code.google.com/p/go.net/html/charset/testdata/UTF-16LE-BOM.html -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/html/entity_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2010 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 html 6 | 7 | import ( 8 | "testing" 9 | "unicode/utf8" 10 | ) 11 | 12 | func TestEntityLength(t *testing.T) { 13 | // We verify that the length of UTF-8 encoding of each value is <= 1 + len(key). 14 | // The +1 comes from the leading "&". This property implies that the length of 15 | // unescaped text is <= the length of escaped text. 16 | for k, v := range entity { 17 | if 1+len(k) < utf8.RuneLen(v) { 18 | t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v)) 19 | } 20 | if len(k) > longestEntityWithoutSemicolon && k[len(k)-1] != ';' { 21 | t.Errorf("entity name %s is %d characters, but longestEntityWithoutSemicolon=%d", k, len(k), longestEntityWithoutSemicolon) 22 | } 23 | } 24 | for k, v := range entity2 { 25 | if 1+len(k) < utf8.RuneLen(v[0])+utf8.RuneLen(v[1]) { 26 | t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v[0]) + string(v[1])) 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.net/html/example_test.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 | // This example demonstrates parsing HTML data and walking the resulting tree. 6 | package html_test 7 | 8 | import ( 9 | "fmt" 10 | "log" 11 | "strings" 12 | 13 | "code.google.com/p/go.net/html" 14 | ) 15 | 16 | func ExampleParse() { 17 | s := `

Links:

` 18 | doc, err := html.Parse(strings.NewReader(s)) 19 | if err != nil { 20 | log.Fatal(err) 21 | } 22 | var f func(*html.Node) 23 | f = func(n *html.Node) { 24 | if n.Type == html.ElementNode && n.Data == "a" { 25 | for _, a := range n.Attr { 26 | if a.Key == "href" { 27 | fmt.Println(a.Val) 28 | break 29 | } 30 | } 31 | } 32 | for c := n.FirstChild; c != nil; c = c.NextSibling { 33 | f(c) 34 | } 35 | } 36 | f(doc) 37 | // Output: 38 | // foo 39 | // /bar/baz 40 | } 41 | -------------------------------------------------------------------------------- /vendor/code.google.com/p/go.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 | |