SYMBOL INDEX (892 symbols across 136 files) FILE: admin/api/api.go function writeJSON (line 10) | func writeJSON(w http.ResponseWriter, r *http.Request, v interface{}) { FILE: admin/api/config.go type ConfigHandler (line 5) | type ConfigHandler struct method ServeHTTP (line 9) | func (h *ConfigHandler) ServeHTTP(w http.ResponseWriter, r *http.Reque... FILE: admin/api/manual.go type ManualHandler (line 12) | type ManualHandler struct method ServeHTTP (line 21) | func (h *ManualHandler) ServeHTTP(w http.ResponseWriter, r *http.Reque... type manual (line 16) | type manual struct FILE: admin/api/paths.go type ManualPathsHandler (line 11) | type ManualPathsHandler struct method ServeHTTP (line 15) | func (h *ManualPathsHandler) ServeHTTP(w http.ResponseWriter, r *http.... FILE: admin/api/routes.go type RoutesHandler (line 12) | type RoutesHandler struct method ServeHTTP (line 28) | func (h *RoutesHandler) ServeHTTP(w http.ResponseWriter, r *http.Reque... type apiRoute (line 14) | type apiRoute struct FILE: admin/api/version.go type VersionHandler (line 8) | type VersionHandler struct method ServeHTTP (line 12) | func (h *VersionHandler) ServeHTTP(w http.ResponseWriter, r *http.Requ... FILE: admin/server.go type Server (line 16) | type Server struct method ListenAndServe (line 26) | func (s *Server) ListenAndServe(l config.Listen, tlscfg *tls.Config) e... method handler (line 30) | func (s *Server) handler() http.Handler { function handleHealth (line 76) | func handleHealth(w http.ResponseWriter, r *http.Request) { function forbidden (line 80) | func forbidden(w http.ResponseWriter, r *http.Request) { FILE: admin/server_test.go function TestAdminServerAccess (line 11) | func TestAdminServerAccess(t *testing.T) { FILE: admin/ui/manual.go type ManualHandler (line 8) | type ManualHandler struct method ServeHTTP (line 16) | func (h *ManualHandler) ServeHTTP(w http.ResponseWriter, r *http.Reque... FILE: admin/ui/route.go type RoutesHandler (line 11) | type RoutesHandler struct method ServeHTTP (line 18) | func (h *RoutesHandler) ServeHTTP(w http.ResponseWriter, _ *http.Reque... FILE: assert/assert.go function Equal (line 13) | func Equal(t *testing.T) func(got, want interface{}) { function EqualDepth (line 17) | func EqualDepth(t *testing.T, calldepth int, desc string) func(got, want... FILE: auth/auth.go type AuthScheme (line 10) | type AuthScheme interface function LoadAuthSchemes (line 14) | func LoadAuthSchemes(cfg map[string]config.AuthScheme) (map[string]AuthS... FILE: auth/auth_test.go function TestLoadAuthSchemes (line 9) | func TestLoadAuthSchemes(t *testing.T) { FILE: auth/basic.go type basic (line 15) | type basic struct method Authorized (line 77) | func (b *basic) Authorized(request *http.Request, response http.Respon... function newBasicAuth (line 20) | func newBasicAuth(cfg config.BasicAuth) (AuthScheme, error) { FILE: auth/basic_test.go type responseWriter (line 17) | type responseWriter struct method Header (line 23) | func (rw *responseWriter) Header() http.Header { method Write (line 30) | func (rw *responseWriter) Write(b []byte) (int, error) { method WriteHeader (line 35) | func (rw *responseWriter) WriteHeader(statusCode int) { function createBasicAuthFile (line 39) | func createBasicAuthFile(contents string, t *testing.T) (string, error) { function createBasicAuth (line 53) | func createBasicAuth(user string, password string, t *testing.T) (AuthSc... function TestNewBasicAuth (line 73) | func TestNewBasicAuth(t *testing.T) { function TestBasic_Authorised (line 108) | func TestBasic_Authorised(t *testing.T) { function TestBasic_Authorised_should_fail_without_htpasswd_file (line 171) | func TestBasic_Authorised_should_fail_without_htpasswd_file(t *testing.T) { function TestBasic_Authorized_should_set_www_realm_header (line 213) | func TestBasic_Authorized_should_set_www_realm_header(t *testing.T) { FILE: bgp/bgp_nonwindows.go constant denyAllNeighbors (line 37) | denyAllNeighbors = "deny-all-neighbors" constant matchAnyPeer (line 38) | matchAnyPeer = "match-any-peer" constant globalTable (line 39) | globalTable = "global" constant rejectAll (line 40) | rejectAll = "reject-all" type BGPHandler (line 43) | type BGPHandler struct method Start (line 106) | func (bgph *BGPHandler) Start() error { method startBGP (line 168) | func (bgph *BGPHandler) startBGP(ctx context.Context) error { method setPolicies (line 179) | func (bgph *BGPHandler) setPolicies() error { method addNeighbors (line 229) | func (bgph *BGPHandler) addNeighbors(ctx context.Context, peers []conf... method AddRoutes (line 275) | func (bgph *BGPHandler) AddRoutes(ctx context.Context, routes []string... method DeleteRoutes (line 320) | func (bgph *BGPHandler) DeleteRoutes(ctx context.Context, routes []str... function NewBGPHandler (line 49) | func NewBGPHandler(config *config.BGP) (*BGPHandler, error) { function ValidateConfig (line 361) | func ValidateConfig(config *config.BGP) error { FILE: bgp/bgp_nonwindows_test.go function TestBGPHandler (line 18) | func TestBGPHandler(t *testing.T) { type ribEntry (line 130) | type ribEntry struct type gobpgclient (line 149) | type gobpgclient struct method globalRib (line 154) | func (gc *gobpgclient) globalRib(t *testing.T) (map[string][]ribEntry,... type gobgpserver (line 168) | type gobgpserver struct method start (line 173) | func (gs *gobgpserver) start() error { method stop (line 184) | func (gs *gobgpserver) stop() error { FILE: bgp/bgp_windows.go type BGPHandler (line 8) | type BGPHandler struct method Start (line 16) | func (bgph *BGPHandler) Start() error { function NewBGPHandler (line 12) | func NewBGPHandler(config *config.BGP) (*BGPHandler, error) { function ValidateConfig (line 20) | func ValidateConfig(config *config.BGP) error { FILE: bgp/logger.go type bgpLogger (line 14) | type bgpLogger struct method Panic (line 16) | func (l bgpLogger) Panic(msg string, fields bgplog.Fields) { method Fatal (line 20) | func (l bgpLogger) Fatal(msg string, fields bgplog.Fields) { method Error (line 24) | func (l bgpLogger) Error(msg string, fields bgplog.Fields) { method Warn (line 28) | func (l bgpLogger) Warn(msg string, fields bgplog.Fields) { method Info (line 32) | func (l bgpLogger) Info(msg string, fields bgplog.Fields) { method Debug (line 36) | func (l bgpLogger) Debug(msg string, fields bgplog.Fields) { method SetLevel (line 40) | func (l bgpLogger) SetLevel(level bgplog.LogLevel) { method GetLevel (line 44) | func (l bgpLogger) GetLevel() bgplog.LogLevel { function convertMsgFields (line 68) | func convertMsgFields(level, msg string, fields bgplog.Fields) string { FILE: cert/consul_source.go type ConsulSource (line 23) | type ConsulSource struct method LoadClientCAs (line 55) | func (s ConsulSource) LoadClientCAs() (*x509.CertPool, error) { method Certificates (line 77) | func (s ConsulSource) Certificates() chan []tls.Certificate { function parseConsulURL (line 29) | func parseConsulURL(rawurl string) (config *api.Config, key string, err ... function watchKV (line 110) | func watchKV(client *api.Client, key string, pemBlocks chan map[string][... function getCerts (line 130) | func getCerts(client *api.Client, key string, waitIndex uint64) (pemBloc... FILE: cert/consul_source_test.go function TestParseConsulURL (line 10) | func TestParseConsulURL(t *testing.T) { FILE: cert/file_source.go type FileSource (line 17) | type FileSource struct method LoadClientCAs (line 24) | func (s FileSource) LoadClientCAs() (*x509.CertPool, error) { method Certificates (line 34) | func (s FileSource) Certificates() chan []tls.Certificate { function loadX509KeyPair (line 41) | func loadX509KeyPair(certFile, keyFile string) tls.Certificate { FILE: cert/http_source.go type HTTPSource (line 17) | type HTTPSource struct method LoadClientCAs (line 24) | func (s HTTPSource) LoadClientCAs() (*x509.CertPool, error) { method Certificates (line 28) | func (s HTTPSource) Certificates() chan []tls.Certificate { FILE: cert/load.go constant MaxSize (line 21) | MaxSize = 1 << 20 function loadURL (line 23) | func loadURL(listURL string) (pemBlocks map[string][]byte, err error) { function loadPath (line 68) | func loadPath(root string) (pemBlocks map[string][]byte, err error) { function loadCertificates (line 109) | func loadCertificates(pemBlocks map[string][]byte) ([]tls.Certificate, e... function base (line 161) | func base(rawurl string) (string, error) { function replaceSuffix (line 177) | func replaceSuffix(s string, oldSuffix, newSuffix string) string { function newCertPool (line 183) | func newCertPool(path string, caUpgradeCN string, loadFn func(path strin... function upgradeCACertificate (line 211) | func upgradeCACertificate(cert *x509.Certificate, caUpgradeCN string) { FILE: cert/load_test.go function TestBase (line 9) | func TestBase(t *testing.T) { function TestReplaceSuffix (line 36) | func TestReplaceSuffix(t *testing.T) { function TestUpgradeCACertificate (line 42) | func TestUpgradeCACertificate(t *testing.T) { FILE: cert/path_source.go constant DefaultCertPath (line 11) | DefaultCertPath = "cert" constant DefaultClientCAPath (line 12) | DefaultClientCAPath = "clientca" type PathSource (line 15) | type PathSource struct method LoadClientCAs (line 23) | func (s PathSource) LoadClientCAs() (*x509.CertPool, error) { method Certificates (line 28) | func (s PathSource) Certificates() chan []tls.Certificate { function makePath (line 35) | func makePath(parent, child, defaultChild string) string { FILE: cert/source.go type Source (line 13) | type Source interface type Issuer (line 27) | type Issuer interface function NewSource (line 34) | func NewSource(cfg config.CertSource) (Source, error) { function TLSConfig (line 95) | func TLSConfig(src Source, strictMatch bool, minVersion, maxVersion uint... FILE: cert/source_test.go function TestTLSConfig (line 33) | func TestTLSConfig(t *testing.T) { function TestNewSource (line 73) | func TestNewSource(t *testing.T) { type StaticSource (line 169) | type StaticSource struct method Certificates (line 174) | func (s StaticSource) Certificates() chan []tls.Certificate { method LoadClientCAs (line 181) | func (s StaticSource) LoadClientCAs() (*x509.CertPool, error) { function TestStaticSource (line 185) | func TestStaticSource(t *testing.T) { function TestFileSource (line 194) | func TestFileSource(t *testing.T) { function TestPathSource (line 202) | func TestPathSource(t *testing.T) { function TestHTTPSource (line 210) | func TestHTTPSource(t *testing.T) { function TestConsulSource (line 224) | func TestConsulSource(t *testing.T) { function vaultServer (line 305) | func vaultServer(t *testing.T, addr, rootToken string) (*exec.Cmd, *vaul... function makeToken (line 374) | func makeToken(t *testing.T, c *vaultapi.Client, wrapTTL string, req *va... function TestVaultSource (line 433) | func TestVaultSource(t *testing.T) { function TestVaultPKISource (line 492) | func TestVaultPKISource(t *testing.T) { function testSource (line 562) | func testSource(t *testing.T, source Source, rootCAs *x509.CertPool, sle... function roundtrip (line 623) | func roundtrip(serverName string, srvConfig *tls.Config, client *http.Cl... function http11Client (line 653) | func http11Client(rootCAs *x509.CertPool) *http.Client { function http20Client (line 665) | func http20Client(rootCAs *x509.CertPool) (*http.Client, error) { function writeFile (line 677) | func writeFile(filename string, data []byte) { function makeCertPool (line 683) | func makeCertPool(x ...[]byte) *x509.CertPool { function saveCert (line 694) | func saveCert(dir, host string, certPEM, keyPEM []byte) (certFile, keyFi... function makePEM (line 703) | func makePEM(host string, validFor time.Duration) (certPEM, keyPEM []byt... function makeCert (line 735) | func makeCert(host string, validFor time.Duration) tls.Certificate { function waitFor (line 744) | func waitFor(timeout time.Duration, up func() bool) bool { FILE: cert/store.go type Store (line 14) | type Store struct method SetCertificates (line 26) | func (s *Store) SetCertificates(certs []tls.Certificate) { method certstore (line 37) | func (s *Store) certstore() certstore { function NewStore (line 19) | func NewStore() *Store { function getCertificate (line 43) | func getCertificate(cs certstore, clientHello *tls.ClientHelloInfo, stri... type certstore (line 81) | type certstore struct method BuildNameToCertificate (line 89) | func (c *certstore) BuildNameToCertificate() { FILE: cert/store_test.go function TestGetCertificate (line 11) | func TestGetCertificate(t *testing.T) { FILE: cert/vault_client.go type vaultClient (line 18) | type vaultClient struct method Get (line 36) | func (c *vaultClient) Get() (*api.Client, error) { method keepTokenAlive (line 123) | func (c *vaultClient) keepTokenAlive() { function NewVaultClient (line 28) | func NewVaultClient(fetchVaultToken string) *vaultClient { function getVaultToken (line 179) | func getVaultToken(c string) string { FILE: cert/vault_pki_source.go type VaultPKISource (line 21) | type VaultPKISource struct method LoadClientCAs (line 45) | func (s *VaultPKISource) LoadClientCAs() (*x509.CertPool, error) { method Certificates (line 53) | func (s *VaultPKISource) Certificates() chan []tls.Certificate { method Issue (line 57) | func (s *VaultPKISource) Issue(commonName string) (*tls.Certificate, e... method formatSerial (line 137) | func (*VaultPKISource) formatSerial(sn *big.Int) string { function NewVaultPKISource (line 38) | func NewVaultPKISource() *VaultPKISource { FILE: cert/vault_source.go type VaultSource (line 23) | type VaultSource struct method LoadClientCAs (line 31) | func (s *VaultSource) LoadClientCAs() (*x509.CertPool, error) { method Certificates (line 38) | func (s *VaultSource) Certificates() chan []tls.Certificate { method load (line 44) | func (s *VaultSource) load(path string) (pemBlocks map[string][]byte, ... method addPrefixToVKVPath (line 131) | func (s *VaultSource) addPrefixToVKVPath(p, mountPath, apiPrefix strin... method isKVv2 (line 136) | func (s *VaultSource) isKVv2(path string, client *api.Client) (string,... method kvPreflightVersionRequest (line 145) | func (s *VaultSource) kvPreflightVersionRequest(client *api.Client, pa... FILE: cert/watch.go function watch (line 11) | func watch(ch chan []tls.Certificate, refresh time.Duration, path string... FILE: config/config.go type Config (line 9) | type Config struct type CertSource (line 25) | type CertSource struct type Listen (line 37) | type Listen struct type Source (line 53) | type Source struct type RoutingTable (line 61) | type RoutingTable struct type UI (line 65) | type UI struct type Proxy (line 73) | type Proxy struct type STSHeader (line 99) | type STSHeader struct type Runtime (line 105) | type Runtime struct type Circonus (line 110) | type Circonus struct type Prometheus (line 119) | type Prometheus struct type Log (line 125) | type Log struct type Metrics (line 132) | type Metrics struct type Registry (line 146) | type Registry struct type Static (line 156) | type Static struct type File (line 161) | type File struct type Consul (line 166) | type Consul struct type Custom (line 191) | type Custom struct type AuthScheme (line 202) | type AuthScheme struct type BasicAuth (line 208) | type BasicAuth struct type ConsulTlS (line 215) | type ConsulTlS struct type BGP (line 223) | type BGP struct type BGPPeer (line 240) | type BGPPeer struct FILE: config/flagset.go type stringSliceValue (line 13) | type stringSliceValue method Set (line 20) | func (v *stringSliceValue) Set(s string) error { method Get (line 32) | func (v *stringSliceValue) Get() interface{} { return []string(*v) } method String (line 33) | func (v *stringSliceValue) String() string { return strings.Join(*v,... function newStringSliceValue (line 15) | func newStringSliceValue(val []string, p *[]string) *stringSliceValue { type floatSliceValue (line 35) | type floatSliceValue method String (line 42) | func (f *floatSliceValue) String() string { method Set (line 50) | func (f *floatSliceValue) Set(s string) error { function newFloatSliceValue (line 37) | func newFloatSliceValue(val []float64, p *[]float64) *floatSliceValue { type FlagSet (line 67) | type FlagSet struct method IsSet (line 79) | func (f *FlagSet) IsSet(name string) bool { method StringSliceVar (line 83) | func (f *FlagSet) StringSliceVar(p *[]string, name string, value []str... method FloatSliceVar (line 87) | func (f *FlagSet) FloatSliceVar(p *[]float64, name string, value []flo... method ParseFlags (line 95) | func (f *FlagSet) ParseFlags(args, environ, prefixes []string, p *prop... function NewFlagSet (line 72) | func NewFlagSet(name string, errorHandling flag.ErrorHandling) *FlagSet { FILE: config/flagset_test.go function TestParseFlags (line 11) | func TestParseFlags(t *testing.T) { function TestDefaults (line 90) | func TestDefaults(t *testing.T) { FILE: config/kvslice.go function parseKVSlice (line 20) | func parseKVSlice(in string) ([]map[string]string, error) { type itemType (line 126) | type itemType method String (line 136) | func (t itemType) String() string { constant itemText (line 129) | itemText itemType = "TEXT" constant itemEqual (line 130) | itemEqual itemType = "EQUAL" constant itemSemicolon (line 131) | itemSemicolon itemType = "SEMICOLON" constant itemComma (line 132) | itemComma itemType = "COMMA" constant itemError (line 133) | itemError itemType = "ERROR" type state (line 140) | type state constant stateStart (line 145) | stateStart state = "start" constant stateText (line 146) | stateText state = "text" constant stateQText (line 147) | stateQText state = "qtext" constant stateQTextEnd (line 148) | stateQTextEnd state = "qtextend" constant stateQTextEsc (line 149) | stateQTextEsc state = "qtextesc" constant stateFirstKey (line 152) | stateFirstKey state = "first-key" constant stateKey (line 153) | stateKey state = "key" constant stateEqual (line 154) | stateEqual state = "equal" constant stateVal (line 155) | stateVal state = "val" constant stateAfterFirstKey (line 156) | stateAfterFirstKey state = "equal-comma-semicolon" function lex (line 159) | func lex(s []rune) (itemType, string, int) { FILE: config/kvslice_test.go function TestParseKVSlice (line 8) | func TestParseKVSlice(t *testing.T) { FILE: config/load.go function loadCiphers (line 22) | func loadCiphers() { function Load (line 32) | func Load(args, environ []string) (cfg *Config, err error) { function parse (line 61) | func parse(args []string) (cmdline []string, path string, version bool, ... function load (line 116) | func load(cmdline, environ, envprefix []string, props *properties.Proper... function parseScheme (line 386) | func parseScheme(s string) (scheme, addr string) { function parseListeners (line 404) | func parseListeners(cfgs string, cs map[string]CertSource, readTimeout, ... function parseListen (line 416) | func parseListen(cfg map[string]string, cs map[string]CertSource, readTi... function parseTLSVersion (line 538) | func parseTLSVersion(s string) (uint16, error) { function parseTLSCiphers (line 546) | func parseTLSCiphers(s string) ([]uint16, error) { function parseUint16 (line 563) | func parseUint16(s string) (uint16, error) { function parseCertSources (line 571) | func parseCertSources(cfgs string) (cs map[string]CertSource, err error) { function parseCertSource (line 587) | func parseCertSource(cfg map[string]string) (c CertSource, err error) { function parseAuthSchemes (line 647) | func parseAuthSchemes(cfgs string) (as map[string]AuthScheme, err error) { function parseAuthScheme (line 663) | func parseAuthScheme(cfg map[string]string) (a AuthScheme, err error) { function parseBGPPeers (line 716) | func parseBGPPeers(cfgs string) ([]BGPPeer, error) { function parseBGPPeer (line 732) | func parseBGPPeer(cfg map[string]string) (BGPPeer, error) { FILE: config/load_test.go function TestLoad (line 19) | func TestLoad(t *testing.T) { FILE: config/localip.go function LocalIP (line 9) | func LocalIP() (net.IP, error) { function LocalIPString (line 24) | func LocalIPString() string { FILE: exit/listen.go function Listen (line 22) | func Listen(fn func(os.Signal)) { function Exit (line 61) | func Exit(code int) { function Fatal (line 71) | func Fatal(v ...interface{}) { function Fatalf (line 77) | func Fatalf(format string, v ...interface{}) { function Wait (line 83) | func Wait() { FILE: exit/listen_test.go function TestExit (line 11) | func TestExit(t *testing.T) { FILE: logger/level_writer.go type LevelWriter (line 13) | type LevelWriter struct method Write (line 32) | func (w *LevelWriter) Write(b []byte) (int, error) { method SetLevel (line 52) | func (w *LevelWriter) SetLevel(s string) bool { method Level (line 80) | func (w *LevelWriter) Level() string { function NewLevelWriter (line 24) | func NewLevelWriter(w io.Writer, level, prefix string) *LevelWriter { FILE: logger/level_writer_test.go function TestLevelWriter (line 10) | func TestLevelWriter(t *testing.T) { FILE: logger/logger.go constant CommonFormat (line 53) | CommonFormat = `$remote_host - - [$time_common] "$request" $response_s... constant CombinedFormat (line 54) | CombinedFormat = `$remote_host - - [$time_common] "$request" $response_s... type Event (line 58) | type Event struct type Logger (line 91) | type Logger interface function New (line 98) | func New(w io.Writer, format string) (Logger, error) { type noopLogger (line 112) | type noopLogger struct method Log (line 114) | func (l *noopLogger) Log(*Event) {} type logger (line 116) | type logger struct method Log (line 135) | func (l *logger) Log(e *Event) { constant bufSize (line 124) | bufSize = 1024 FILE: logger/logger_test.go function TestParse (line 15) | func TestParse(t *testing.T) { function TestLog (line 54) | func TestLog(t *testing.T) { function TestAtoi (line 145) | func TestAtoi(t *testing.T) { function BenchmarkLog (line 177) | func BenchmarkLog(b *testing.B) { function mustParse (line 251) | func mustParse(s string) *url.URL { FILE: logger/pattern.go function init (line 11) | func init() { type pattern (line 22) | type pattern method write (line 24) | func (p pattern) write(b *bytes.Buffer, e *Event) { type field (line 35) | type field function hostport (line 284) | func hostport(s string) (host, port string) { function atoi (line 294) | func atoi(b *bytes.Buffer, i int64, pad int) { function parse (line 333) | func parse(format string, fields map[string]field) (p pattern, err error) { type itemType (line 372) | type itemType method String (line 380) | func (t itemType) String() string { constant itemText (line 375) | itemText itemType = iota constant itemField (line 376) | itemField constant itemHeader (line 377) | itemHeader type state (line 392) | type state constant stateStart (line 395) | stateStart state = iota constant stateText (line 396) | stateText constant stateDollar (line 397) | stateDollar constant stateField (line 398) | stateField constant stateDot (line 399) | stateDot constant stateHeader (line 400) | stateHeader function lex (line 403) | func lex(s []rune) (typ itemType, n int) { FILE: main.go function main (line 60) | func main() { function newGrpcProxy (line 164) | func newGrpcProxy(cfg *config.Config, tlscfg *tls.Config, statsHandler *... function newHTTPProxy (line 186) | func newHTTPProxy(cfg *config.Config, statsHandler *proxy.HttpStatsHandl... function lookupHostFn (line 244) | func lookupHostFn(cfg *config.Config, notFound gkm.Counter) func(string)... function lookupHostMatcher (line 257) | func lookupHostMatcher(cfg *config.Config) func(context.Context, string)... function makeTLSConfig (line 278) | func makeTLSConfig(l config.Listen) (*tls.Config, error) { function startAdmin (line 293) | func startAdmin(cfg *config.Config) { function startServers (line 316) | func startServers(cfg *config.Config, stats metrics.Provider) { function startBGP (line 506) | func startBGP(cfg *config.BGP) { function initRuntime (line 518) | func initRuntime(cfg *config.Config) { function initBackend (line 534) | func initBackend(cfg *config.Config) { function watchBackend (line 569) | func watchBackend(cfg *config.Config, first chan bool) { function watchNoRouteHTML (line 630) | func watchNoRouteHTML() { function logRoutes (line 646) | func logRoutes(t route.Table, last, next, format string) { function toJSON (line 685) | func toJSON(v interface{}) string { function unique (line 693) | func unique(strSlice []string) []string { function difference (line 706) | func difference(a, b []string) []string { function tableSchemes (line 720) | func tableSchemes(r route.Routes) []string { FILE: metrics/metrics.go type Provider (line 13) | type Provider interface type DeletableCounter (line 26) | type DeletableCounter interface type DeletableGauge (line 34) | type DeletableGauge interface type DeletableHistogram (line 41) | type DeletableHistogram interface function Initialize (line 47) | func Initialize(cfg *config.Metrics) (Provider, error) { FILE: metrics/names.go type Service (line 13) | type Service struct method String (line 38) | func (s Service) String() string { constant DefaultNames (line 22) | DefaultNames = "{{clean .Service}}.{{clean .Host}}.{{clean .Path}}.{{cle... constant DefaultPrefix (line 25) | DefaultPrefix = "{{clean .Hostname}}.{{clean .Exec}}" function init (line 30) | func init() { constant DotSeparator (line 42) | DotSeparator = "." constant PipeSeparator (line 43) | PipeSeparator = "|" constant RoutePrefix (line 44) | RoutePrefix = "route" function Flatten (line 46) | func Flatten(name string, labels []string, separator string) string { function Labels (line 53) | func Labels(labels, values []string, stringsprefix, fieldsep, recsep str... function parseNames (line 73) | func parseNames(tmpl string) (*template.Template, error) { function parsePrefix (line 92) | func parsePrefix(tmpl string) (string, error) { function clean (line 121) | func clean(s string) string { function TargetName (line 134) | func TargetName(service, host, path, target string) (string, error) { function TargetNameWith (line 161) | func TargetNameWith(name string, values []string) (string, error) { function isRouteMetric (line 182) | func isRouteMetric(name string) bool { return strings.HasPrefix(name, Ro... FILE: metrics/names_test.go function TestParsePrefix (line 8) | func TestParsePrefix(t *testing.T) { function TestTargetName (line 30) | func TestTargetName(t *testing.T) { FILE: metrics/provider_circonus.go constant serviceName (line 21) | serviceName = "fabio" function NewCirconusProvider (line 23) | func NewCirconusProvider(prefix string, circ config.Circonus, interval t... type CirconusProvider (line 71) | type CirconusProvider struct method metricName (line 76) | func (cp *CirconusProvider) metricName(name string) string { method NewCounter (line 80) | func (cp *CirconusProvider) NewCounter(name string, labels ...string) ... method NewGauge (line 88) | func (cp *CirconusProvider) NewGauge(name string, labels ...string) gk... method NewHistogram (line 96) | func (cp *CirconusProvider) NewHistogram(name string, labels ...string... type cgmCounter (line 104) | type cgmCounter struct method With (line 110) | func (c *cgmCounter) With(labelValues ...string) gkm.Counter { method Add (line 130) | func (c *cgmCounter) Add(delta float64) { type cgmGauge (line 134) | type cgmGauge struct method With (line 140) | func (g *cgmGauge) With(labelValues ...string) gkm.Gauge { method Set (line 160) | func (g *cgmGauge) Set(value float64) { method Add (line 164) | func (g *cgmGauge) Add(delta float64) { type cgmTimer (line 168) | type cgmTimer struct method With (line 174) | func (t *cgmTimer) With(labelValues ...string) gkm.Histogram { method Observe (line 194) | func (t *cgmTimer) Observe(value float64) { FILE: metrics/provider_circonus_test.go function TestAll (line 11) | func TestAll(t *testing.T) { FILE: metrics/provider_discard.go type DiscardProvider (line 8) | type DiscardProvider struct method NewCounter (line 10) | func (dp DiscardProvider) NewCounter(name string, labels ...string) gk... method NewGauge (line 14) | func (dp DiscardProvider) NewGauge(name string, labels ...string) gkm.... method NewHistogram (line 18) | func (dp DiscardProvider) NewHistogram(name string, labels ...string) ... FILE: metrics/provider_dogstatsd.go type DogstatsdProvider (line 14) | type DogstatsdProvider struct method NewCounter (line 18) | func (dp *DogstatsdProvider) NewCounter(name string, labels ...string)... method NewGauge (line 22) | func (dp *DogstatsdProvider) NewGauge(name string, labels ...string) g... method NewHistogram (line 26) | func (dp *DogstatsdProvider) NewHistogram(name string, labels ...strin... function NewDogstatsdProvider (line 30) | func NewDogstatsdProvider(prefix, addr string, interval time.Duration) (... type dogstatsdCounter (line 45) | type dogstatsdCounter struct method With (line 59) | func (dh *dogstatsdCounter) With(labelValues ...string) gkm.Counter { type dogstatsdGauge (line 48) | type dogstatsdGauge struct method With (line 63) | func (dh *dogstatsdGauge) With(labelValues ...string) gkm.Gauge { type dogstatsdHistogram (line 51) | type dogstatsdHistogram struct method Observe (line 55) | func (dh *dogstatsdHistogram) Observe(value float64) { method With (line 67) | func (dh *dogstatsdHistogram) With(labelValues ...string) gkm.Histogram { function correctReservedTagKeys (line 71) | func correctReservedTagKeys(labelValues []string) []string { function correctReservedTagKey (line 83) | func correctReservedTagKey(label string) string { FILE: metrics/provider_dogstatsd_test.go function TestDogstatsdProvider (line 12) | func TestDogstatsdProvider(t *testing.T) { FILE: metrics/provider_flat.go type flatProvider (line 12) | type flatProvider struct method NewCounter (line 16) | func (p *flatProvider) NewCounter(name string, labels ...string) gkm.C... method NewGauge (line 20) | func (p *flatProvider) NewGauge(name string, labels ...string) gkm.Gau... method NewHistogram (line 24) | func (p *flatProvider) NewHistogram(name string, labels ...string) gkm... type flatCounter (line 28) | type flatCounter struct method With (line 33) | func (c *flatCounter) With(labelValues ...string) gkm.Counter { method Add (line 37) | func (c *flatCounter) Add(v float64) { type flatGauge (line 42) | type flatGauge struct method Set (line 48) | func (g *flatGauge) Set(n float64) { method Add (line 53) | func (g *flatGauge) Add(delta float64) { method With (line 66) | func (g *flatGauge) With(labelValues ...string) gkm.Gauge { type flatHistogram (line 70) | type flatHistogram struct method Observe (line 74) | func (h *flatHistogram) Observe(t float64) { method With (line 77) | func (h *flatHistogram) With(labels ...string) gkm.Histogram { FILE: metrics/provider_graphite.go type GraphiteProvider (line 13) | type GraphiteProvider struct method NewCounter (line 18) | func (g *GraphiteProvider) NewCounter(name string, labels ...string) g... method NewGauge (line 29) | func (g *GraphiteProvider) NewGauge(name string, labels ...string) gkm... method NewHistogram (line 40) | func (g *GraphiteProvider) NewHistogram(name string, labels ...string)... function NewGraphiteProvider (line 53) | func NewGraphiteProvider(prefix, addr string, buckets int, interval time... type graphiteCounter (line 69) | type graphiteCounter struct method With (line 76) | func (c *graphiteCounter) With(labelValues ...string) gkm.Counter { type graphiteGauge (line 96) | type graphiteGauge struct method With (line 103) | func (g *graphiteGauge) With(labelValues ...string) gkm.Gauge { type graphiteHistogram (line 123) | type graphiteHistogram struct method With (line 130) | func (h *graphiteHistogram) With(labelValues ...string) gkm.Histogram { method Observe (line 150) | func (h *graphiteHistogram) Observe(value float64) { FILE: metrics/provider_label.go type labelProvider (line 11) | type labelProvider struct method NewCounter (line 15) | func (p *labelProvider) NewCounter(name string, labels ...string) gkm.... method NewGauge (line 19) | func (p *labelProvider) NewGauge(name string, labels ...string) gkm.Ga... method NewHistogram (line 23) | func (p *labelProvider) NewHistogram(name string, labels ...string) gk... type labelCounter (line 27) | type labelCounter struct method With (line 34) | func (c *labelCounter) With(labelValues ...string) gkm.Counter { method Inc (line 45) | func (c *labelCounter) Inc() { method Add (line 50) | func (c *labelCounter) Add(delta float64) { type labelGauge (line 55) | type labelGauge struct method With (line 62) | func (g *labelGauge) With(labelValues ...string) gkm.Gauge { method Set (line 72) | func (g *labelGauge) Set(n float64) { method Add (line 77) | func (g *labelGauge) Add(delta float64) { type labelHistogram (line 90) | type labelHistogram struct method With (line 96) | func (h *labelHistogram) With(labels ...string) gkm.Histogram { method Observe (line 104) | func (h *labelHistogram) Observe(t float64) { FILE: metrics/provider_multi.go type MultiProvider (line 6) | type MultiProvider struct method NewCounter (line 16) | func (mp *MultiProvider) NewCounter(name string, labels ...string) gkm... method NewGauge (line 26) | func (mp *MultiProvider) NewGauge(name string, labels ...string) gkm.G... method NewHistogram (line 34) | func (mp *MultiProvider) NewHistogram(name string, labels ...string) g... function NewMultiProvider (line 10) | func NewMultiProvider(p []Provider) *MultiProvider { type MultiCounter (line 43) | type MultiCounter struct method Add (line 47) | func (mc *MultiCounter) Add(v float64) { method With (line 53) | func (mc *MultiCounter) With(labels ...string) gkm.Counter { method DeleteLabelValues (line 62) | func (mc *MultiCounter) DeleteLabelValues(labelValues ...string) bool { type MultiGauge (line 75) | type MultiGauge struct method Set (line 79) | func (m *MultiGauge) Set(n float64) { method With (line 85) | func (m *MultiGauge) With(labels ...string) gkm.Gauge { method Add (line 93) | func (m *MultiGauge) Add(val float64) { method DeleteLabelValues (line 100) | func (m *MultiGauge) DeleteLabelValues(labelValues ...string) bool { type MultiHistogram (line 112) | type MultiHistogram struct method With (line 116) | func (m *MultiHistogram) With(labelValues ...string) gkm.Histogram { method Observe (line 124) | func (m *MultiHistogram) Observe(value float64) { method DeleteLabelValues (line 131) | func (m *MultiHistogram) DeleteLabelValues(labelValues ...string) bool { FILE: metrics/provider_prometheus.go type PromProvider (line 8) | type PromProvider struct method NewCounter (line 27) | func (p *PromProvider) NewCounter(name string, labels ...string) gkm.C... method NewGauge (line 35) | func (p *PromProvider) NewGauge(name string, labels ...string) gkm.Gau... method NewHistogram (line 43) | func (p *PromProvider) NewHistogram(name string, labels ...string) gkm... function NewPromProvider (line 13) | func NewPromProvider(namespace, subsystem string, buckets []float64) Pro... function makeLabels (line 59) | func makeLabels(lvs []string) promclient.Labels { type promCounter (line 68) | type promCounter struct method Add (line 73) | func (c *promCounter) Add(delta float64) { method With (line 77) | func (c *promCounter) With(labelValues ...string) gkm.Counter { method DeleteLabelValues (line 85) | func (c *promCounter) DeleteLabelValues(labelValues ...string) bool { type promGauge (line 90) | type promGauge struct method Set (line 95) | func (g *promGauge) Set(value float64) { method Add (line 99) | func (g *promGauge) Add(delta float64) { method With (line 103) | func (g *promGauge) With(labelValues ...string) gkm.Gauge { method DeleteLabelValues (line 111) | func (g *promGauge) DeleteLabelValues(labelValues ...string) bool { type promHistogram (line 116) | type promHistogram struct method Observe (line 121) | func (h *promHistogram) Observe(value float64) { method With (line 125) | func (h *promHistogram) With(labelValues ...string) gkm.Histogram { method DeleteLabelValues (line 133) | func (h *promHistogram) DeleteLabelValues(labelValues ...string) bool { FILE: metrics/provider_prometheus_test.go function TestPromProviderDeleteLabelValues (line 11) | func TestPromProviderDeleteLabelValues(t *testing.T) { function TestPromHistogramWithLabelValues (line 88) | func TestPromHistogramWithLabelValues(t *testing.T) { FILE: metrics/provider_statsd.go type StatsdProvider (line 14) | type StatsdProvider struct method NewCounter (line 35) | func (p *StatsdProvider) NewCounter(name string, labels ...string) gkm... method NewGauge (line 47) | func (p *StatsdProvider) NewGauge(name string, labels ...string) gkm.G... method NewHistogram (line 59) | func (p *StatsdProvider) NewHistogram(name string, labels ...string) g... function NewStatsdProvider (line 18) | func NewStatsdProvider(prefix, addr string, interval time.Duration) (*St... type statsdCounter (line 72) | type statsdCounter struct method With (line 79) | func (c *statsdCounter) With(labelValues ...string) gkm.Counter { type statsdGauge (line 99) | type statsdGauge struct method With (line 106) | func (g *statsdGauge) With(labelValues ...string) gkm.Gauge { type statsdHistogram (line 126) | type statsdHistogram struct method With (line 133) | func (h *statsdHistogram) With(labelValues ...string) gkm.Histogram { method Observe (line 153) | func (h *statsdHistogram) Observe(value float64) { FILE: metrics/provider_statsd_test.go function TestStatsdProvider (line 16) | func TestStatsdProvider(t *testing.T) { type statsdEntry (line 108) | type statsdEntry struct function parseStatsdMetrics (line 117) | func parseStatsdMetrics(data io.Reader, prefix string) map[string]statsd... FILE: noroute/store.go function init (line 9) | func init() { function GetHTML (line 14) | func GetHTML() string { function SetHTML (line 19) | func SetHTML(h string) { FILE: noroute/store_test.go function TestStoreSetGet (line 7) | func TestStoreSetGet(t *testing.T) { FILE: proxy/grpc_handler.go type gRPCServer (line 29) | type gRPCServer struct method Close (line 33) | func (s *gRPCServer) Close() error { method Shutdown (line 38) | func (s *gRPCServer) Shutdown(ctx context.Context) error { method Serve (line 43) | func (s *gRPCServer) Serve(lis net.Listener) error { function GetGRPCDirector (line 47) | func GetGRPCDirector(tlscfg *tls.Config, cfg *config.Config) func(ctx co... type GrpcProxyInterceptor (line 74) | type GrpcProxyInterceptor struct method Stream (line 95) | func (g GrpcProxyInterceptor) Stream(srv interface{}, stream grpc.Serv... method lookup (line 130) | func (g GrpcProxyInterceptor) lookup(ctx context.Context, fullMethodNa... method getDestinationHostFromMetadata (line 175) | func (g GrpcProxyInterceptor) getDestinationHostFromMetadata(md metada... type targetKey (line 80) | type targetKey struct type proxyStream (line 82) | type proxyStream struct method Context (line 87) | func (p proxyStream) Context() context.Context { function makeGRPCTargetKey (line 91) | func makeGRPCTargetKey(t *route.Target) string { type GrpcStatsHandler (line 184) | type GrpcStatsHandler struct method TagConn (line 194) | func (h *GrpcStatsHandler) TagConn(ctx context.Context, info *stats.Co... method TagRPC (line 198) | func (h *GrpcStatsHandler) TagRPC(ctx context.Context, info *stats.RPC... method HandleRPC (line 202) | func (h *GrpcStatsHandler) HandleRPC(ctx context.Context, rpc stats.RP... method HandleConn (line 220) | func (h *GrpcStatsHandler) HandleConn(ctx context.Context, conn stats.... type connCtxKey (line 191) | type connCtxKey struct type rpcCtxKey (line 192) | type rpcCtxKey struct type grpcConnectionPool (line 228) | type grpcConnectionPool struct method Get (line 250) | func (p *grpcConnectionPool) Get(ctx context.Context, target *route.Ta... method newConnection (line 262) | func (p *grpcConnectionPool) newConnection(target *route.Target) (*grp... method Set (line 290) | func (p *grpcConnectionPool) Set(target *route.Target, conn *grpc.Clie... method cleanup (line 297) | func (p *grpcConnectionPool) cleanup() { function newGrpcConnectionPool (line 236) | func newGrpcConnectionPool(tlscfg *tls.Config, cfg *config.Config) *grpc... function hasTarget (line 325) | func hasTarget(tKey string, table route.Table) bool { FILE: proxy/gzip/content_type_test.go function TestContentTypes (line 7) | func TestContentTypes(t *testing.T) { FILE: proxy/gzip/gzip_handler.go constant headerVary (line 23) | headerVary = "Vary" constant headerAccept (line 24) | headerAccept = "Accept" constant headerAcceptEncoding (line 25) | headerAcceptEncoding = "Accept-Encoding" constant headerContentEncoding (line 26) | headerContentEncoding = "Content-Encoding" constant headerContentType (line 27) | headerContentType = "Content-Type" constant headerContentLength (line 28) | headerContentLength = "Content-Length" constant encodingGzip (line 29) | encodingGzip = "gzip" function NewGzipHandler (line 41) | func NewGzipHandler(h http.Handler, contentTypes *regexp.Regexp) http.Ha... type GzipResponseWriter (line 55) | type GzipResponseWriter struct method WriteHeader (line 66) | func (grw *GzipResponseWriter) WriteHeader(code int) { method Write (line 82) | func (grw *GzipResponseWriter) Write(b []byte) (int, error) { method Close (line 93) | func (grw *GzipResponseWriter) Close() { method Hijack (line 100) | func (grw *GzipResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, ... function NewGzipResponseWriter (line 62) | func NewGzipResponseWriter(w http.ResponseWriter, contentTypes *regexp.R... function isCompressable (line 107) | func isCompressable(header http.Header, contentTypes *regexp.Regexp) bool { function acceptsGzip (line 115) | func acceptsGzip(r *http.Request) bool { FILE: proxy/gzip/gzip_handler_test.go function Test_GzipHandler_CompressableType (line 19) | func Test_GzipHandler_CompressableType(t *testing.T) { function Test_GzipHandler_NotCompressingTwice (line 48) | func Test_GzipHandler_NotCompressingTwice(t *testing.T) { function Test_GzipHandler_CompressableType_NoAccept (line 72) | func Test_GzipHandler_CompressableType_NoAccept(t *testing.T) { function Test_GzipHandler_NonCompressableType (line 92) | func Test_GzipHandler_NonCompressableType(t *testing.T) { function test_text_handler (line 112) | func test_text_handler() http.Handler { function test_binary_handler (line 120) | func test_binary_handler() http.Handler { function test_already_compressed_handler (line 127) | func test_already_compressed_handler() http.Handler { FILE: proxy/http_handler.go constant StatusClientClosedRequest (line 15) | StatusClientClosedRequest = 499 function newHTTPProxy (line 17) | func newHTTPProxy(target *url.URL, tr http.RoundTripper, flush time.Dura... function httpProxyErrorHandler (line 39) | func httpProxyErrorHandler(w http.ResponseWriter, r *http.Request, err e... FILE: proxy/http_headers.go function addResponseHeaders (line 15) | func addResponseHeaders(w http.ResponseWriter, r *http.Request, cfg conf... function addHeaders (line 45) | func addHeaders(r *http.Request, cfg config.Proxy, stripPath string) err... function uint16base16 (line 174) | func uint16base16(n uint16) string { function i32toa (line 185) | func i32toa(n int32) string { function scheme (line 214) | func scheme(r *http.Request) string { function localPort (line 246) | func localPort(r *http.Request) string { FILE: proxy/http_headers_test.go function TestAddHeaders (line 14) | func TestAddHeaders(t *testing.T) { function TestAddResponseHeaders (line 404) | func TestAddResponseHeaders(t *testing.T) { function TestLocalPort (line 461) | func TestLocalPort(t *testing.T) { function TestUint16Base16 (line 483) | func TestUint16Base16(t *testing.T) { function BenchmarkUint16Base16 (line 491) | func BenchmarkUint16Base16(b *testing.B) { FILE: proxy/http_integration_test.go constant globEnabled (line 32) | globEnabled = false constant globDisabled (line 33) | globDisabled = true constant legitHeader1 (line 40) | legitHeader1 = "Legit-Header1" constant legitHeader2 (line 41) | legitHeader2 = "Legit-Header2" function TestProxyProducesCorrectXForwardedSomethingHeader (line 44) | func TestProxyProducesCorrectXForwardedSomethingHeader(t *testing.T) { function TestProxyRequestIDHeader (line 84) | func TestProxyRequestIDHeader(t *testing.T) { function TestProxySTSHeader (line 109) | func TestProxySTSHeader(t *testing.T) { function TestProxyChecksHeaderForAccessRules (line 144) | func TestProxyChecksHeaderForAccessRules(t *testing.T) { function TestProxyNoRouteHTML (line 173) | func TestProxyNoRouteHTML(t *testing.T) { function TestProxyNoRouteStatus (line 188) | func TestProxyNoRouteStatus(t *testing.T) { function TestProxyStripsPath (line 202) | func TestProxyStripsPath(t *testing.T) { function TestProxyPrependsPath (line 230) | func TestProxyPrependsPath(t *testing.T) { function TestProxyHost (line 258) | func TestProxyHost(t *testing.T) { function TestHostRedirect (line 318) | func TestHostRedirect(t *testing.T) { function TestPathRedirect (line 357) | func TestPathRedirect(t *testing.T) { function TestProxyLogOutput (line 400) | func TestProxyLogOutput(t *testing.T) { function testProxyLogOutput (line 416) | func testProxyLogOutput(t *testing.T, bodySize int, cfg config.Proxy) { function TestProxyHTTPSUpstream (line 523) | func TestProxyHTTPSUpstream(t *testing.T) { type sniHandler (line 548) | type sniHandler struct method ServeHTTP (line 552) | func (s *sniHandler) ServeHTTP(writer http.ResponseWriter, request *ht... function TestProxyHTTPSTransport (line 559) | func TestProxyHTTPSTransport(t *testing.T) { function TestProxyHTTPSUpstreamSkipVerify (line 590) | func TestProxyHTTPSUpstreamSkipVerify(t *testing.T) { function TestProxyGzipHandler (line 617) | func TestProxyGzipHandler(t *testing.T) { function plainHandler (line 705) | func plainHandler(contentType string) http.HandlerFunc { function gzipHandler (line 712) | func gzipHandler(contentType string) http.HandlerFunc { function tlsInsecureConfig (line 724) | func tlsInsecureConfig() *tls.Config { function tlsClientConfig (line 728) | func tlsClientConfig() *tls.Config { function tlsServerConfig (line 739) | func tlsServerConfig() *tls.Config { function tlsServerConfig2 (line 747) | func tlsServerConfig2() *tls.Config { function mustParse (line 755) | func mustParse(rawurl string) *url.URL { function mustDo (line 763) | func mustDo(req *http.Request) (*http.Response, []byte) { function mustGet (line 776) | func mustGet(urlstr string) (*http.Response, []byte) { function compress (line 785) | func compress(b []byte) []byte { function BenchmarkProxyLogger (line 797) | func BenchmarkProxyLogger(b *testing.B) { FILE: proxy/http_proxy.go type HttpStatsHandler (line 25) | type HttpStatsHandler struct type HTTPProxy (line 44) | type HTTPProxy struct method ServeHTTP (line 80) | func (p *HTTPProxy) ServeHTTP(w http.ResponseWriter, r *http.Request) { type responseWriter (line 262) | type responseWriter struct method Header (line 268) | func (rw *responseWriter) Header() http.Header { method Write (line 272) | func (rw *responseWriter) Write(b []byte) (int, error) { method WriteHeader (line 278) | func (rw *responseWriter) WriteHeader(statusCode int) { method Flush (line 283) | func (rw *responseWriter) Flush() { method Hijack (line 291) | func (rw *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { FILE: proxy/inetaf_tcpproxy.go type childProxy (line 14) | type childProxy struct type InetAfTCPProxyServer (line 19) | type InetAfTCPProxyServer struct method Close (line 25) | func (tps *InetAfTCPProxyServer) Close() error { method Serve (line 52) | func (tps *InetAfTCPProxyServer) Serve(_ net.Listener) error { method ServeLater (line 81) | func (tps *InetAfTCPProxyServer) ServeLater(l net.Listener, s Server) { method Shutdown (line 85) | func (tps *InetAfTCPProxyServer) Shutdown(ctx context.Context) error { FILE: proxy/inetaf_tcpproxy_integration_test.go function TestProxyTCPAndHTTPS (line 26) | func TestProxyTCPAndHTTPS(t *testing.T) { function foundDNSName (line 170) | func foundDNSName(crt *x509.Certificate, dnsName string) bool { FILE: proxy/listen.go function ListenTCP (line 13) | func ListenTCP(l config.Listen, cfg *tls.Config) (net.Listener, error) { type tcpListener (line 44) | type tcpListener struct method Addr (line 50) | func (ln *tcpListener) Addr() net.Addr { method Accept (line 54) | func (ln *tcpListener) Accept() (net.Conn, error) { method Close (line 58) | func (ln *tcpListener) Close() error { type tcpKeepAliveListener (line 67) | type tcpKeepAliveListener struct method Accept (line 71) | func (ln tcpKeepAliveListener) Accept() (c net.Conn, err error) { FILE: proxy/listen_test.go function TestGracefulShutdown (line 16) | func TestGracefulShutdown(t *testing.T) { FILE: proxy/serve.go type Server (line 23) | type Server interface function CloseProxy (line 36) | func CloseProxy(address string) error { function Close (line 50) | func Close() { function Shutdown (line 59) | func Shutdown(timeout time.Duration) { function ListenAndServeHTTP (line 81) | func ListenAndServeHTTP(l config.Listen, h http.Handler, cfg *tls.Config... function ListenAndServePrometheus (line 98) | func ListenAndServePrometheus(l config.Listen, pcfg config.Prometheus, c... function ListenAndServeHTTPSTCPSNI (line 123) | func ListenAndServeHTTPSTCPSNI(l config.Listen, h http.Handler, p tcp.Ha... function ListenAndServeGRPC (line 180) | func ListenAndServeGRPC(l config.Listen, opts []grpc.ServerOption, cfg *... function ListenAndServeTCP (line 193) | func ListenAndServeTCP(l config.Listen, h tcp.Handler, cfg *tls.Config) ... function serve (line 207) | func serve(ln net.Listener, srv Server) error { FILE: proxy/tcp/copy_buffer.go function copyBuffer (line 11) | func copyBuffer(dst io.Writer, src io.Reader, c gkm.Counter) (err error) { FILE: proxy/tcp/proxy_proto.go function WriteProxyHeader (line 10) | func WriteProxyHeader(out, in net.Conn) error { FILE: proxy/tcp/server.go type Handler (line 15) | type Handler interface type HandlerFunc (line 19) | type HandlerFunc method ServeTCP (line 21) | func (f HandlerFunc) ServeTCP(in net.Conn) error { type Server (line 26) | type Server struct method ListenAndServe (line 37) | func (s *Server) ListenAndServe() error { method ListenAndServeTLS (line 46) | func (s *Server) ListenAndServeTLS(certFile, keyFile string) error { method Serve (line 60) | func (s *Server) Serve(l net.Listener) error { method closeListeners (line 97) | func (s *Server) closeListeners() { method closeConns (line 106) | func (s *Server) closeConns() error { method Close (line 116) | func (s *Server) Close() error { method Shutdown (line 121) | func (s *Server) Shutdown(ctx context.Context) error { type conn (line 130) | type conn struct method Read (line 136) | func (c *conn) Read(b []byte) (int, error) { method Write (line 143) | func (c *conn) Write(b []byte) (int, error) { method Close (line 150) | func (c *conn) Close() error { method LocalAddr (line 154) | func (c *conn) LocalAddr() net.Addr { method RemoteAddr (line 158) | func (c *conn) RemoteAddr() net.Addr { method SetDeadline (line 162) | func (c *conn) SetDeadline(t time.Time) error { method SetReadDeadline (line 166) | func (c *conn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 170) | func (c *conn) SetWriteDeadline(t time.Time) error { FILE: proxy/tcp/sni_proxy.go type SNIProxy (line 19) | type SNIProxy struct method ServeTCP (line 39) | func (p *SNIProxy) ServeTCP(in net.Conn) error { FILE: proxy/tcp/tcp_dynamic_proxy.go type DynamicProxy (line 14) | type DynamicProxy struct method ServeTCP (line 34) | func (p *DynamicProxy) ServeTCP(in net.Conn) error { FILE: proxy/tcp/tcp_proxy.go type Proxy (line 14) | type Proxy struct method ServeTCP (line 34) | func (p *Proxy) ServeTCP(in net.Conn) error { FILE: proxy/tcp/tcptest/dialer.go type Dialer (line 9) | type Dialer interface function NewRetryDialer (line 13) | func NewRetryDialer() *RetryDialer { type RetryDialer (line 20) | type RetryDialer struct method Dial (line 27) | func (d *RetryDialer) Dial(network, addr string) (c net.Conn, err erro... function NewTLSRetryDialer (line 42) | func NewTLSRetryDialer(cfg *tls.Config) *TLSRetryDialer { type TLSRetryDialer (line 46) | type TLSRetryDialer struct method Dial (line 54) | func (d *TLSRetryDialer) Dial(network, addr string) (c net.Conn, err e... type dialer (line 69) | type dialer function retry (line 71) | func retry(dial dialer, timeout, sleep time.Duration) (c net.Conn, err e... FILE: proxy/tcp/tcptest/server.go type Server (line 15) | type Server struct method Start (line 33) | func (s *Server) Start() { method StartTLS (line 47) | func (s *Server) StartTLS() { method Close (line 77) | func (s *Server) Close() error { function NewServer (line 84) | func NewServer(h tcp.Handler) *Server { function NewTLSServer (line 90) | func NewTLSServer(h tcp.Handler) *Server { function NewUnstartedServer (line 96) | func NewUnstartedServer(h tcp.Handler) *Server { function newLocalListener (line 103) | func newLocalListener() net.Listener { function NewServerWithProxyProto (line 114) | func NewServerWithProxyProto(h tcp.Handler) *Server { function NewTLSServerWithProxyProto (line 120) | func NewTLSServerWithProxyProto(h tcp.Handler) *Server { function NewUnstartedServerWithProxyProto (line 126) | func NewUnstartedServerWithProxyProto(h tcp.Handler) *Server { FILE: proxy/tcp/tls_clienthello.go function clientHelloBufferSize (line 13) | func clientHelloBufferSize(data []byte) (int, error) { function readServerName (line 55) | func readServerName(clientHelloHandshakeMsg []byte) (serverName string, ... constant extensionServerName (line 73) | extensionServerName uint16 = 0 type clientHelloMsg (line 85) | type clientHelloMsg struct method unmarshal (line 100) | func (m *clientHelloMsg) unmarshal(data []byte) bool { FILE: proxy/tcp/tls_clienthello_test.go function TestClientHelloBufferSize (line 8) | func TestClientHelloBufferSize(t *testing.T) { function TestReadServerName (line 94) | func TestReadServerName(t *testing.T) { FILE: proxy/tcp_integration_test.go function TestTCPDyanmicProxy (line 36) | func TestTCPDyanmicProxy(t *testing.T) { function TestTCPProxy (line 68) | func TestTCPProxy(t *testing.T) { function TestTCPProxyWithTLS (line 101) | func TestTCPProxyWithTLS(t *testing.T) { function TestTCPSNIProxy (line 172) | func TestTCPSNIProxy(t *testing.T) { function testRoundtrip (line 210) | func testRoundtrip(t *testing.T, c net.Conn) { function TestTCPProxyWithProxyProto (line 245) | func TestTCPProxyWithProxyProto(t *testing.T) { function TestTCPProxyWithTLSWithProxyProto (line 281) | func TestTCPProxyWithTLSWithProxyProto(t *testing.T) { function TestTCPSNIProxyWithProxyProto (line 354) | func TestTCPSNIProxyWithProxyProto(t *testing.T) { function testProxyProto (line 394) | func testProxyProto(t *testing.T, c net.Conn) { FILE: proxy/ws_handler.go type dialFunc (line 18) | type dialFunc function newWSHandler (line 24) | func newWSHandler(host string, dial dialFunc, conn gkm.Gauge) http.Handl... FILE: proxy/ws_integration_test.go function TestProxyWSUpstream (line 18) | func TestProxyWSUpstream(t *testing.T) { function testWSEcho (line 96) | func testWSEcho(t *testing.T, url string, hdr http.Header) { function wsEchoHandler (line 126) | func wsEchoHandler(ws *websocket.Conn) { FILE: registry/backend.go type Backend (line 3) | type Backend interface FILE: registry/consul/backend.go type be (line 14) | type be struct method Register (line 54) | func (b *be) Register(services []string) error { method Deregister (line 92) | func (b *be) Deregister(service string) error { method DeregisterAll (line 105) | func (b *be) DeregisterAll() error { method ManualPaths (line 117) | func (b *be) ManualPaths() ([]string, error) { method ReadManual (line 122) | func (b *be) ReadManual(path string) (value string, version uint64, er... method WriteManual (line 128) | func (b *be) WriteManual(path string, value string, version uint64) (o... method WatchServices (line 138) | func (b *be) WatchServices() chan string { method WatchManual (line 148) | func (b *be) WatchManual() chan string { method WatchNoRouteHTML (line 156) | func (b *be) WatchNoRouteHTML() chan string { function NewBackend (line 21) | func NewBackend(cfg *config.Consul) (registry.Backend, error) { function datacenter (line 165) | func datacenter(c *api.Client) (string, error) { function stringInSlice (line 182) | func stringInSlice(str string, strSlice []string) bool { FILE: registry/consul/kv.go function watchKV (line 13) | func watchKV(client *api.Client, path string, config chan string, separa... function listKeys (line 33) | func listKeys(client *api.Client, path string, waitIndex uint64, require... function listKV (line 49) | func listKV(client *api.Client, path string, waitIndex uint64, separator... function getKV (line 69) | func getKV(client *api.Client, key string, waitIndex uint64, requireCons... function putKV (line 81) | func putKV(client *api.Client, key, value string, index uint64) (bool, e... FILE: registry/consul/passing.go function passingServices (line 12) | func passingServices(checks []*api.HealthCheck, status []string, strict ... function isServiceCheck (line 59) | func isServiceCheck(c *api.HealthCheck) bool { function hasStatus (line 68) | func hasStatus(c *api.HealthCheck, status []string) bool { FILE: registry/consul/passing_test.go function TestPassingServices (line 10) | func TestPassingServices(t *testing.T) { FILE: registry/consul/register.go constant TTLInterval (line 18) | TTLInterval = time.Second * 15 constant TTLRefreshInterval (line 19) | TTLRefreshInterval = time.Second * 10 constant TTLDeregisterCriticalServiceAfter (line 20) | TTLDeregisterCriticalServiceAfter = time.Minute function register (line 31) | func register(c *api.Client, service *api.AgentServiceRegistration) chan... function serviceRegistration (line 97) | func serviceRegistration(cfg *config.Consul, serviceName string) (*api.A... function computeServiceTTLCheckId (line 172) | func computeServiceTTLCheckId(serviceID string) string { FILE: registry/consul/routecmd.go type routecmd (line 16) | type routecmd struct method build (line 26) | func (r routecmd) build() []string { function parseURLPrefixTag (line 112) | func parseURLPrefixTag(s, prefix string, env map[string]string) (route, ... FILE: registry/consul/routecmd_test.go function TestRouteCmd (line 10) | func TestRouteCmd(t *testing.T) { function TestParseTag (line 104) | func TestParseTag(t *testing.T) { FILE: registry/consul/service.go type ServiceMonitor (line 15) | type ServiceMonitor struct method Watch (line 33) | func (w *ServiceMonitor) Watch(updates chan string) { method makeConfig (line 67) | func (w *ServiceMonitor) makeConfig(checks []*api.HealthCheck) string { method serviceConfig (line 111) | func (w *ServiceMonitor) serviceConfig(name string, passing map[string... function NewServiceMonitor (line 22) | func NewServiceMonitor(client *api.Client, config *config.Consul, dc str... function checksWithTagPrefix (line 146) | func checksWithTagPrefix(prefix string, checks api.HealthChecks) api.Hea... FILE: registry/custom/backend.go type be (line 9) | type be struct method Register (line 17) | func (b *be) Register(services []string) error { method Deregister (line 21) | func (b *be) Deregister(serviceName string) error { method DeregisterAll (line 25) | func (b *be) DeregisterAll() error { method ManualPaths (line 29) | func (b *be) ManualPaths() ([]string, error) { method ReadManual (line 33) | func (b *be) ReadManual(string) (value string, version uint64, err err... method WriteManual (line 37) | func (b *be) WriteManual(path string, value string, version uint64) (o... method WatchServices (line 41) | func (b *be) WatchServices() chan string { method WatchManual (line 49) | func (b *be) WatchManual() chan string { method WatchNoRouteHTML (line 53) | func (b *be) WatchNoRouteHTML() chan string { function NewBackend (line 13) | func NewBackend(cfg *config.Custom) (registry.Backend, error) { FILE: registry/custom/custom.go function customRoutes (line 14) | func customRoutes(cfg *config.Custom, ch chan string) { FILE: registry/custom/custom_test.go function TestCustomRoutes (line 13) | func TestCustomRoutes(t *testing.T) { function handleTest (line 47) | func handleTest(w http.ResponseWriter, r *http.Request) { FILE: registry/file/backend.go function NewBackend (line 14) | func NewBackend(cfg *config.File) (registry.Backend, error) { FILE: registry/static/backend.go type be (line 10) | type be struct method Register (line 18) | func (b *be) Register(services []string) error { method Deregister (line 22) | func (b *be) Deregister(serviceName string) error { method DeregisterAll (line 26) | func (b *be) DeregisterAll() error { method ManualPaths (line 30) | func (b *be) ManualPaths() ([]string, error) { method ReadManual (line 34) | func (b *be) ReadManual(string) (value string, version uint64, err err... method WriteManual (line 38) | func (b *be) WriteManual(path string, value string, version uint64) (o... method WatchServices (line 42) | func (b *be) WatchServices() chan string { method WatchManual (line 48) | func (b *be) WatchManual() chan string { method WatchNoRouteHTML (line 52) | func (b *be) WatchNoRouteHTML() chan string { function NewBackend (line 14) | func NewBackend(cfg *config.Static) (registry.Backend, error) { FILE: rootwarn_unix.go constant interval (line 13) | interval = time.Hour constant warnInsecure (line 15) | warnInsecure = ` constant warn17behavior (line 25) | warn17behavior = ` function WarnIfRunAsRoot (line 36) | func WarnIfRunAsRoot(allowRoot bool) { function doWarn (line 47) | func doWarn(allowRoot bool) { function remind (line 56) | func remind(allowRoot bool) { FILE: rootwarn_windows.go function WarnIfRunAsRoot (line 6) | func WarnIfRunAsRoot(allowRoot bool) { FILE: route/access_rules.go constant ipAllowTag (line 13) | ipAllowTag = "allow:ip" constant ipDenyTag (line 14) | ipDenyTag = "deny:ip" method AccessDeniedHTTP (line 18) | func (t *Target) AccessDeniedHTTP(r *http.Request) bool { method AccessDeniedTCP (line 70) | func (t *Target) AccessDeniedTCP(c net.Conn) bool { method denyByIP (line 92) | func (t *Target) denyByIP(ip net.IP) bool { method ProcessAccessRules (line 148) | func (t *Target) ProcessAccessRules() error { method parseAccessRule (line 163) | func (t *Target) parseAccessRule(allowDeny string) error { FILE: route/access_rules_test.go function TestAccessRules_parseAccessRule (line 10) | func TestAccessRules_parseAccessRule(t *testing.T) { function TestAccessRules_denyByIP (line 67) | func TestAccessRules_denyByIP(t *testing.T) { function TestAccessRules_AccessDeniedHTTP (line 158) | func TestAccessRules_AccessDeniedHTTP(t *testing.T) { FILE: route/auth.go method Authorized (line 10) | func (t *Target) Authorized(r *http.Request, w http.ResponseWriter, auth... FILE: route/auth_test.go type testAuth (line 11) | type testAuth struct method Authorized (line 15) | func (t *testAuth) Authorized(r *http.Request, w http.ResponseWriter) ... type responseWriter (line 19) | type responseWriter struct method Header (line 25) | func (rw *responseWriter) Header() http.Header { method Write (line 29) | func (rw *responseWriter) Write(b []byte) (int, error) { method WriteHeader (line 34) | func (rw *responseWriter) WriteHeader(statusCode int) { function TestTarget_Authorized (line 38) | func TestTarget_Authorized(t *testing.T) { FILE: route/glob_cache.go type GlobCache (line 9) | type GlobCache struct method Get (line 33) | func (c *GlobCache) Get(pattern string) (glob.Glob, error) { function NewGlobCache (line 24) | func NewGlobCache(size int) *GlobCache { FILE: route/glob_cache_test.go function TestGlobCache (line 9) | func TestGlobCache(t *testing.T) { FILE: route/issue57_test.go function TestIssue57 (line 12) | func TestIssue57(t *testing.T) { FILE: route/matcher.go type matcher (line 8) | type matcher function prefixMatcher (line 19) | func prefixMatcher(uri string, r *Route) bool { function globMatcher (line 24) | func globMatcher(uri string, r *Route) bool { function iPrefixMatcher (line 29) | func iPrefixMatcher(uri string, r *Route) bool { FILE: route/matcher_test.go function TestPrefixMatcher (line 9) | func TestPrefixMatcher(t *testing.T) { function TestGlobMatcher (line 30) | func TestGlobMatcher(t *testing.T) { function TestIPrefixMatcher (line 64) | func TestIPrefixMatcher(t *testing.T) { FILE: route/metrics_cleanup_test.go function TestMetricsCleanup (line 14) | func TestMetricsCleanup(t *testing.T) { type testDeletableHistogram (line 139) | type testDeletableHistogram struct method Observe (line 144) | func (h *testDeletableHistogram) Observe(v float64) { method With (line 148) | func (h *testDeletableHistogram) With(labelValues ...string) gkm.Histo... method DeleteLabelValues (line 155) | func (h *testDeletableHistogram) DeleteLabelValues(labelValues ...stri... type testDeletableCounter (line 160) | type testDeletableCounter struct method Add (line 165) | func (c *testDeletableCounter) Add(v float64) { method With (line 169) | func (c *testDeletableCounter) With(labelValues ...string) gkm.Counter { method DeleteLabelValues (line 176) | func (c *testDeletableCounter) DeleteLabelValues(labelValues ...string... function extractValues (line 181) | func extractValues(lvs []string) []string { function TestMetricsCleanupViaMultiProvider (line 195) | func TestMetricsCleanupViaMultiProvider(t *testing.T) { type testPromProvider (line 283) | type testPromProvider struct method NewCounter (line 287) | func (p *testPromProvider) NewCounter(name string, labels ...string) g... method NewGauge (line 296) | func (p *testPromProvider) NewGauge(name string, labels ...string) gkm... method NewHistogram (line 305) | func (p *testPromProvider) NewHistogram(name string, labels ...string)... function sanitizeName (line 316) | func sanitizeName(name string) string { type testDeletableGauge (line 321) | type testDeletableGauge struct method Set (line 326) | func (g *testDeletableGauge) Set(v float64) { method Add (line 330) | func (g *testDeletableGauge) Add(v float64) { method With (line 334) | func (g *testDeletableGauge) With(labelValues ...string) gkm.Gauge { method DeleteLabelValues (line 341) | func (g *testDeletableGauge) DeleteLabelValues(labelValues ...string) ... FILE: route/parse_new.go constant Commands (line 21) | Commands = ` function Parse (line 71) | func Parse(in *bytes.Buffer) (defs []*RouteDef, err error) { function ParseAliases (line 101) | func ParseAliases(in string) (names []string, err error) { function parseRouteAdd (line 140) | func parseRouteAdd(s string) (*RouteDef, error) { function parseRouteDel (line 168) | func parseRouteDel(s string) (*RouteDef, error) { function parseRouteWeight (line 189) | func parseRouteWeight(s string) (*RouteDef, error) { function mustCompileWithFlexibleSpace (line 212) | func mustCompileWithFlexibleSpace(re string) *regexp.Regexp { function parseWeight (line 216) | func parseWeight(s string) (float64, error) { function parseTags (line 227) | func parseTags(s string) []string { function parseOpts (line 238) | func parseOpts(s string) map[string]string { FILE: route/parse_test.go function TestParse (line 10) | func TestParse(t *testing.T) { function TestParseAliases (line 191) | func TestParseAliases(t *testing.T) { FILE: route/picker.go type picker (line 9) | type picker function rndPicker (line 19) | func rndPicker(r *Route) *Target { function rrPicker (line 24) | func rrPicker(r *Route) *Target { FILE: route/picker_test.go function mustParse (line 15) | func mustParse(rawurl string) *url.URL { function TestRndPicker (line 23) | func TestRndPicker(t *testing.T) { function TestRRPicker (line 47) | func TestRRPicker(t *testing.T) { function BenchmarkOldRandIntn (line 72) | func BenchmarkOldRandIntn(b *testing.B) { function BenchmarkMathRandIntn (line 79) | func BenchmarkMathRandIntn(b *testing.B) { FILE: route/route.go type Route (line 22) | type Route struct method addTarget (line 46) | func (r *Route) addTarget(service string, targetURL *url.URL, fixedWei... method filter (line 106) | func (r *Route) filter(skip func(t *Target) bool) { method setWeight (line 118) | func (r *Route) setWeight(service string, weight float64, tags []strin... method TargetConfig (line 165) | func (r *Route) TargetConfig(t *Target, addWeight bool) string { method config (line 193) | func (r *Route) config(addWeight bool) []string { method weighTargets (line 218) | func (r *Route) weighTargets() { function contains (line 149) | func contains(src, dst []string) bool { constant maxSlots (line 208) | maxSlots = 1e4 type byN (line 324) | type byN method Len (line 326) | func (r byN) Len() int { return len(r) } method Swap (line 327) | func (r byN) Swap(i, j int) { r[i], r[j] = r[j], r[i] } method Less (line 328) | func (r byN) Less(i, j int) bool { return r[i].n < r[j].n } FILE: route/route_bench_test.go function initRoutes (line 22) | func initRoutes() { function BenchmarkPrefixMatcherRndPicker5Routes (line 29) | func BenchmarkPrefixMatcherRndPicker5Routes(b *testing.B) { function BenchmarkPrefixMatcherRRPicker5Routes (line 35) | func BenchmarkPrefixMatcherRRPicker5Routes(b *testing.B) { function BenchmarkPrefixMatcherRndPicker10Routes (line 41) | func BenchmarkPrefixMatcherRndPicker10Routes(b *testing.B) { function BenchmarkPrefixMatcherRRPicker10Routes (line 48) | func BenchmarkPrefixMatcherRRPicker10Routes(b *testing.B) { function BenchmarkPrefixMatcherRndPicker100Routes (line 55) | func BenchmarkPrefixMatcherRndPicker100Routes(b *testing.B) { function BenchmarkPrefixMatcherRRPicker100Routes (line 62) | func BenchmarkPrefixMatcherRRPicker100Routes(b *testing.B) { function BenchmarkPrefixMatcherRndPicker500Routes (line 69) | func BenchmarkPrefixMatcherRndPicker500Routes(b *testing.B) { function BenchmarkPrefixMatcherRRPicker500Routes (line 76) | func BenchmarkPrefixMatcherRRPicker500Routes(b *testing.B) { function makeRoutes (line 88) | func makeRoutes(domains, paths, depth, urls int) Table { function makeRequests (line 111) | func makeRequests(t Table) []*http.Request { function benchmarkGet (line 124) | func benchmarkGet(t Table, match matcher, pick picker, pb *testing.PB) { FILE: route/route_def.go type Cmd (line 3) | type Cmd constant RouteAddCmd (line 6) | RouteAddCmd Cmd = "route add" constant RouteDelCmd (line 7) | RouteDelCmd Cmd = "route del" constant RouteWeightCmd (line 8) | RouteWeightCmd Cmd = "route weight" type RouteDef (line 11) | type RouteDef struct FILE: route/routes.go type Routes (line 4) | type Routes method find (line 7) | func (rt Routes) find(path string) *Route { method Len (line 17) | func (rt Routes) Len() int { return len(rt) } method Swap (line 18) | func (rt Routes) Swap(i, j int) { rt[i], rt[j] = rt[j], rt[i] } method Less (line 19) | func (rt Routes) Less(i, j int) bool { return rt[j].Path < rt[i].Path } FILE: route/table.go function init (line 32) | func init() { type metrix (line 38) | type metrix struct function makeMetricKey (line 47) | func makeMetricKey(service, host, path, target string) string { function parseMetricKey (line 52) | func parseMetricKey(key string) (service, host, path, target string) { function collectTableMetricKeys (line 61) | func collectTableMetricKeys(t Table) map[string]struct{} { function cleanupStaleMetrics (line 76) | func cleanupStaleMetrics(oldTable, newTable Table) { function SetMetricsProvider (line 104) | func SetMetricsProvider(p metrics.Provider) { function GetTable (line 113) | func GetTable() Table { function SetTable (line 121) | func SetTable(t Table) { type Table (line 139) | type Table method addRoute (line 215) | func (t Table) addRoute(d *RouteDef) error { method weighRoute (line 261) | func (t Table) weighRoute(d *RouteDef) error { method delRoute (line 285) | func (t Table) delRoute(d *RouteDef) error { method route (line 352) | func (t Table) route(host, path string) *Route { method matchingHosts (line 378) | func (t Table) matchingHosts(req *http.Request, globCache *GlobCache) ... method matchingHostNoGlob (line 405) | func (t Table) matchingHostNoGlob(req *http.Request) (hosts []string) { method Lookup (line 465) | func (t Table) Lookup(req *http.Request, pick picker, match matcher, g... method LookupHost (line 499) | func (t Table) LookupHost(host string, pick picker) *Target { method lookup (line 503) | func (t Table) lookup(host, path string, pick picker, match matcher) *... method config (line 524) | func (t Table) config(addWeight bool) []string { method String (line 547) | func (t Table) String() string { method Dump (line 552) | func (t Table) Dump() string { function hostpath (line 144) | func hostpath(prefix string) (host string, path string) { function NewTable (line 156) | func NewTable(b *bytes.Buffer) (t Table, err error) { function NewTableCustom (line 187) | func NewTableCustom(defs *[]RouteDef) (t Table, err error) { function normalizeHost (line 362) | func normalizeHost(host string, tls bool) string { function normalizeHostNoLower (line 366) | func normalizeHostNoLower(host string, tls bool) string { function sortHostsReverseHostPort (line 418) | func sortHostsReverseHostPort(hosts []string) []string { function ReverseHostPort (line 442) | func ReverseHostPort(s string) string { FILE: route/table_test.go constant globEnabled (line 18) | globEnabled = false constant globDisabled (line 19) | globDisabled = true function TestTableParse (line 25) | func TestTableParse(t *testing.T) { function TestNormalizeHost (line 477) | func TestNormalizeHost(t *testing.T) { function TestTableLookupIssue448 (line 499) | func TestTableLookupIssue448(t *testing.T) { function TestTableLookup (line 572) | func TestTableLookup(t *testing.T) { function TestTableLookup_656 (line 648) | func TestTableLookup_656(t *testing.T) { function TestNewTableCustom (line 674) | func TestNewTableCustom(t *testing.T) { function TestTable_Dump (line 738) | func TestTable_Dump(t *testing.T) { FILE: route/target.go type Target (line 10) | type Target struct method BuildRedirectURL (line 76) | func (t *Target) BuildRedirectURL(requestURL *url.URL) { FILE: route/target_test.go function TestTarget_BuildRedirectURL (line 9) | func TestTarget_BuildRedirectURL(t *testing.T) { FILE: transport/transport.go function NewTransport (line 14) | func NewTransport(tlscfg *tls.Config) *http.Transport { function SetConfig (line 27) | func SetConfig(ncfg *config.Config) { FILE: uuid/format.go function ToString (line 13) | func ToString(u [24]byte) string { FILE: uuid/uuid.go function NewUUID (line 10) | func NewUUID() string {