func http2asciiEqualFold(s, t string) bool { … }
func http2lower(b byte) byte { … }
func http2isASCIIPrint(s string) bool { … }
func http2asciiToLower(s string) (lower string, ok bool) { … }
const http2cipher_TLS_NULL_WITH_NULL_NULL …
const http2cipher_TLS_RSA_WITH_NULL_MD5 …
const http2cipher_TLS_RSA_WITH_NULL_SHA …
const http2cipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5 …
const http2cipher_TLS_RSA_WITH_RC4_128_MD5 …
const http2cipher_TLS_RSA_WITH_RC4_128_SHA …
const http2cipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 …
const http2cipher_TLS_RSA_WITH_IDEA_CBC_SHA …
const http2cipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA …
const http2cipher_TLS_RSA_WITH_DES_CBC_SHA …
const http2cipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA …
const http2cipher_TLS_DH_DSS_WITH_DES_CBC_SHA …
const http2cipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA …
const http2cipher_TLS_DH_RSA_WITH_DES_CBC_SHA …
const http2cipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA …
const http2cipher_TLS_DHE_DSS_WITH_DES_CBC_SHA …
const http2cipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA …
const http2cipher_TLS_DHE_RSA_WITH_DES_CBC_SHA …
const http2cipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 …
const http2cipher_TLS_DH_anon_WITH_RC4_128_MD5 …
const http2cipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA …
const http2cipher_TLS_DH_anon_WITH_DES_CBC_SHA …
const http2cipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_KRB5_WITH_DES_CBC_SHA …
const http2cipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_KRB5_WITH_RC4_128_SHA …
const http2cipher_TLS_KRB5_WITH_IDEA_CBC_SHA …
const http2cipher_TLS_KRB5_WITH_DES_CBC_MD5 …
const http2cipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5 …
const http2cipher_TLS_KRB5_WITH_RC4_128_MD5 …
const http2cipher_TLS_KRB5_WITH_IDEA_CBC_MD5 …
const http2cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA …
const http2cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA …
const http2cipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA …
const http2cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 …
const http2cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 …
const http2cipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5 …
const http2cipher_TLS_PSK_WITH_NULL_SHA …
const http2cipher_TLS_DHE_PSK_WITH_NULL_SHA …
const http2cipher_TLS_RSA_PSK_WITH_NULL_SHA …
const http2cipher_TLS_RSA_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_RSA_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_RSA_WITH_NULL_SHA256 …
const http2cipher_TLS_RSA_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_RSA_WITH_AES_256_CBC_SHA256 …
const http2cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA …
const http2cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA …
const http2cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA …
const http2cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA …
const http2cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA …
const http2cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA …
const http2cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256 …
const http2cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256 …
const http2cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 …
const http2cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 …
const http2cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256 …
const http2cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA …
const http2cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA …
const http2cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA …
const http2cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA …
const http2cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA …
const http2cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA …
const http2cipher_TLS_PSK_WITH_RC4_128_SHA …
const http2cipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_PSK_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_PSK_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_DHE_PSK_WITH_RC4_128_SHA …
const http2cipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_RSA_PSK_WITH_RC4_128_SHA …
const http2cipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_RSA_WITH_SEED_CBC_SHA …
const http2cipher_TLS_DH_DSS_WITH_SEED_CBC_SHA …
const http2cipher_TLS_DH_RSA_WITH_SEED_CBC_SHA …
const http2cipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA …
const http2cipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA …
const http2cipher_TLS_DH_anon_WITH_SEED_CBC_SHA …
const http2cipher_TLS_RSA_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_RSA_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_PSK_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_PSK_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_PSK_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_PSK_WITH_AES_256_CBC_SHA384 …
const http2cipher_TLS_PSK_WITH_NULL_SHA256 …
const http2cipher_TLS_PSK_WITH_NULL_SHA384 …
const http2cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 …
const http2cipher_TLS_DHE_PSK_WITH_NULL_SHA256 …
const http2cipher_TLS_DHE_PSK_WITH_NULL_SHA384 …
const http2cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 …
const http2cipher_TLS_RSA_PSK_WITH_NULL_SHA256 …
const http2cipher_TLS_RSA_PSK_WITH_NULL_SHA384 …
const http2cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 …
const http2cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 …
const http2cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 …
const http2cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 …
const http2cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 …
const http2cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 …
const http2cipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV …
const http2cipher_TLS_FALLBACK_SCSV …
const http2cipher_TLS_ECDH_ECDSA_WITH_NULL_SHA …
const http2cipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA …
const http2cipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA …
const http2cipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA …
const http2cipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_ECDH_RSA_WITH_NULL_SHA …
const http2cipher_TLS_ECDH_RSA_WITH_RC4_128_SHA …
const http2cipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_ECDHE_RSA_WITH_NULL_SHA …
const http2cipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA …
const http2cipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_ECDH_anon_WITH_NULL_SHA …
const http2cipher_TLS_ECDH_anon_WITH_RC4_128_SHA …
const http2cipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 …
const http2cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 …
const http2cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 …
const http2cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 …
const http2cipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 …
const http2cipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA …
const http2cipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA …
const http2cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA …
const http2cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA …
const http2cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 …
const http2cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 …
const http2cipher_TLS_ECDHE_PSK_WITH_NULL_SHA …
const http2cipher_TLS_ECDHE_PSK_WITH_NULL_SHA256 …
const http2cipher_TLS_ECDHE_PSK_WITH_NULL_SHA384 …
const http2cipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 …
const http2cipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 …
const http2cipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 …
const http2cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 …
const http2cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 …
const http2cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 …
const http2cipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 …
const http2cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 …
const http2cipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 …
const http2cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 …
const http2cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 …
const http2cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 …
const http2cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 …
const http2cipher_TLS_RSA_WITH_AES_128_CCM …
const http2cipher_TLS_RSA_WITH_AES_256_CCM …
const http2cipher_TLS_DHE_RSA_WITH_AES_128_CCM …
const http2cipher_TLS_DHE_RSA_WITH_AES_256_CCM …
const http2cipher_TLS_RSA_WITH_AES_128_CCM_8 …
const http2cipher_TLS_RSA_WITH_AES_256_CCM_8 …
const http2cipher_TLS_DHE_RSA_WITH_AES_128_CCM_8 …
const http2cipher_TLS_DHE_RSA_WITH_AES_256_CCM_8 …
const http2cipher_TLS_PSK_WITH_AES_128_CCM …
const http2cipher_TLS_PSK_WITH_AES_256_CCM …
const http2cipher_TLS_DHE_PSK_WITH_AES_128_CCM …
const http2cipher_TLS_DHE_PSK_WITH_AES_256_CCM …
const http2cipher_TLS_PSK_WITH_AES_128_CCM_8 …
const http2cipher_TLS_PSK_WITH_AES_256_CCM_8 …
const http2cipher_TLS_PSK_DHE_WITH_AES_128_CCM_8 …
const http2cipher_TLS_PSK_DHE_WITH_AES_256_CCM_8 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 …
const http2cipher_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 …
const http2cipher_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 …
const http2cipher_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 …
const http2cipher_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 …
const http2cipher_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 …
const http2cipher_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 …
const http2cipher_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 …
func http2isBadCipher(cipher uint16) bool { … }
type http2ClientConnPool …
type http2clientConnPoolIdleCloser …
var _ …
var _ …
type http2clientConnPool …
func (p *http2clientConnPool) GetClientConn(req *Request, addr string) (*http2ClientConn, error) { … }
const http2dialOnMiss …
const http2noDialOnMiss …
func (p *http2clientConnPool) getClientConn(req *Request, addr string, dialOnMiss bool) (*http2ClientConn, error) { … }
type http2dialCall …
func (p *http2clientConnPool) getStartDialLocked(ctx context.Context, addr string) *http2dialCall { … }
func (c *http2dialCall) dial(ctx context.Context, addr string) { … }
func (p *http2clientConnPool) addConnIfNeeded(key string, t *http2Transport, c *tls.Conn) (used bool, err error) { … }
type http2addConnCall …
func (c *http2addConnCall) run(t *http2Transport, key string, tc *tls.Conn) { … }
func (p *http2clientConnPool) addConnLocked(key string, cc *http2ClientConn) { … }
func (p *http2clientConnPool) MarkDead(cc *http2ClientConn) { … }
func (p *http2clientConnPool) closeIdleConnections() { … }
func http2filterOutClientConn(in []*http2ClientConn, exclude *http2ClientConn) []*http2ClientConn { … }
type http2noDialClientConnPool …
func (p http2noDialClientConnPool) GetClientConn(req *Request, addr string) (*http2ClientConn, error) { … }
func http2shouldRetryDial(call *http2dialCall, req *Request) bool { … }
var http2dataChunkPools …
func http2getDataBufferChunk(size int64) []byte { … }
func http2putDataBufferChunk(p []byte) { … }
type http2dataBuffer …
var http2errReadEmpty …
func (b *http2dataBuffer) Read(p []byte) (int, error) { … }
func (b *http2dataBuffer) bytesFromFirstChunk() []byte { … }
func (b *http2dataBuffer) Len() int { … }
func (b *http2dataBuffer) Write(p []byte) (int, error) { … }
func (b *http2dataBuffer) lastChunkOrAlloc(want int64) []byte { … }
type http2ErrCode …
const http2ErrCodeNo …
const http2ErrCodeProtocol …
const http2ErrCodeInternal …
const http2ErrCodeFlowControl …
const http2ErrCodeSettingsTimeout …
const http2ErrCodeStreamClosed …
const http2ErrCodeFrameSize …
const http2ErrCodeRefusedStream …
const http2ErrCodeCancel …
const http2ErrCodeCompression …
const http2ErrCodeConnect …
const http2ErrCodeEnhanceYourCalm …
const http2ErrCodeInadequateSecurity …
const http2ErrCodeHTTP11Required …
var http2errCodeName …
func (e http2ErrCode) String() string { … }
func (e http2ErrCode) stringToken() string { … }
type http2ConnectionError …
func (e http2ConnectionError) Error() string { … }
type http2StreamError …
var http2errFromPeer …
func http2streamError(id uint32, code http2ErrCode) http2StreamError { … }
func (e http2StreamError) Error() string { … }
type http2goAwayFlowError …
func (http2goAwayFlowError) Error() string { … }
type http2connError …
func (e http2connError) Error() string { … }
type http2pseudoHeaderError …
func (e http2pseudoHeaderError) Error() string { … }
type http2duplicatePseudoHeaderError …
func (e http2duplicatePseudoHeaderError) Error() string { … }
type http2headerFieldNameError …
func (e http2headerFieldNameError) Error() string { … }
type http2headerFieldValueError …
func (e http2headerFieldValueError) Error() string { … }
var http2errMixPseudoHeaderTypes …
var http2errPseudoAfterRegular …
const http2inflowMinRefresh …
type http2inflow …
func (f *http2inflow) init(n int32) { … }
func (f *http2inflow) add(n int) (connAdd int32) { … }
func (f *http2inflow) take(n uint32) bool { … }
func http2takeInflows(f1, f2 *http2inflow, n uint32) bool { … }
type http2outflow …
func (f *http2outflow) setConnFlow(cf *http2outflow) { … }
func (f *http2outflow) available() int32 { … }
func (f *http2outflow) take(n int32) { … }
func (f *http2outflow) add(n int32) bool { … }
const http2frameHeaderLen …
var http2padZeros …
type http2FrameType …
const http2FrameData …
const http2FrameHeaders …
const http2FramePriority …
const http2FrameRSTStream …
const http2FrameSettings …
const http2FramePushPromise …
const http2FramePing …
const http2FrameGoAway …
const http2FrameWindowUpdate …
const http2FrameContinuation …
var http2frameName …
func (t http2FrameType) String() string { … }
type http2Flags …
func (f http2Flags) Has(v http2Flags) bool { … }
const http2FlagDataEndStream …
const http2FlagDataPadded …
const http2FlagHeadersEndStream …
const http2FlagHeadersEndHeaders …
const http2FlagHeadersPadded …
const http2FlagHeadersPriority …
const http2FlagSettingsAck …
const http2FlagPingAck …
const http2FlagContinuationEndHeaders …
const http2FlagPushPromiseEndHeaders …
const http2FlagPushPromisePadded …
var http2flagName …
type http2frameParser …
var http2frameParsers …
func http2typeFrameParser(t http2FrameType) http2frameParser { … }
type http2FrameHeader …
func (h http2FrameHeader) Header() http2FrameHeader { … }
func (h http2FrameHeader) String() string { … }
func (h http2FrameHeader) writeDebug(buf *bytes.Buffer) { … }
func (h *http2FrameHeader) checkValid() { … }
func (h *http2FrameHeader) invalidate() { … }
var http2fhBytes …
func http2ReadFrameHeader(r io.Reader) (http2FrameHeader, error) { … }
func http2readFrameHeader(buf []byte, r io.Reader) (http2FrameHeader, error) { … }
type http2Frame …
type http2Framer …
func (fr *http2Framer) maxHeaderListSize() uint32 { … }
func (f *http2Framer) startWrite(ftype http2FrameType, flags http2Flags, streamID uint32) { … }
func (f *http2Framer) endWrite() error { … }
func (f *http2Framer) logWrite() { … }
func (f *http2Framer) writeByte(v byte) { … }
func (f *http2Framer) writeBytes(v []byte) { … }
func (f *http2Framer) writeUint16(v uint16) { … }
func (f *http2Framer) writeUint32(v uint32) { … }
const http2minMaxFrameSize …
const http2maxFrameSize …
func (fr *http2Framer) SetReuseFrames() { … }
type http2frameCache …
func (fc *http2frameCache) getDataFrame() *http2DataFrame { … }
func http2NewFramer(w io.Writer, r io.Reader) *http2Framer { … }
func (fr *http2Framer) SetMaxReadFrameSize(v uint32) { … }
func (fr *http2Framer) ErrorDetail() error { … }
var http2ErrFrameTooLarge …
func http2terminalReadFrameError(err error) bool { … }
func (fr *http2Framer) ReadFrame() (http2Frame, error) { … }
func (fr *http2Framer) connError(code http2ErrCode, reason string) error { … }
func (fr *http2Framer) checkFrameOrder(f http2Frame) error { … }
type http2DataFrame …
func (f *http2DataFrame) StreamEnded() bool { … }
func (f *http2DataFrame) Data() []byte { … }
func http2parseDataFrame(fc *http2frameCache, fh http2FrameHeader, countError func(string), payload []byte) (http2Frame, error) { … }
var http2errStreamID …
var http2errDepStreamID …
var http2errPadLength …
var http2errPadBytes …
func http2validStreamIDOrZero(streamID uint32) bool { … }
func http2validStreamID(streamID uint32) bool { … }
func (f *http2Framer) WriteData(streamID uint32, endStream bool, data []byte) error { … }
func (f *http2Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { … }
func (f *http2Framer) startWriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { … }
type http2SettingsFrame …
func http2parseSettingsFrame(_ *http2frameCache, fh http2FrameHeader, countError func(string), p []byte) (http2Frame, error) { … }
func (f *http2SettingsFrame) IsAck() bool { … }
func (f *http2SettingsFrame) Value(id http2SettingID) (v uint32, ok bool) { … }
func (f *http2SettingsFrame) Setting(i int) http2Setting { … }
func (f *http2SettingsFrame) NumSettings() int { … }
func (f *http2SettingsFrame) HasDuplicates() bool { … }
func (f *http2SettingsFrame) ForeachSetting(fn func(http2Setting) error) error { … }
func (f *http2Framer) WriteSettings(settings ...http2Setting) error { … }
func (f *http2Framer) WriteSettingsAck() error { … }
type http2PingFrame …
func (f *http2PingFrame) IsAck() bool { … }
func http2parsePingFrame(_ *http2frameCache, fh http2FrameHeader, countError func(string), payload []byte) (http2Frame, error) { … }
func (f *http2Framer) WritePing(ack bool, data [8]byte) error { … }
type http2GoAwayFrame …
func (f *http2GoAwayFrame) DebugData() []byte { … }
func http2parseGoAwayFrame(_ *http2frameCache, fh http2FrameHeader, countError func(string), p []byte) (http2Frame, error) { … }
func (f *http2Framer) WriteGoAway(maxStreamID uint32, code http2ErrCode, debugData []byte) error { … }
type http2UnknownFrame …
func (f *http2UnknownFrame) Payload() []byte { … }
func http2parseUnknownFrame(_ *http2frameCache, fh http2FrameHeader, countError func(string), p []byte) (http2Frame, error) { … }
type http2WindowUpdateFrame …
func http2parseWindowUpdateFrame(_ *http2frameCache, fh http2FrameHeader, countError func(string), p []byte) (http2Frame, error) { … }
func (f *http2Framer) WriteWindowUpdate(streamID, incr uint32) error { … }
type http2HeadersFrame …
func (f *http2HeadersFrame) HeaderBlockFragment() []byte { … }
func (f *http2HeadersFrame) HeadersEnded() bool { … }
func (f *http2HeadersFrame) StreamEnded() bool { … }
func (f *http2HeadersFrame) HasPriority() bool { … }
func http2parseHeadersFrame(_ *http2frameCache, fh http2FrameHeader, countError func(string), p []byte) (_ http2Frame, err error) { … }
type http2HeadersFrameParam …
func (f *http2Framer) WriteHeaders(p http2HeadersFrameParam) error { … }
type http2PriorityFrame …
type http2PriorityParam …
func (p http2PriorityParam) IsZero() bool { … }
func http2parsePriorityFrame(_ *http2frameCache, fh http2FrameHeader, countError func(string), payload []byte) (http2Frame, error) { … }
func (f *http2Framer) WritePriority(streamID uint32, p http2PriorityParam) error { … }
type http2RSTStreamFrame …
func http2parseRSTStreamFrame(_ *http2frameCache, fh http2FrameHeader, countError func(string), p []byte) (http2Frame, error) { … }
func (f *http2Framer) WriteRSTStream(streamID uint32, code http2ErrCode) error { … }
type http2ContinuationFrame …
func http2parseContinuationFrame(_ *http2frameCache, fh http2FrameHeader, countError func(string), p []byte) (http2Frame, error) { … }
func (f *http2ContinuationFrame) HeaderBlockFragment() []byte { … }
func (f *http2ContinuationFrame) HeadersEnded() bool { … }
func (f *http2Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlockFragment []byte) error { … }
type http2PushPromiseFrame …
func (f *http2PushPromiseFrame) HeaderBlockFragment() []byte { … }
func (f *http2PushPromiseFrame) HeadersEnded() bool { … }
func http2parsePushPromise(_ *http2frameCache, fh http2FrameHeader, countError func(string), p []byte) (_ http2Frame, err error) { … }
type http2PushPromiseParam …
func (f *http2Framer) WritePushPromise(p http2PushPromiseParam) error { … }
func (f *http2Framer) WriteRawFrame(t http2FrameType, flags http2Flags, streamID uint32, payload []byte) error { … }
func http2readByte(p []byte) (remain []byte, b byte, err error) { … }
func http2readUint32(p []byte) (remain []byte, v uint32, err error) { … }
type http2streamEnder …
type http2headersEnder …
type http2headersOrContinuation …
type http2MetaHeadersFrame …
func (mh *http2MetaHeadersFrame) PseudoValue(pseudo string) string { … }
func (mh *http2MetaHeadersFrame) RegularFields() []hpack.HeaderField { … }
func (mh *http2MetaHeadersFrame) PseudoFields() []hpack.HeaderField { … }
func (mh *http2MetaHeadersFrame) checkPseudos() error { … }
func (fr *http2Framer) maxHeaderStringLen() int { … }
func (fr *http2Framer) readMetaFrame(hf *http2HeadersFrame) (http2Frame, error) { … }
func http2summarizeFrame(f http2Frame) string { … }
var http2DebugGoroutines …
type http2goroutineLock …
func http2newGoroutineLock() http2goroutineLock { … }
func (g http2goroutineLock) check() { … }
func (g http2goroutineLock) checkNotOn() { … }
var http2goroutineSpace …
func http2curGoroutineID() uint64 { … }
var http2littleBuf …
func http2parseUintBytes(s []byte, base int, bitSize int) (n uint64, err error) { … }
func http2cutoff64(base int) uint64 { … }
var http2commonBuildOnce …
var http2commonLowerHeader …
var http2commonCanonHeader …
func http2buildCommonHeaderMapsOnce() { … }
func http2buildCommonHeaderMaps() { … }
func http2lowerHeader(v string) (lower string, ascii bool) { … }
func http2canonicalHeader(v string) string { … }
var http2VerboseLogs …
var http2logFrameWrites …
var http2logFrameReads …
var http2inTests …
func init() { … }
const http2ClientPreface …
const http2initialMaxFrameSize …
const http2NextProtoTLS …
const http2initialHeaderTableSize …
const http2initialWindowSize …
const http2defaultMaxReadFrameSize …
var http2clientPreface …
type http2streamState …
const http2stateIdle …
const http2stateOpen …
const http2stateHalfClosedLocal …
const http2stateHalfClosedRemote …
const http2stateClosed …
var http2stateName …
func (st http2streamState) String() string { … }
type http2Setting …
func (s http2Setting) String() string { … }
func (s http2Setting) Valid() error { … }
type http2SettingID …
const http2SettingHeaderTableSize …
const http2SettingEnablePush …
const http2SettingMaxConcurrentStreams …
const http2SettingInitialWindowSize …
const http2SettingMaxFrameSize …
const http2SettingMaxHeaderListSize …
var http2settingName …
func (s http2SettingID) String() string { … }
func http2validWireHeaderFieldName(v string) bool { … }
func http2httpCodeString(code int) string { … }
type http2stringWriter …
type http2closeWaiter …
func (cw *http2closeWaiter) Init() { … }
func (cw http2closeWaiter) Close() { … }
func (cw http2closeWaiter) Wait() { … }
type http2bufferedWriter …
func http2newBufferedWriter(w io.Writer) *http2bufferedWriter { … }
const http2bufWriterPoolBufferSize …
var http2bufWriterPool …
func (w *http2bufferedWriter) Available() int { … }
func (w *http2bufferedWriter) Write(p []byte) (n int, err error) { … }
func (w *http2bufferedWriter) Flush() error { … }
func http2mustUint31(v int32) uint32 { … }
func http2bodyAllowedForStatus(status int) bool { … }
type http2httpError …
func (e *http2httpError) Error() string { … }
func (e *http2httpError) Timeout() bool { … }
func (e *http2httpError) Temporary() bool { … }
var http2errTimeout …
type http2connectionStater …
var http2sorterPool …
type http2sorter …
func (s *http2sorter) Len() int { … }
func (s *http2sorter) Swap(i, j int) { … }
func (s *http2sorter) Less(i, j int) bool { … }
func (s *http2sorter) Keys(h Header) []string { … }
func (s *http2sorter) SortStrings(ss []string) { … }
func http2validPseudoPath(v string) bool { … }
type http2incomparable …
type http2synctestGroupInterface …
type http2pipe …
type http2pipeBuffer …
func (p *http2pipe) setBuffer(b http2pipeBuffer) { … }
func (p *http2pipe) Len() int { … }
func (p *http2pipe) Read(d []byte) (n int, err error) { … }
var http2errClosedPipeWrite …
var http2errUninitializedPipeWrite …
func (p *http2pipe) Write(d []byte) (n int, err error) { … }
func (p *http2pipe) CloseWithError(err error) { … }
func (p *http2pipe) BreakWithError(err error) { … }
func (p *http2pipe) closeWithErrorAndCode(err error, fn func()) { … }
func (p *http2pipe) closeWithError(dst *error, err error, fn func()) { … }
func (p *http2pipe) closeDoneLocked() { … }
func (p *http2pipe) Err() error { … }
func (p *http2pipe) Done() <-chan struct{ … }
const http2prefaceTimeout …
const http2firstSettingsTimeout …
const http2handlerChunkWriteSize …
const http2defaultMaxStreams …
const http2maxQueuedControlFrames …
var http2errClientDisconnected …
var http2errClosedBody …
var http2errHandlerComplete …
var http2errStreamClosed …
var http2responseWriterStatePool …
var http2testHookOnConn …
var http2testHookGetServerConn …
var http2testHookOnPanicMu …
var http2testHookOnPanic …
type http2Server …
func (s *http2Server) markNewGoroutine() { … }
func (s *http2Server) now() time.Time { … }
func (s *http2Server) newTimer(d time.Duration) http2timer { … }
func (s *http2Server) afterFunc(d time.Duration, f func()) http2timer { … }
func (s *http2Server) initialConnRecvWindowSize() int32 { … }
func (s *http2Server) initialStreamRecvWindowSize() int32 { … }
func (s *http2Server) maxReadFrameSize() uint32 { … }
func (s *http2Server) maxConcurrentStreams() uint32 { … }
func (s *http2Server) maxDecoderHeaderTableSize() uint32 { … }
func (s *http2Server) maxEncoderHeaderTableSize() uint32 { … }
func (s *http2Server) maxQueuedControlFrames() int { … }
type http2serverInternalState …
func (s *http2serverInternalState) registerConn(sc *http2serverConn) { … }
func (s *http2serverInternalState) unregisterConn(sc *http2serverConn) { … }
func (s *http2serverInternalState) startGracefulShutdown() { … }
func http2ConfigureServer(s *Server, conf *http2Server) error { … }
type http2ServeConnOpts …
func (o *http2ServeConnOpts) context() context.Context { … }
func (o *http2ServeConnOpts) baseConfig() *Server { … }
func (o *http2ServeConnOpts) handler() Handler { … }
func (s *http2Server) ServeConn(c net.Conn, opts *http2ServeConnOpts) { … }
func (s *http2Server) serveConn(c net.Conn, opts *http2ServeConnOpts, newf func(*http2serverConn)) { … }
func http2serverConnBaseContext(c net.Conn, opts *http2ServeConnOpts) (ctx context.Context, cancel func()) { … }
func (sc *http2serverConn) rejectConn(err http2ErrCode, debug string) { … }
type http2serverConn …
func (sc *http2serverConn) maxHeaderListSize() uint32 { … }
func (sc *http2serverConn) curOpenStreams() uint32 { … }
type http2stream …
func (sc *http2serverConn) Framer() *http2Framer { … }
func (sc *http2serverConn) CloseConn() error { … }
func (sc *http2serverConn) Flush() error { … }
func (sc *http2serverConn) HeaderEncoder() (*hpack.Encoder, *bytes.Buffer) { … }
func (sc *http2serverConn) state(streamID uint32) (http2streamState, *http2stream) { … }
func (sc *http2serverConn) setConnState(state ConnState) { … }
func (sc *http2serverConn) vlogf(format string, args ...interface{ … }
func (sc *http2serverConn) logf(format string, args ...interface{ … }
func http2errno(v error) uintptr { … }
func http2isClosedConnError(err error) bool { … }
func (sc *http2serverConn) condlogf(err error, format string, args ...interface{ … }
const http2maxCachedCanonicalHeadersKeysSize …
func (sc *http2serverConn) canonicalHeader(v string) string { … }
type http2readFrameResult …
func (sc *http2serverConn) readFrames() { … }
type http2frameWriteResult …
func (sc *http2serverConn) writeFrameAsync(wr http2FrameWriteRequest, wd *http2writeData) { … }
func (sc *http2serverConn) closeAllStreamsOnConnClose() { … }
func (sc *http2serverConn) stopShutdownTimer() { … }
func (sc *http2serverConn) notePanic() { … }
func (sc *http2serverConn) serve() { … }
type http2serverMessage …
var http2settingsTimerMsg …
var http2idleTimerMsg …
var http2shutdownTimerMsg …
var http2gracefulShutdownMsg …
var http2handlerDoneMsg …
func (sc *http2serverConn) onSettingsTimer() { … }
func (sc *http2serverConn) onIdleTimer() { … }
func (sc *http2serverConn) onShutdownTimer() { … }
func (sc *http2serverConn) sendServeMsg(msg interface{ … }
var http2errPrefaceTimeout …
func (sc *http2serverConn) readPreface() error { … }
var http2errChanPool …
var http2writeDataPool …
func (sc *http2serverConn) writeDataFromHandler(stream *http2stream, data []byte, endStream bool) error { … }
func (sc *http2serverConn) writeFrameFromHandler(wr http2FrameWriteRequest) error { … }
func (sc *http2serverConn) writeFrame(wr http2FrameWriteRequest) { … }
func (sc *http2serverConn) startFrameWrite(wr http2FrameWriteRequest) { … }
var http2errHandlerPanicked …
func (sc *http2serverConn) wroteFrame(res http2frameWriteResult) { … }
func (sc *http2serverConn) scheduleFrameWrite() { … }
func (sc *http2serverConn) startGracefulShutdown() { … }
var http2goAwayTimeout …
func (sc *http2serverConn) startGracefulShutdownInternal() { … }
func (sc *http2serverConn) goAway(code http2ErrCode) { … }
func (sc *http2serverConn) shutDownIn(d time.Duration) { … }
func (sc *http2serverConn) resetStream(se http2StreamError) { … }
func (sc *http2serverConn) processFrameFromReader(res http2readFrameResult) bool { … }
func (sc *http2serverConn) processFrame(f http2Frame) error { … }
func (sc *http2serverConn) processPing(f *http2PingFrame) error { … }
func (sc *http2serverConn) processWindowUpdate(f *http2WindowUpdateFrame) error { … }
func (sc *http2serverConn) processResetStream(f *http2RSTStreamFrame) error { … }
func (sc *http2serverConn) closeStream(st *http2stream, err error) { … }
func (sc *http2serverConn) processSettings(f *http2SettingsFrame) error { … }
func (sc *http2serverConn) processSetting(s http2Setting) error { … }
func (sc *http2serverConn) processSettingInitialWindowSize(val uint32) error { … }
func (sc *http2serverConn) processData(f *http2DataFrame) error { … }
func (sc *http2serverConn) processGoAway(f *http2GoAwayFrame) error { … }
func (st *http2stream) isPushed() bool { … }
func (st *http2stream) endStream() { … }
func (st *http2stream) copyTrailersToHandlerRequest() { … }
func (st *http2stream) onReadTimeout() { … }
func (st *http2stream) onWriteTimeout() { … }
func (sc *http2serverConn) processHeaders(f *http2MetaHeadersFrame) error { … }
func (sc *http2serverConn) upgradeRequest(req *Request) { … }
func (st *http2stream) processTrailerHeaders(f *http2MetaHeadersFrame) error { … }
func (sc *http2serverConn) checkPriority(streamID uint32, p http2PriorityParam) error { … }
func (sc *http2serverConn) processPriority(f *http2PriorityFrame) error { … }
func (sc *http2serverConn) newStream(id, pusherID uint32, state http2streamState) *http2stream { … }
func (sc *http2serverConn) newWriterAndRequest(st *http2stream, f *http2MetaHeadersFrame) (*http2responseWriter, *Request, error) { … }
type http2requestParam …
func (sc *http2serverConn) newWriterAndRequestNoBody(st *http2stream, rp http2requestParam) (*http2responseWriter, *Request, error) { … }
func (sc *http2serverConn) newResponseWriter(st *http2stream, req *Request) *http2responseWriter { … }
type http2unstartedHandler …
func (sc *http2serverConn) scheduleHandler(streamID uint32, rw *http2responseWriter, req *Request, handler func(ResponseWriter, *Request)) error { … }
func (sc *http2serverConn) handlerDone() { … }
func (sc *http2serverConn) runHandler(rw *http2responseWriter, req *Request, handler func(ResponseWriter, *Request)) { … }
func http2handleHeaderListTooLong(w ResponseWriter, r *Request) { … }
func (sc *http2serverConn) writeHeaders(st *http2stream, headerData *http2writeResHeaders) error { … }
func (sc *http2serverConn) write100ContinueHeaders(st *http2stream) { … }
type http2bodyReadMsg …
func (sc *http2serverConn) noteBodyReadFromHandler(st *http2stream, n int, err error) { … }
func (sc *http2serverConn) noteBodyRead(st *http2stream, n int) { … }
func (sc *http2serverConn) sendWindowUpdate32(st *http2stream, n int32) { … }
func (sc *http2serverConn) sendWindowUpdate(st *http2stream, n int) { … }
type http2requestBody …
func (b *http2requestBody) Close() error { … }
func (b *http2requestBody) Read(p []byte) (n int, err error) { … }
type http2responseWriter …
var _ …
var _ …
var _ …
type http2responseWriterState …
type http2chunkWriter …
func (cw http2chunkWriter) Write(p []byte) (n int, err error) { … }
func (rws *http2responseWriterState) hasTrailers() bool { … }
func (rws *http2responseWriterState) hasNonemptyTrailers() bool { … }
func (rws *http2responseWriterState) declareTrailer(k string) { … }
func (rws *http2responseWriterState) writeChunk(p []byte) (n int, err error) { … }
const http2TrailerPrefix …
func (rws *http2responseWriterState) promoteUndeclaredTrailers() { … }
func (w *http2responseWriter) SetReadDeadline(deadline time.Time) error { … }
func (w *http2responseWriter) SetWriteDeadline(deadline time.Time) error { … }
func (w *http2responseWriter) Flush() { … }
func (w *http2responseWriter) FlushError() error { … }
func (w *http2responseWriter) CloseNotify() <-chan bool { … }
func (w *http2responseWriter) Header() Header { … }
func http2checkWriteHeaderCode(code int) { … }
func (w *http2responseWriter) WriteHeader(code int) { … }
func (rws *http2responseWriterState) writeHeader(code int) { … }
func http2cloneHeader(h Header) Header { … }
func (w *http2responseWriter) Write(p []byte) (n int, err error) { … }
func (w *http2responseWriter) WriteString(s string) (n int, err error) { … }
func (w *http2responseWriter) write(lenData int, dataB []byte, dataS string) (n int, err error) { … }
func (w *http2responseWriter) handlerDone() { … }
var http2ErrRecursivePush …
var http2ErrPushLimitReached …
var _ …
func (w *http2responseWriter) Push(target string, opts *PushOptions) error { … }
type http2startPushRequest …
func (sc *http2serverConn) startPush(msg *http2startPushRequest) { … }
func http2foreachHeaderElement(v string, fn func(string)) { … }
var http2connHeaders …
func http2checkValidHTTP2RequestHeaders(h Header) error { … }
func http2new400Handler(err error) HandlerFunc { … }
func http2h1ServerKeepAlivesDisabled(hs *Server) bool { … }
func (sc *http2serverConn) countError(name string, err error) error { … }
type http2timer …
type http2timeTimer …
func (t http2timeTimer) C() <-chan time.Time { … }
const http2transportDefaultConnFlow …
const http2transportDefaultStreamFlow …
const http2defaultUserAgent …
const http2initialMaxConcurrentStreams …
const http2defaultMaxConcurrentStreams …
type http2Transport …
type http2transportTestHooks …
func (t *http2Transport) markNewGoroutine() { … }
func (t *http2Transport) newTimer(d time.Duration) http2timer { … }
func (t *http2Transport) afterFunc(d time.Duration, f func()) http2timer { … }
func (t *http2Transport) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { … }
func (t *http2Transport) maxHeaderListSize() uint32 { … }
func (t *http2Transport) maxFrameReadSize() uint32 { … }
func (t *http2Transport) disableCompression() bool { … }
func (t *http2Transport) pingTimeout() time.Duration { … }
func http2ConfigureTransport(t1 *Transport) error { … }
func http2ConfigureTransports(t1 *Transport) (*http2Transport, error) { … }
func http2configureTransports(t1 *Transport) (*http2Transport, error) { … }
func (t *http2Transport) connPool() http2ClientConnPool { … }
func (t *http2Transport) initConnPool() { … }
type http2ClientConn …
type http2clientStream …
var http2got1xxFuncForTests …
func (cs *http2clientStream) get1xxTraceFunc() func(int, textproto.MIMEHeader) error { … }
func (cs *http2clientStream) abortStream(err error) { … }
func (cs *http2clientStream) abortStreamLocked(err error) { … }
func (cs *http2clientStream) abortRequestBodyWrite() { … }
func (cs *http2clientStream) closeReqBodyLocked() { … }
type http2stickyErrWriter …
func (sew http2stickyErrWriter) Write(p []byte) (n int, err error) { … }
type http2noCachedConnError …
func (http2noCachedConnError) IsHTTP2NoCachedConnError() { … }
func (http2noCachedConnError) Error() string { … }
func http2isNoCachedConnError(err error) bool { … }
var http2ErrNoCachedConn …
type http2RoundTripOpt …
func (t *http2Transport) RoundTrip(req *Request) (*Response, error) { … }
func http2authorityAddr(scheme string, authority string) (addr string) { … }
func (t *http2Transport) RoundTripOpt(req *Request, opt http2RoundTripOpt) (*Response, error) { … }
func (t *http2Transport) CloseIdleConnections() { … }
var http2errClientConnClosed …
var http2errClientConnUnusable …
var http2errClientConnGotGoAway …
func http2shouldRetryRequest(req *Request, err error) (*Request, error) { … }
func http2canRetryError(err error) bool { … }
func (t *http2Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*http2ClientConn, error) { … }
func (t *http2Transport) newTLSConfig(host string) *tls.Config { … }
func (t *http2Transport) dialTLS(ctx context.Context, network, addr string, tlsCfg *tls.Config) (net.Conn, error) { … }
func (t *http2Transport) disableKeepAlives() bool { … }
func (t *http2Transport) expectContinueTimeout() time.Duration { … }
func (t *http2Transport) maxDecoderHeaderTableSize() uint32 { … }
func (t *http2Transport) maxEncoderHeaderTableSize() uint32 { … }
func (t *http2Transport) NewClientConn(c net.Conn) (*http2ClientConn, error) { … }
func (t *http2Transport) newClientConn(c net.Conn, singleUse bool) (*http2ClientConn, error) { … }
func (cc *http2ClientConn) healthCheck() { … }
func (cc *http2ClientConn) SetDoNotReuse() { … }
func (cc *http2ClientConn) setGoAway(f *http2GoAwayFrame) { … }
func (cc *http2ClientConn) CanTakeNewRequest() bool { … }
func (cc *http2ClientConn) ReserveNewRequest() bool { … }
type http2ClientConnState …
func (cc *http2ClientConn) State() http2ClientConnState { … }
type http2clientConnIdleState …
func (cc *http2ClientConn) idleState() http2clientConnIdleState { … }
func (cc *http2ClientConn) idleStateLocked() (st http2clientConnIdleState) { … }
func (cc *http2ClientConn) canTakeNewRequestLocked() bool { … }
func (cc *http2ClientConn) tooIdleLocked() bool { … }
func (cc *http2ClientConn) onIdleTimeout() { … }
func (cc *http2ClientConn) closeConn() { … }
func (cc *http2ClientConn) forceCloseConn() { … }
func (cc *http2ClientConn) closeIfIdle() { … }
func (cc *http2ClientConn) isDoNotReuseAndIdle() bool { … }
var http2shutdownEnterWaitStateHook …
func (cc *http2ClientConn) Shutdown(ctx context.Context) error { … }
func (cc *http2ClientConn) sendGoAway() error { … }
func (cc *http2ClientConn) closeForError(err error) { … }
func (cc *http2ClientConn) Close() error { … }
func (cc *http2ClientConn) closeForLostPing() { … }
var http2errRequestCanceled …
func http2commaSeparatedTrailers(req *Request) (string, error) { … }
func (cc *http2ClientConn) responseHeaderTimeout() time.Duration { … }
func http2checkConnHeaders(req *Request) error { … }
func http2actualContentLength(req *Request) int64 { … }
func (cc *http2ClientConn) decrStreamReservations() { … }
func (cc *http2ClientConn) decrStreamReservationsLocked() { … }
func (cc *http2ClientConn) RoundTrip(req *Request) (*Response, error) { … }
func (cc *http2ClientConn) roundTrip(req *Request, streamf func(*http2clientStream)) (*Response, error) { … }
func (cs *http2clientStream) doRequest(req *Request, streamf func(*http2clientStream)) { … }
func (cs *http2clientStream) writeRequest(req *Request, streamf func(*http2clientStream)) (err error) { … }
func (cs *http2clientStream) encodeAndWriteHeaders(req *Request) error { … }
func (cs *http2clientStream) cleanupWriteRequest(err error) { … }
func (cc *http2ClientConn) awaitOpenSlotForStreamLocked(cs *http2clientStream) error { … }
func (cc *http2ClientConn) writeHeaders(streamID uint32, endStream bool, maxFrameSize int, hdrs []byte) error { … }
var http2errStopReqBodyWrite …
var http2errStopReqBodyWriteAndCancel …
var http2errReqBodyTooLong …
func (cs *http2clientStream) frameScratchBufferLen(maxFrameSize int) int { … }
var http2bufPools …
func http2bufPoolIndex(size int) int { … }
func (cs *http2clientStream) writeRequestBody(req *Request) (err error) { … }
func (cs *http2clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) { … }
func http2validateHeaders(hdrs Header) string { … }
var http2errNilRequestURL …
func (cc *http2ClientConn) encodeHeaders(req *Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) { … }
func http2shouldSendReqContentLength(method string, contentLength int64) bool { … }
func (cc *http2ClientConn) encodeTrailers(trailer Header) ([]byte, error) { … }
func (cc *http2ClientConn) writeHeader(name, value string) { … }
type http2resAndError …
func (cc *http2ClientConn) addStreamLocked(cs *http2clientStream) { … }
func (cc *http2ClientConn) forgetStreamID(id uint32) { … }
type http2clientConnReadLoop …
func (cc *http2ClientConn) readLoop() { … }
type http2GoAwayError …
func (e http2GoAwayError) Error() string { … }
func http2isEOFOrNetReadError(err error) bool { … }
func (rl *http2clientConnReadLoop) cleanup() { … }
func (cc *http2ClientConn) countReadFrameError(err error) { … }
func (rl *http2clientConnReadLoop) run() error { … }
func (rl *http2clientConnReadLoop) processHeaders(f *http2MetaHeadersFrame) error { … }
func (rl *http2clientConnReadLoop) handleResponse(cs *http2clientStream, f *http2MetaHeadersFrame) (*Response, error) { … }
func (rl *http2clientConnReadLoop) processTrailers(cs *http2clientStream, f *http2MetaHeadersFrame) error { … }
type http2transportResponseBody …
func (b http2transportResponseBody) Read(p []byte) (n int, err error) { … }
var http2errClosedResponseBody …
func (b http2transportResponseBody) Close() error { … }
func (rl *http2clientConnReadLoop) processData(f *http2DataFrame) error { … }
func (rl *http2clientConnReadLoop) endStream(cs *http2clientStream) { … }
func (rl *http2clientConnReadLoop) endStreamError(cs *http2clientStream, err error) { … }
func (rl *http2clientConnReadLoop) streamByID(id uint32) *http2clientStream { … }
func (cs *http2clientStream) copyTrailers() { … }
func (rl *http2clientConnReadLoop) processGoAway(f *http2GoAwayFrame) error { … }
func (rl *http2clientConnReadLoop) processSettings(f *http2SettingsFrame) error { … }
func (rl *http2clientConnReadLoop) processSettingsNoWrite(f *http2SettingsFrame) error { … }
func (rl *http2clientConnReadLoop) processWindowUpdate(f *http2WindowUpdateFrame) error { … }
func (rl *http2clientConnReadLoop) processResetStream(f *http2RSTStreamFrame) error { … }
func (cc *http2ClientConn) Ping(ctx context.Context) error { … }
func (rl *http2clientConnReadLoop) processPing(f *http2PingFrame) error { … }
func (rl *http2clientConnReadLoop) processPushPromise(f *http2PushPromiseFrame) error { … }
func (cc *http2ClientConn) writeStreamReset(streamID uint32, code http2ErrCode, err error) { … }
var http2errResponseHeaderListSize …
var http2errRequestHeaderListSize …
func (cc *http2ClientConn) logf(format string, args ...interface{ … }
func (cc *http2ClientConn) vlogf(format string, args ...interface{ … }
func (t *http2Transport) vlogf(format string, args ...interface{ … }
func (t *http2Transport) logf(format string, args ...interface{ … }
var http2noBody …
type http2noBodyReader …
func (http2noBodyReader) Close() error { … }
func (http2noBodyReader) Read([]byte) (int, error) { … }
type http2missingBody …
func (http2missingBody) Close() error { … }
func (http2missingBody) Read([]byte) (int, error) { … }
func http2strSliceContains(ss []string, s string) bool { … }
type http2erringRoundTripper …
func (rt http2erringRoundTripper) RoundTripErr() error { … }
func (rt http2erringRoundTripper) RoundTrip(*Request) (*Response, error) { … }
type http2gzipReader …
func (gz *http2gzipReader) Read(p []byte) (n int, err error) { … }
func (gz *http2gzipReader) Close() error { … }
type http2errorReader …
func (r http2errorReader) Read(p []byte) (int, error) { … }
func http2isConnectionCloseRequest(req *Request) bool { … }
func http2registerHTTPSProtocol(t *Transport, rt http2noDialH2RoundTripper) (err error) { … }
type http2noDialH2RoundTripper …
func (rt http2noDialH2RoundTripper) RoundTrip(req *Request) (*Response, error) { … }
func (t *http2Transport) idleConnTimeout() time.Duration { … }
func http2traceGetConn(req *Request, hostPort string) { … }
func http2traceGotConn(req *Request, cc *http2ClientConn, reused bool) { … }
func http2traceWroteHeaders(trace *httptrace.ClientTrace) { … }
func http2traceGot100Continue(trace *httptrace.ClientTrace) { … }
func http2traceWait100Continue(trace *httptrace.ClientTrace) { … }
func http2traceWroteRequest(trace *httptrace.ClientTrace, err error) { … }
func http2traceFirstResponseByte(trace *httptrace.ClientTrace) { … }
func http2traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { … }
func http2traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) { … }
func http2traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { … }
func (t *http2Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { … }
type http2writeFramer …
type http2writeContext …
func http2writeEndsStream(w http2writeFramer) bool { … }
type http2flushFrameWriter …
func (http2flushFrameWriter) writeFrame(ctx http2writeContext) error { … }
func (http2flushFrameWriter) staysWithinBuffer(max int) bool { … }
type http2writeSettings …
func (s http2writeSettings) staysWithinBuffer(max int) bool { … }
func (s http2writeSettings) writeFrame(ctx http2writeContext) error { … }
type http2writeGoAway …
func (p *http2writeGoAway) writeFrame(ctx http2writeContext) error { … }
func (*http2writeGoAway) staysWithinBuffer(max int) bool { … }
type http2writeData …
func (w *http2writeData) String() string { … }
func (w *http2writeData) writeFrame(ctx http2writeContext) error { … }
func (w *http2writeData) staysWithinBuffer(max int) bool { … }
type http2handlerPanicRST …
func (hp http2handlerPanicRST) writeFrame(ctx http2writeContext) error { … }
func (hp http2handlerPanicRST) staysWithinBuffer(max int) bool { … }
func (se http2StreamError) writeFrame(ctx http2writeContext) error { … }
func (se http2StreamError) staysWithinBuffer(max int) bool { … }
type http2writePingAck …
func (w http2writePingAck) writeFrame(ctx http2writeContext) error { … }
func (w http2writePingAck) staysWithinBuffer(max int) bool { … }
type http2writeSettingsAck …
func (http2writeSettingsAck) writeFrame(ctx http2writeContext) error { … }
func (http2writeSettingsAck) staysWithinBuffer(max int) bool { … }
func http2splitHeaderBlock(ctx http2writeContext, headerBlock []byte, fn func(ctx http2writeContext, frag []byte, firstFrag, lastFrag bool) error) error { … }
type http2writeResHeaders …
func http2encKV(enc *hpack.Encoder, k, v string) { … }
func (w *http2writeResHeaders) staysWithinBuffer(max int) bool { … }
func (w *http2writeResHeaders) writeFrame(ctx http2writeContext) error { … }
func (w *http2writeResHeaders) writeHeaderBlock(ctx http2writeContext, frag []byte, firstFrag, lastFrag bool) error { … }
type http2writePushPromise …
func (w *http2writePushPromise) staysWithinBuffer(max int) bool { … }
func (w *http2writePushPromise) writeFrame(ctx http2writeContext) error { … }
func (w *http2writePushPromise) writeHeaderBlock(ctx http2writeContext, frag []byte, firstFrag, lastFrag bool) error { … }
type http2write100ContinueHeadersFrame …
func (w http2write100ContinueHeadersFrame) writeFrame(ctx http2writeContext) error { … }
func (w http2write100ContinueHeadersFrame) staysWithinBuffer(max int) bool { … }
type http2writeWindowUpdate …
func (wu http2writeWindowUpdate) staysWithinBuffer(max int) bool { … }
func (wu http2writeWindowUpdate) writeFrame(ctx http2writeContext) error { … }
func http2encodeHeaders(enc *hpack.Encoder, h Header, keys []string) { … }
type http2WriteScheduler …
type http2OpenStreamOptions …
type http2FrameWriteRequest …
func (wr http2FrameWriteRequest) StreamID() uint32 { … }
func (wr http2FrameWriteRequest) isControl() bool { … }
func (wr http2FrameWriteRequest) DataSize() int { … }
func (wr http2FrameWriteRequest) Consume(n int32) (http2FrameWriteRequest, http2FrameWriteRequest, int) { … }
func (wr http2FrameWriteRequest) String() string { … }
func (wr *http2FrameWriteRequest) replyToWriter(err error) { … }
type http2writeQueue …
func (q *http2writeQueue) empty() bool { … }
func (q *http2writeQueue) push(wr http2FrameWriteRequest) { … }
func (q *http2writeQueue) shift() http2FrameWriteRequest { … }
func (q *http2writeQueue) consume(n int32) (http2FrameWriteRequest, bool) { … }
type http2writeQueuePool …
func (p *http2writeQueuePool) put(q *http2writeQueue) { … }
func (p *http2writeQueuePool) get() *http2writeQueue { … }
const http2priorityDefaultWeight …
type http2PriorityWriteSchedulerConfig …
func http2NewPriorityWriteScheduler(cfg *http2PriorityWriteSchedulerConfig) http2WriteScheduler { … }
type http2priorityNodeState …
const http2priorityNodeOpen …
const http2priorityNodeClosed …
const http2priorityNodeIdle …
type http2priorityNode …
func (n *http2priorityNode) setParent(parent *http2priorityNode) { … }
func (n *http2priorityNode) addBytes(b int64) { … }
func (n *http2priorityNode) walkReadyInOrder(openParent bool, tmp *[]*http2priorityNode, f func(*http2priorityNode, bool) bool) bool { … }
type http2sortPriorityNodeSiblings …
func (z http2sortPriorityNodeSiblings) Len() int { … }
func (z http2sortPriorityNodeSiblings) Swap(i, k int) { … }
func (z http2sortPriorityNodeSiblings) Less(i, k int) bool { … }
type http2priorityWriteScheduler …
func (ws *http2priorityWriteScheduler) OpenStream(streamID uint32, options http2OpenStreamOptions) { … }
func (ws *http2priorityWriteScheduler) CloseStream(streamID uint32) { … }
func (ws *http2priorityWriteScheduler) AdjustStream(streamID uint32, priority http2PriorityParam) { … }
func (ws *http2priorityWriteScheduler) Push(wr http2FrameWriteRequest) { … }
func (ws *http2priorityWriteScheduler) Pop() (wr http2FrameWriteRequest, ok bool) { … }
func (ws *http2priorityWriteScheduler) addClosedOrIdleNode(list *[]*http2priorityNode, maxSize int, n *http2priorityNode) { … }
func (ws *http2priorityWriteScheduler) removeNode(n *http2priorityNode) { … }
func http2NewRandomWriteScheduler() http2WriteScheduler { … }
type http2randomWriteScheduler …
func (ws *http2randomWriteScheduler) OpenStream(streamID uint32, options http2OpenStreamOptions) { … }
func (ws *http2randomWriteScheduler) CloseStream(streamID uint32) { … }
func (ws *http2randomWriteScheduler) AdjustStream(streamID uint32, priority http2PriorityParam) { … }
func (ws *http2randomWriteScheduler) Push(wr http2FrameWriteRequest) { … }
func (ws *http2randomWriteScheduler) Pop() (http2FrameWriteRequest, bool) { … }
type http2roundRobinWriteScheduler …
func http2newRoundRobinWriteScheduler() http2WriteScheduler { … }
func (ws *http2roundRobinWriteScheduler) OpenStream(streamID uint32, options http2OpenStreamOptions) { … }
func (ws *http2roundRobinWriteScheduler) CloseStream(streamID uint32) { … }
func (ws *http2roundRobinWriteScheduler) AdjustStream(streamID uint32, priority http2PriorityParam) { … }
func (ws *http2roundRobinWriteScheduler) Push(wr http2FrameWriteRequest) { … }
func (ws *http2roundRobinWriteScheduler) Pop() (http2FrameWriteRequest, bool) { … }