SYMBOL INDEX (735 symbols across 164 files) FILE: anubis.go constant CookieDefaultExpirationTime (line 21) | CookieDefaultExpirationTime = 7 * 24 * time.Hour constant StaticPath (line 30) | StaticPath = "/.within.website/x/cmd/anubis/" constant APIPrefix (line 33) | APIPrefix = "/.within.website/x/cmd/anubis/api/" constant DefaultDifficulty (line 37) | DefaultDifficulty = 4 FILE: cmd/containerbuild/main.go function main (line 27) | func main() { type image (line 115) | type image struct function parseImageList (line 120) | func parseImageList(imageList string) ([]image, error) { function run (line 146) | func run(command string) (string, error) { function setOutput (line 161) | func setOutput(key, val string) { FILE: cmd/robots2policy/batch/batch_process.go function main (line 17) | func main() { FILE: cmd/robots2policy/main.go type RobotsRule (line 32) | type RobotsRule struct type AnubisRule (line 40) | type AnubisRule struct function init (line 48) | func init() { function main (line 66) | func main() { function createRuleFromAccumulated (line 134) | func createRuleFromAccumulated(userAgents, disallows, allows []string, c... function parseRobotsTxt (line 147) | func parseRobotsTxt(input io.Reader) ([]RobotsRule, error) { function parseIntSafe (line 222) | func parseIntSafe(s string) (int, error) { function convertToAnubisRules (line 228) | func convertToAnubisRules(robotsRules []RobotsRule) []AnubisRule { function buildPathCondition (line 369) | func buildPathCondition(robotsPath string) string { FILE: cmd/robots2policy/robots2policy_test.go type TestCase (line 15) | type TestCase struct type TestOptions (line 22) | type TestOptions struct function TestDataFileConversion (line 30) | func TestDataFileConversion(t *testing.T) { function TestCaseInsensitiveParsing (line 205) | func TestCaseInsensitiveParsing(t *testing.T) { function TestVariousOutputFormats (line 238) | func TestVariousOutputFormats(t *testing.T) { function TestDifferentActions (line 275) | func TestDifferentActions(t *testing.T) { function TestPolicyNaming (line 306) | func TestPolicyNaming(t *testing.T) { function TestCrawlDelayWeights (line 340) | func TestCrawlDelayWeights(t *testing.T) { function TestBlacklistActions (line 384) | func TestBlacklistActions(t *testing.T) { function compareData (line 422) | func compareData(actual, expected any) bool { FILE: data/embed_test.go function TestBotPoliciesEmbed (line 11) | func TestBotPoliciesEmbed(t *testing.T) { FILE: decaymap/decaymap.go function Zilch (line 8) | func Zilch[T any]() T { type Impl (line 14) | type Impl struct type decayMapEntry (line 25) | type decayMapEntry struct type deleteReq (line 32) | type deleteReq struct function New (line 40) | func New[K comparable, V any]() *Impl[K, V] { method expire (line 52) | func (m *Impl[K, V]) expire(key K) bool { method Delete (line 69) | func (m *Impl[K, V]) Delete(key K) bool { method Get (line 83) | func (m *Impl[K, V]) Get(key K) (V, bool) { method Set (line 107) | func (m *Impl[K, V]) Set(key K, value V, ttl time.Duration) { method Cleanup (line 118) | func (m *Impl[K, V]) Cleanup() { method Len (line 131) | func (m *Impl[K, V]) Len() int { method Close (line 140) | func (m *Impl[K, V]) Close() { method cleanupWorker (line 146) | func (m *Impl[K, V]) cleanupWorker() { method applyDeletes (line 182) | func (m *Impl[K, V]) applyDeletes(batch []deleteReq[K]) { FILE: decaymap/decaymap_test.go function TestImpl (line 8) | func TestImpl(t *testing.T) { function TestCleanup (line 47) | func TestCleanup(t *testing.T) { FILE: docs/blog/2025-08-28-cpu-core-odd/ProofOfWorkDiagram/index.jsx function sha256 (line 6) | async function sha256(message) { function App (line 66) | function App() { FILE: docs/src/components/EnterpriseOnly/index.jsx function EnterpriseOnly (line 3) | function EnterpriseOnly({ link }) { FILE: docs/src/components/HomepageFeatures/index.tsx type FeatureItem (line 6) | type FeatureItem = { function Feature (line 47) | function Feature({ title, description, imageURL }: FeatureItem) { function HomepageFeatures (line 61) | function HomepageFeatures(): ReactNode { FILE: docs/src/components/RandomKey/index.tsx function toHex (line 6) | function toHex(buffer) { function RandomKey (line 18) | function RandomKey() { FILE: docs/src/pages/index.tsx function HomepageHeader (line 11) | function HomepageHeader() { function Home (line 33) | function Home(): ReactNode { FILE: internal/actorify/actorify.go function z (line 12) | func z[Z any]() Z { type Handler (line 23) | type Handler type Actor (line 29) | type Actor struct type message (line 34) | type message struct type reply (line 40) | type reply struct function New (line 47) | func New[Input, Output any](ctx context.Context, handler Handler[Input, ... method handle (line 58) | func (a *Actor[Input, Output]) handle(ctx context.Context) { method Call (line 89) | func (a *Actor[Input, Output]) Call(ctx context.Context, input Input) (O... FILE: internal/clampip.go function ClampIP (line 5) | func ClampIP(addr netip.Addr) (netip.Prefix, bool) { FILE: internal/clampip_test.go function TestClampIP (line 8) | func TestClampIP(t *testing.T) { function TestClampIPSuccess (line 132) | func TestClampIPSuccess(t *testing.T) { function TestClampIPZeroValue (line 175) | func TestClampIPZeroValue(t *testing.T) { function TestClampIPSpecialCases (line 198) | func TestClampIPSpecialCases(t *testing.T) { function BenchmarkClampIP (line 252) | func BenchmarkClampIP(b *testing.B) { FILE: internal/dns/cache.go type DnsCache (line 12) | type DnsCache struct function NewDNSCache (line 19) | func NewDNSCache(forwardTTL int, reverseTTL int, backend store.Interface... method getCachedForward (line 34) | func (d *Dns) getCachedForward(host string) ([]string, bool) { method getCachedReverse (line 46) | func (d *Dns) getCachedReverse(addr string) ([]string, bool) { method forwardCachePut (line 58) | func (d *Dns) forwardCachePut(host string, entries []string) { method reverseCachePut (line 65) | func (d *Dns) reverseCachePut(addr string, entries []string) { FILE: internal/dns/dns.go type Dns (line 20) | type Dns struct method ReverseDNS (line 33) | func (d *Dns) ReverseDNS(addr string) ([]string, error) { method LookupHost (line 62) | func (d *Dns) LookupHost(host string) ([]string, error) { method verifyFCrDNSInternal (line 86) | func (d *Dns) verifyFCrDNSInternal(addr string, names []string) bool { method VerifyFCrDNS (line 103) | func (d *Dns) VerifyFCrDNS(addr string, pattern *string) bool { method ArpaReverseIP (line 146) | func (d *Dns) ArpaReverseIP(addr string) (string, error) { function New (line 25) | func New(ctx context.Context, cache *DnsCache) *Dns { FILE: internal/dns/dns_test.go function newTestDNS (line 15) | func newTestDNS(forwardTTL int, reverseTTL int) *Dns { function mockLookupAddr (line 23) | func mockLookupAddr(addr string) ([]string, error) { function mockLookupHost (line 41) | func mockLookupHost(host string) ([]string, error) { function TestMain (line 56) | func TestMain(m *testing.M) { function TestDns_ArpaReverseIP (line 77) | func TestDns_ArpaReverseIP(t *testing.T) { function TestDns_ReverseDNS (line 104) | func TestDns_ReverseDNS(t *testing.T) { function TestDns_LookupHost (line 175) | func TestDns_LookupHost(t *testing.T) { function TestDns_VerifyFCrDNS (line 238) | func TestDns_VerifyFCrDNS(t *testing.T) { FILE: internal/dnsbl/dnsbl.go type DroneBLResponse (line 12) | type DroneBLResponse constant AllGood (line 15) | AllGood DroneBLResponse = 0 constant IRCDrone (line 16) | IRCDrone DroneBLResponse = 3 constant Bottler (line 17) | Bottler DroneBLResponse = 5 constant UnknownSpambotOrDrone (line 18) | UnknownSpambotOrDrone DroneBLResponse = 6 constant DDOSDrone (line 19) | DDOSDrone DroneBLResponse = 7 constant SOCKSProxy (line 20) | SOCKSProxy DroneBLResponse = 8 constant HTTPProxy (line 21) | HTTPProxy DroneBLResponse = 9 constant ProxyChain (line 22) | ProxyChain DroneBLResponse = 10 constant OpenProxy (line 23) | OpenProxy DroneBLResponse = 11 constant OpenDNSResolver (line 24) | OpenDNSResolver DroneBLResponse = 12 constant BruteForceAttackers (line 25) | BruteForceAttackers DroneBLResponse = 13 constant OpenWingateProxy (line 26) | OpenWingateProxy DroneBLResponse = 14 constant CompromisedRouter (line 27) | CompromisedRouter DroneBLResponse = 15 constant AutoRootingWorms (line 28) | AutoRootingWorms DroneBLResponse = 16 constant AutoDetectedBotIP (line 29) | AutoDetectedBotIP DroneBLResponse = 17 constant Unknown (line 30) | Unknown DroneBLResponse = 255 function Reverse (line 33) | func Reverse(ip net.IP) string { function reverse4 (line 41) | func reverse4(ip net.IP) string { function reverse6 (line 52) | func reverse6(ip net.IP) string { function Lookup (line 68) | func Lookup(ipStr string) (DroneBLResponse, error) { FILE: internal/dnsbl/dnsbl_test.go function TestReverse4 (line 10) | func TestReverse4(t *testing.T) { function TestReverse6 (line 28) | func TestReverse6(t *testing.T) { function TestLookup (line 49) | func TestLookup(t *testing.T) { FILE: internal/dnsbl/droneblresponse_string.go function _ (line 7) | func _() { constant _DroneBLResponse_name_0 (line 30) | _DroneBLResponse_name_0 = "AllGood" constant _DroneBLResponse_name_1 (line 31) | _DroneBLResponse_name_1 = "IRCDrone" constant _DroneBLResponse_name_2 (line 32) | _DroneBLResponse_name_2 = "BottlerUnknownSpambotOrDroneDDOSDroneSOCKSPro... constant _DroneBLResponse_name_3 (line 33) | _DroneBLResponse_name_3 = "Unknown" method String (line 40) | func (i DroneBLResponse) String() string { FILE: internal/glob/glob.go constant GLOB (line 5) | GLOB = "*" constant maxGlobParts (line 7) | maxGlobParts = 5 function Glob (line 12) | func Glob(pattern, subj string) bool { FILE: internal/glob/glob_test.go function TestGlob_EqualityAndEmpty (line 5) | func TestGlob_EqualityAndEmpty(t *testing.T) { function TestGlob_LeadingAndTrailing (line 28) | func TestGlob_LeadingAndTrailing(t *testing.T) { function TestGlob_MiddleAndOrder (line 53) | func TestGlob_MiddleAndOrder(t *testing.T) { function TestGlob_ConsecutiveStarsAndEmptyParts (line 80) | func TestGlob_ConsecutiveStarsAndEmptyParts(t *testing.T) { function TestGlob_MaxPartsLimit (line 103) | func TestGlob_MaxPartsLimit(t *testing.T) { function TestGlob_CaseSensitivity (line 137) | func TestGlob_CaseSensitivity(t *testing.T) { function TestGlob_EmptySubjectInteractions (line 154) | func TestGlob_EmptySubjectInteractions(t *testing.T) { function BenchmarkGlob (line 172) | func BenchmarkGlob(b *testing.B) { FILE: internal/gzip.go function GzipMiddleware (line 9) | func GzipMiddleware(level int, next http.Handler) http.Handler { type gzipResponseWriter (line 28) | type gzipResponseWriter struct method Write (line 33) | func (w gzipResponseWriter) Write(b []byte) (int, error) { FILE: internal/hash.go function SHA256sum (line 13) | func SHA256sum(text string) string { function FastHash (line 22) | func FastHash(text string) string { FILE: internal/hash_bench_test.go function XXHash64sum (line 10) | func XXHash64sum(text string) string { function BenchmarkSHA256_PolicyInputs (line 59) | func BenchmarkSHA256_PolicyInputs(b *testing.B) { function BenchmarkXXHash_PolicyInputs (line 67) | func BenchmarkXXHash_PolicyInputs(b *testing.B) { function BenchmarkSHA256_ChallengeInputs (line 75) | func BenchmarkSHA256_ChallengeInputs(b *testing.B) { function BenchmarkXXHash_ChallengeInputs (line 83) | func BenchmarkXXHash_ChallengeInputs(b *testing.B) { function BenchmarkSHA256_BotRuleInputs (line 91) | func BenchmarkSHA256_BotRuleInputs(b *testing.B) { function BenchmarkXXHash_BotRuleInputs (line 99) | func BenchmarkXXHash_BotRuleInputs(b *testing.B) { function BenchmarkSHA256_CELInputs (line 107) | func BenchmarkSHA256_CELInputs(b *testing.B) { function BenchmarkXXHash_CELInputs (line 115) | func BenchmarkXXHash_CELInputs(b *testing.B) { function BenchmarkSHA256_ASNInputs (line 123) | func BenchmarkSHA256_ASNInputs(b *testing.B) { function BenchmarkXXHash_ASNInputs (line 131) | func BenchmarkXXHash_ASNInputs(b *testing.B) { function BenchmarkSHA256_PolicyList (line 140) | func BenchmarkSHA256_PolicyList(b *testing.B) { function BenchmarkXXHash_PolicyList (line 151) | func BenchmarkXXHash_PolicyList(b *testing.B) { function TestHashCollisions (line 163) | func TestHashCollisions(t *testing.T) { function TestXXHashFormat (line 231) | func TestXXHashFormat(t *testing.T) { FILE: internal/headers.go type realIPKey (line 17) | type realIPKey struct function RealIP (line 19) | func RealIP(r *http.Request) (netip.Addr, bool) { type XFFComputePreferences (line 25) | type XFFComputePreferences struct function UnchangingCache (line 37) | func UnchangingCache(next http.Handler) http.Handler { function CustomRealIPHeader (line 53) | func CustomRealIPHeader(customRealIPHeaderValue string, next http.Handle... function RemoteXRealIP (line 67) | func RemoteXRealIP(useRemoteAddress bool, bindNetwork string, next http.... function XForwardedForToXRealIP (line 97) | func XForwardedForToXRealIP(next http.Handler) http.Handler { function XForwardedForUpdate (line 114) | func XForwardedForUpdate(stripPrivate bool, next http.Handler) http.Hand... function computeXFFHeader (line 154) | func computeXFFHeader(remoteAddr string, origXFFHeader string, pref XFFC... function NoStoreCache (line 222) | func NoStoreCache(next http.Handler) http.Handler { function NoBrowsing (line 230) | func NoBrowsing(next http.Handler) http.Handler { FILE: internal/health.go function SetHealth (line 12) | func SetHealth(svc string, status healthv1.HealthCheckResponse_ServingSt... function GetHealth (line 16) | func GetHealth(svc string) (healthv1.HealthCheckResponse_ServingStatus, ... FILE: internal/honeypot/honeypot.go type Info (line 18) | type Info struct FILE: internal/honeypot/naive/naive.go function New (line 39) | func New(st store.Interface, lg *slog.Logger) (*Impl, error) { type Impl (line 69) | type Impl struct method incrementUA (line 79) | func (i *Impl) incrementUA(ctx context.Context, userAgent string) int { method incrementNetwork (line 86) | func (i *Impl) incrementNetwork(ctx context.Context, network string) i... method CheckUA (line 93) | func (i *Impl) CheckUA() checker.Impl { method CheckNetwork (line 104) | func (i *Impl) CheckNetwork() checker.Impl { method Hash (line 115) | func (i *Impl) Hash() string { method makeAffirmations (line 119) | func (i *Impl) makeAffirmations() []string { method makeSpins (line 130) | func (i *Impl) makeSpins() []string { method makeTitle (line 141) | func (i *Impl) makeTitle() string { method ServeHTTP (line 145) | func (i *Impl) ServeHTTP(w http.ResponseWriter, r *http.Request) { type link (line 202) | type link struct FILE: internal/honeypot/naive/page_templ.go function base (line 13) | func base(title string, body templ.Component) templ.Component { method maze (line 76) | func (i Impl) maze(body []string, links []link) templ.Component { FILE: internal/ja4h.go function JA4H (line 9) | func JA4H(next http.Handler) http.Handler { FILE: internal/listor.go type ListOr (line 10) | type ListOr method UnmarshalJSON (line 12) | func (lo *ListOr[T]) UnmarshalJSON(data []byte) error { FILE: internal/listor_test.go function TestListOr_UnmarshalJSON (line 8) | func TestListOr_UnmarshalJSON(t *testing.T) { FILE: internal/log.go function InitSlog (line 13) | func InitSlog(level string, sink io.Writer) *slog.Logger { function GetRequestLogger (line 31) | func GetRequestLogger(base *slog.Logger, r *http.Request) *slog.Logger { type ErrorLogFilter (line 50) | type ErrorLogFilter struct method Write (line 54) | func (elf *ErrorLogFilter) Write(p []byte) (n int, err error) { function GetFilteredHTTPLogger (line 68) | func GetFilteredHTTPLogger() *log.Logger { FILE: internal/log_test.go function TestErrorLogFilter (line 12) | func TestErrorLogFilter(t *testing.T) { function TestGetRequestLogger (line 50) | func TestGetRequestLogger(t *testing.T) { FILE: internal/mimetype.go function init (line 5) | func init() { FILE: internal/ogtags/cache.go method GetOGTags (line 14) | func (c *OGTagCache) GetOGTags(ctx context.Context, url *url.URL, origin... method generateCacheKey (line 65) | func (c *OGTagCache) generateCacheKey(target string, originalHost string... method checkCache (line 77) | func (c *OGTagCache) checkCache(ctx context.Context, cacheKey string) ma... FILE: internal/ogtags/cache_test.go function TestCacheReturnsDefault (line 17) | func TestCacheReturnsDefault(t *testing.T) { function TestCheckCache (line 50) | func TestCheckCache(t *testing.T) { function TestGetOGTags (line 87) | func TestGetOGTags(t *testing.T) { function TestGetOGTagsWithHostConsideration (line 181) | func TestGetOGTagsWithHostConsideration(t *testing.T) { FILE: internal/ogtags/fetch.go method fetchHTMLDocumentWithCache (line 23) | func (c *OGTagCache) fetchHTMLDocumentWithCache(ctx context.Context, url... FILE: internal/ogtags/fetch_test.go function TestFetchHTMLDocument (line 19) | func TestFetchHTMLDocument(t *testing.T) { function TestFetchHTMLDocumentInvalidURL (line 112) | func TestFetchHTMLDocumentInvalidURL(t *testing.T) { method fetchHTMLDocument (line 135) | func (c *OGTagCache) fetchHTMLDocument(ctx context.Context, urlStr strin... FILE: internal/ogtags/integration_test.go function TestIntegrationGetOGTags (line 14) | func TestIntegrationGetOGTags(t *testing.T) { FILE: internal/ogtags/mem_test.go function BenchmarkGetTarget (line 14) | func BenchmarkGetTarget(b *testing.B) { function BenchmarkExtractOGTags (line 51) | func BenchmarkExtractOGTags(b *testing.B) { function TestMemoryUsage (line 87) | func TestMemoryUsage(t *testing.T) { FILE: internal/ogtags/ogtags.go constant maxContentLength (line 19) | maxContentLength = 8 << 20 constant httpTimeout (line 20) | httpTimeout = 5 * time.Second constant schemeSeparatorLength (line 22) | schemeSeparatorLength = 3 constant querySeparatorLength (line 23) | querySeparatorLength = 1 type OGTagCache (line 26) | type OGTagCache struct method getTarget (line 136) | func (c *OGTagCache) getTarget(u *url.URL) string { type TargetOptions (line 48) | type TargetOptions struct function NewOGTagCache (line 54) | func NewOGTagCache(target string, conf config.OpenGraph, backend store.I... FILE: internal/ogtags/ogtags_fuzz_test.go function FuzzGetTarget (line 17) | func FuzzGetTarget(f *testing.F) { function FuzzExtractOGTags (line 92) | func FuzzExtractOGTags(f *testing.F) { function FuzzGetTargetRoundTrip (line 180) | func FuzzGetTargetRoundTrip(f *testing.F) { function FuzzExtractMetaTagInfo (line 221) | func FuzzExtractMetaTagInfo(f *testing.F) { function BenchmarkFuzzedGetTarget (line 278) | func BenchmarkFuzzedGetTarget(b *testing.B) { FILE: internal/ogtags/ogtags_test.go function TestNewOGTagCache (line 29) | func TestNewOGTagCache(t *testing.T) { function TestNewOGTagCache_UnixSocket (line 87) | func TestNewOGTagCache_UnixSocket(t *testing.T) { function TestGetTarget (line 129) | func TestGetTarget(t *testing.T) { function TestIntegrationGetOGTags_UnixSocket (line 198) | func TestIntegrationGetOGTags_UnixSocket(t *testing.T) { function TestGetOGTagsWithTargetHostOverride (line 286) | func TestGetOGTagsWithTargetHostOverride(t *testing.T) { function TestGetOGTagsWithInsecureSkipVerify (line 342) | func TestGetOGTagsWithInsecureSkipVerify(t *testing.T) { function TestGetOGTagsWithTargetSNI (line 380) | func TestGetOGTagsWithTargetSNI(t *testing.T) { function newSNIServer (line 456) | func newSNIServer(t *testing.T, body string) (*httptest.Server, *sniReco... function mustCertificateForHost (line 476) | func mustCertificateForHost(t *testing.T, host string) tls.Certificate { type sniRecorder (line 507) | type sniRecorder struct method record (line 512) | func (r *sniRecorder) record(name string) { method last (line 518) | func (r *sniRecorder) last() string { FILE: internal/ogtags/parse.go method extractOGTags (line 11) | func (c *OGTagCache) extractOGTags(doc *html.Node) map[string]string { function isOGMetaTag (line 32) | func isOGMetaTag(n *html.Node) bool { method extractMetaTagInfo (line 40) | func (c *OGTagCache) extractMetaTagInfo(n *html.Node) (property, content... FILE: internal/ogtags/parse_test.go function TestExtractOGTags (line 15) | func TestExtractOGTags(t *testing.T) { function TestIsOGMetaTag (line 127) | func TestIsOGMetaTag(t *testing.T) { function TestExtractMetaTagInfo (line 196) | func TestExtractMetaTagInfo(t *testing.T) { FILE: internal/ogtags/sni.go method clientForSNI (line 9) | func (c *OGTagCache) clientForSNI(serverName string) *http.Client { FILE: internal/test/playwright_test.go constant actionAllow (line 97) | actionAllow action = "ALLOW" constant actionDeny (line 98) | actionDeny action = "DENY" constant actionChallenge (line 99) | actionChallenge action = "CHALLENGE" constant placeholderIP (line 101) | placeholderIP = "fd11:5ee:bad:c0de::" constant playwrightVersion (line 102) | playwrightVersion = "1.52.0" type action (line 105) | type action type testCase (line 107) | type testCase struct function doesCommandExist (line 115) | func doesCommandExist(t *testing.T, command string) { function run (line 123) | func run(t *testing.T, command string) string { function daemonize (line 147) | func daemonize(t *testing.T, command string) { function startPlaywright (line 171) | func startPlaywright(t *testing.T) { function TestPlaywrightBrowser (line 211) | func TestPlaywrightBrowser(t *testing.T) { function TestPlaywrightWithBasePrefix (line 291) | func TestPlaywrightWithBasePrefix(t *testing.T) { function buildBrowserConnect (line 421) | func buildBrowserConnect(name string) string { function executeTestCase (line 431) | func executeTestCase(t *testing.T, tc testCase, typ playwright.BrowserTy... function checkImage (line 507) | func checkImage(t *testing.T, tc testCase, deadline time.Time, page play... function pwFail (line 526) | func pwFail(t *testing.T, page playwright.Page, format string, args ...a... function pwTimeout (line 533) | func pwTimeout(tc testCase, deadline time.Time) *float64 { function saveScreenshot (line 546) | func saveScreenshot(t *testing.T, page playwright.Page) { function setupPlaywright (line 571) | func setupPlaywright(t *testing.T) *playwright.Playwright { function spawnAnubis (line 586) | func spawnAnubis(t *testing.T) string { function spawnAnubisWithOptions (line 590) | func spawnAnubisWithOptions(t *testing.T, basePrefix string) string { FILE: internal/unbreakdocker.go function UnbreakDocker (line 8) | func UnbreakDocker() { FILE: internal/xff_test.go function TestXForwardedForUpdateIgnoreUnix (line 10) | func TestXForwardedForUpdateIgnoreUnix(t *testing.T) { function TestXForwardedForUpdateAddToChain (line 37) | func TestXForwardedForUpdateAddToChain(t *testing.T) { function TestComputeXFFHeader (line 66) | func TestComputeXFFHeader(t *testing.T) { FILE: lib/anubis.go type Server (line 69) | type Server struct method getTokenKeyfunc (line 81) | func (s *Server) getTokenKeyfunc() jwt.Keyfunc { method getChallenge (line 94) | func (s *Server) getChallenge(r *http.Request) (*challenge.Challenge, ... method issueChallenge (line 103) | func (s *Server) issueChallenge(ctx context.Context, r *http.Request, ... method hydrateChallengeRule (line 149) | func (s *Server) hydrateChallengeRule(rule *policy.Bot, chall *challen... method maybeReverseProxyHttpStatusOnly (line 187) | func (s *Server) maybeReverseProxyHttpStatusOnly(w http.ResponseWriter... method maybeReverseProxyOrPage (line 191) | func (s *Server) maybeReverseProxyOrPage(w http.ResponseWriter, r *htt... method maybeReverseProxy (line 195) | func (s *Server) maybeReverseProxy(w http.ResponseWriter, r *http.Requ... method checkRules (line 298) | func (s *Server) checkRules(w http.ResponseWriter, r *http.Request, cr... method handleDNSBL (line 340) | func (s *Server) handleDNSBL(w http.ResponseWriter, r *http.Request, i... method MakeChallenge (line 368) | func (s *Server) MakeChallenge(w http.ResponseWriter, r *http.Request) { method PassChallenge (line 441) | func (s *Server) PassChallenge(w http.ResponseWriter, r *http.Request) { method check (line 607) | func (s *Server) check(r *http.Request, lg *slog.Logger) (policy.Check... function cr (line 598) | func cr(name string, rule config.Rule, weight int) policy.CheckResult { FILE: lib/anubis_test.go type TLogWriter (line 30) | type TLogWriter struct method Write (line 40) | func (w *TLogWriter) Write(p []byte) (n int, err error) { function NewTLogWriter (line 35) | func NewTLogWriter(t *testing.T) io.Writer { function loadPolicies (line 50) | func loadPolicies(t *testing.T, fname string, difficulty int) *policy.Pa... function spawnAnubis (line 69) | func spawnAnubis(t *testing.T, opts Options) *Server { type challengeResp (line 89) | type challengeResp struct function makeChallenge (line 94) | func makeChallenge(t *testing.T, ts *httptest.Server, cli *http.Client) ... function handleChallengeZeroDifficulty (line 120) | func handleChallengeZeroDifficulty(t *testing.T, ts *httptest.Server, cl... function handleChallengeInvalidProof (line 155) | func handleChallengeInvalidProof(t *testing.T, ts *httptest.Server, cli ... type loggingCookieJar (line 179) | type loggingCookieJar struct method Cookies (line 185) | func (lcj *loggingCookieJar) Cookies(u *url.URL) []*http.Cookie { method SetCookies (line 204) | func (lcj *loggingCookieJar) SetCookies(u *url.URL, cookies []*http.Co... type userAgentRoundTripper (line 216) | type userAgentRoundTripper struct method RoundTrip (line 220) | func (u *userAgentRoundTripper) RoundTrip(req *http.Request) (*http.Re... function httpClient (line 228) | func httpClient(t *testing.T) *http.Client { function TestLoadPolicies (line 244) | func TestLoadPolicies(t *testing.T) { function TestCVE2025_24369 (line 261) | func TestCVE2025_24369(t *testing.T) { function TestCookieCustomExpiration (line 282) | func TestCookieCustomExpiration(t *testing.T) { function TestCookieSettings (line 320) | func TestCookieSettings(t *testing.T) { function TestCookieSettingsSameSiteNoneModeDowngradedToLaxWhenUnsecure (line 376) | func TestCookieSettingsSameSiteNoneModeDowngradedToLaxWhenUnsecure(t *te... function TestCheckDefaultDifficultyMatchesPolicy (line 432) | func TestCheckDefaultDifficultyMatchesPolicy(t *testing.T) { function TestBasePrefix (line 471) | func TestBasePrefix(t *testing.T) { function TestCustomStatusCodes (line 638) | func TestCustomStatusCodes(t *testing.T) { function TestCloudflareWorkersRule (line 682) | func TestCloudflareWorkersRule(t *testing.T) { function TestRuleChange (line 740) | func TestRuleChange(t *testing.T) { function TestStripBasePrefixFromRequest (line 766) | func TestStripBasePrefixFromRequest(t *testing.T) { function TestChallengeFor_ErrNotFound (line 867) | func TestChallengeFor_ErrNotFound(t *testing.T) { function TestPassChallengeXSS (line 929) | func TestPassChallengeXSS(t *testing.T) { function TestPassChallengeNilRuleChallengeFallback (line 1053) | func TestPassChallengeNilRuleChallengeFallback(t *testing.T) { function TestXForwardedForNoDoubleComma (line 1106) | func TestXForwardedForNoDoubleComma(t *testing.T) { FILE: lib/challenge/challenge.go type Challenge (line 6) | type Challenge struct FILE: lib/challenge/challengetest/challengetest.go function New (line 13) | func New(t *testing.T) *challenge.Challenge { FILE: lib/challenge/challengetest/challengetest_test.go function TestNew (line 5) | func TestNew(t *testing.T) { FILE: lib/challenge/error.go function NewError (line 16) | func NewError(verb, publicReason string, privateReason error) *Error { type Error (line 25) | type Error struct method Error (line 32) | func (e *Error) Error() string { method Unwrap (line 36) | func (e *Error) Unwrap() error { FILE: lib/challenge/interface.go function Register (line 21) | func Register(name string, impl Impl) { function Get (line 28) | func Get(name string) (Impl, bool) { function Methods (line 35) | func Methods() []string { type IssueInput (line 46) | type IssueInput struct method Valid (line 54) | func (in *IssueInput) Valid() error { type ValidateInput (line 70) | type ValidateInput struct method Valid (line 76) | func (in *ValidateInput) Valid() error { type Impl (line 92) | type Impl interface FILE: lib/challenge/metarefresh/metarefresh.go function init (line 18) | func init() { type Impl (line 22) | type Impl struct method Setup (line 24) | func (i *Impl) Setup(mux *http.ServeMux) {} method Issue (line 26) | func (i *Impl) Issue(w http.ResponseWriter, r *http.Request, lg *slog.... method Validate (line 55) | func (i *Impl) Validate(r *http.Request, lg *slog.Logger, in *challeng... FILE: lib/challenge/metarefresh/metarefresh_templ.go function page (line 18) | func page(redir string, difficulty int, showMeta bool, loc *localization... FILE: lib/challenge/preact/js/app.tsx function toHexString (line 9) | function toHexString(arr: Uint8Array) { type PreactInfo (line 15) | interface PreactInfo { FILE: lib/challenge/preact/preact.go function renderAppJS (line 26) | func renderAppJS(ctx context.Context, out io.Writer) error { function init (line 33) | func init() { type impl (line 37) | type impl struct method Setup (line 39) | func (i *impl) Setup(mux *http.ServeMux) {} method Issue (line 41) | func (i *impl) Issue(w http.ResponseWriter, r *http.Request, lg *slog.... method Validate (line 63) | func (i *impl) Validate(r *http.Request, lg *slog.Logger, in *challeng... FILE: lib/challenge/preact/preact_templ.go function page (line 16) | func page(redir, challenge string, difficulty int, loc *localization.Sim... FILE: lib/challenge/proofofwork/proofofwork.go function init (line 19) | func init() { type Impl (line 24) | type Impl struct method Setup (line 28) | func (i *Impl) Setup(mux *http.ServeMux) {} method Issue (line 30) | func (i *Impl) Issue(w http.ResponseWriter, r *http.Request, lg *slog.... method Validate (line 35) | func (i *Impl) Validate(r *http.Request, lg *slog.Logger, in *chall.Va... FILE: lib/challenge/proofofwork/proofofwork_templ.go function page (line 16) | func page(localizer *localization.SimpleLocalizer) templ.Component { FILE: lib/challenge/proofofwork/proofofwork_test.go function mkRequest (line 15) | func mkRequest(t *testing.T, values map[string]string) *http.Request { function TestValidateNilRuleChallenge (line 40) | func TestValidateNilRuleChallenge(t *testing.T) { function TestBasic (line 89) | func TestBasic(t *testing.T) { FILE: lib/config.go type Options (line 30) | type Options struct function LoadPoliciesOrDefault (line 58) | func LoadPoliciesOrDefault(ctx context.Context, fname string, defaultDif... function New (line 101) | func New(opts Options) (*Server, error) { FILE: lib/config/asn.go type ASNs (line 12) | type ASNs struct method Valid (line 16) | func (a *ASNs) Valid() error { function isPrivateASN (line 35) | func isPrivateASN(asn uint32) bool { FILE: lib/config/asn_test.go function TestASNsValid (line 9) | func TestASNsValid(t *testing.T) { function TestIsPrivateASN (line 39) | func TestIsPrivateASN(t *testing.T) { FILE: lib/config/check.go type AllChecks (line 18) | type AllChecks struct type AnyChecks (line 22) | type AnyChecks struct type Check (line 26) | type Check struct method Valid (line 31) | func (c *Check) Valid(ctx context.Context) error { FILE: lib/config/config.go type Rule (line 36) | type Rule method Valid (line 47) | func (r Rule) Valid() error { constant RuleUnknown (line 39) | RuleUnknown Rule = "" constant RuleAllow (line 40) | RuleAllow Rule = "ALLOW" constant RuleDeny (line 41) | RuleDeny Rule = "DENY" constant RuleChallenge (line 42) | RuleChallenge Rule = "CHALLENGE" constant RuleWeigh (line 43) | RuleWeigh Rule = "WEIGH" constant RuleBenchmark (line 44) | RuleBenchmark Rule = "DEBUG_BENCHMARK" constant DefaultAlgorithm (line 56) | DefaultAlgorithm = "fast" type BotConfig (line 58) | type BotConfig struct method Zero (line 75) | func (b BotConfig) Zero() bool { method Valid (line 95) | func (b *BotConfig) Valid() error { type ChallengeRules (line 191) | type ChallengeRules struct method Valid (line 203) | func (cr ChallengeRules) Valid() error { type ImportStatement (line 225) | type ImportStatement struct method open (line 230) | func (is *ImportStatement) open() (fs.File, error) { method load (line 240) | func (is *ImportStatement) load() error { method Valid (line 279) | func (is *ImportStatement) Valid() error { type BotOrImport (line 283) | type BotOrImport struct method Valid (line 288) | func (boi *BotOrImport) Valid() error { type StatusCodes (line 304) | type StatusCodes struct method Valid (line 309) | func (sc StatusCodes) Valid() error { type fileConfig (line 327) | type fileConfig struct method Valid (line 339) | func (c *fileConfig) Valid() error { function Load (line 385) | func Load(fin io.Reader, fname string) (*Config, error) { type DnsTTL (line 478) | type DnsTTL struct method Valid (line 483) | func (sc DnsTTL) Valid() error { type Config (line 501) | type Config struct method Valid (line 513) | func (c Config) Valid() error { FILE: lib/config/config_test.go function p (line 14) | func p[V any](v V) *V { return &v } function TestBotValid (line 16) | func TestBotValid(t *testing.T) { function TestConfigValidKnownGood (line 211) | func TestConfigValidKnownGood(t *testing.T) { function TestImportStatement (line 241) | func TestImportStatement(t *testing.T) { function TestConfigValidBad (line 297) | func TestConfigValidBad(t *testing.T) { function TestBotConfigZero (line 321) | func TestBotConfigZero(t *testing.T) { FILE: lib/config/expressionorlist.go type ExpressionOrList (line 17) | type ExpressionOrList struct method String (line 23) | func (eol ExpressionOrList) String() string { method Equal (line 49) | func (eol ExpressionOrList) Equal(rhs *ExpressionOrList) bool { method MarshalYAML (line 65) | func (eol *ExpressionOrList) MarshalYAML() (any, error) { method MarshalJSON (line 83) | func (eol *ExpressionOrList) MarshalJSON() ([]byte, error) { method UnmarshalJSON (line 102) | func (eol *ExpressionOrList) UnmarshalJSON(data []byte) error { method Valid (line 121) | func (eol *ExpressionOrList) Valid() error { FILE: lib/config/expressionorlist_test.go function TestExpressionOrListMarshalJSON (line 12) | func TestExpressionOrListMarshalJSON(t *testing.T) { function TestExpressionOrListMarshalYAML (line 75) | func TestExpressionOrListMarshalYAML(t *testing.T) { function TestExpressionOrListUnmarshalJSON (line 144) | func TestExpressionOrListUnmarshalJSON(t *testing.T) { function TestExpressionOrListString (line 217) | func TestExpressionOrListString(t *testing.T) { FILE: lib/config/geoip.go type GeoIP (line 16) | type GeoIP struct method Valid (line 20) | func (g *GeoIP) Valid() error { FILE: lib/config/geoip_test.go function TestGeoIPValid (line 8) | func TestGeoIPValid(t *testing.T) { FILE: lib/config/impressum.go type Impressum (line 12) | type Impressum struct method Render (line 17) | func (i Impressum) Render(_ context.Context, w io.Writer) error { method Valid (line 24) | func (i Impressum) Valid() error { type ImpressumPage (line 42) | type ImpressumPage struct method Render (line 47) | func (ip ImpressumPage) Render(_ context.Context, w io.Writer) error { method Valid (line 55) | func (ip ImpressumPage) Valid() error { FILE: lib/config/impressum_test.go function TestImpressumValid (line 9) | func TestImpressumValid(t *testing.T) { FILE: lib/config/logging.go type Logging (line 16) | type Logging struct method Valid (line 27) | func (l *Logging) Valid() error { method Default (line 52) | func (Logging) Default() *Logging { constant LogSinkStdio (line 23) | LogSinkStdio = "stdio" constant LogSinkFile (line 24) | LogSinkFile = "file" type LoggingFileConfig (line 58) | type LoggingFileConfig struct method Valid (line 67) | func (lfc *LoggingFileConfig) Valid() error { method Zero (line 98) | func (lfc LoggingFileConfig) Zero() bool { method Default (line 115) | func (LoggingFileConfig) Default() *LoggingFileConfig { FILE: lib/config/logging_test.go function TestLoggingValid (line 8) | func TestLoggingValid(t *testing.T) { FILE: lib/config/opengraph.go type openGraphFileConfig (line 15) | type openGraphFileConfig struct method Valid (line 29) | func (og *openGraphFileConfig) Valid() error { type OpenGraph (line 22) | type OpenGraph struct FILE: lib/config/opengraph_test.go function TestOpenGraphFileConfigValid (line 8) | func TestOpenGraphFileConfigValid(t *testing.T) { FILE: lib/config/store.go type Store (line 17) | type Store struct method Valid (line 22) | func (s *Store) Valid() error { FILE: lib/config/store_test.go function TestStoreValid (line 13) | func TestStoreValid(t *testing.T) { FILE: lib/config/threshold.go type Threshold (line 32) | type Threshold struct method Valid (line 39) | func (t Threshold) Valid() error { FILE: lib/config/threshold_test.go function TestThresholdValid (line 11) | func TestThresholdValid(t *testing.T) { function TestDefaultThresholdsValid (line 85) | func TestDefaultThresholdsValid(t *testing.T) { function TestLoadActuallyLoadsThresholds (line 95) | func TestLoadActuallyLoadsThresholds(t *testing.T) { FILE: lib/config/weight.go type Weight (line 3) | type Weight struct FILE: lib/config_test.go function TestInvalidChallengeMethod (line 14) | func TestInvalidChallengeMethod(t *testing.T) { function TestBadConfigs (line 20) | func TestBadConfigs(t *testing.T) { function TestGoodConfigs (line 37) | func TestGoodConfigs(t *testing.T) { FILE: lib/http.go function matchRedirectDomain (line 38) | func matchRedirectDomain(allowed []string, host string) bool { type CookieOpts (line 55) | type CookieOpts struct method SetCookie (line 63) | func (s *Server) SetCookie(w http.ResponseWriter, cookieOpts CookieOpts) { method ClearCookie (line 101) | func (s *Server) ClearCookie(w http.ResponseWriter, cookieOpts CookieOpt... type UnixRoundTripper (line 136) | type UnixRoundTripper struct method RoundTrip (line 141) | func (t UnixRoundTripper) RoundTrip(req *http.Request) (*http.Response... function randomChance (line 151) | func randomChance(n int) bool { function rot13 (line 156) | func rot13(s string) string { function makeCode (line 171) | func makeCode(err error) string { method RenderIndex (line 192) | func (s *Server) RenderIndex(w http.ResponseWriter, r *http.Request, cr ... method constructRedirectURL (line 294) | func (s *Server) constructRedirectURL(r *http.Request) (string, error) { method RenderBench (line 326) | func (s *Server) RenderBench(w http.ResponseWriter, r *http.Request) { method respondWithError (line 334) | func (s *Server) respondWithError(w http.ResponseWriter, r *http.Request... method respondWithStatus (line 338) | func (s *Server) respondWithStatus(w http.ResponseWriter, r *http.Reques... method ServeHTTP (line 351) | func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { method stripBasePrefixFromRequest (line 372) | func (s *Server) stripBasePrefixFromRequest(r *http.Request) *http.Reque... method ServeHTTPNext (line 398) | func (s *Server) ServeHTTPNext(w http.ResponseWriter, r *http.Request) { method signJWT (line 451) | func (s *Server) signJWT(claims jwt.MapClaims) (string, error) { FILE: lib/http_test.go function TestSetCookie (line 14) | func TestSetCookie(t *testing.T) { function TestClearCookie (line 58) | func TestClearCookie(t *testing.T) { function TestClearCookieWithDomain (line 83) | func TestClearCookieWithDomain(t *testing.T) { function TestClearCookieWithDynamicDomain (line 108) | func TestClearCookieWithDynamicDomain(t *testing.T) { function TestRenderIndexRedirect (line 137) | func TestRenderIndexRedirect(t *testing.T) { function TestRenderIndexUnauthorized (line 177) | func TestRenderIndexUnauthorized(t *testing.T) { function TestNoCacheOnError (line 196) | func TestNoCacheOnError(t *testing.T) { FILE: lib/localization/localization.go type LocalizationService (line 18) | type LocalizationService struct method GetLocalizer (line 72) | func (ls *LocalizationService) GetLocalizer(lang string) *i18n.Localiz... method GetLocalizerFromRequest (line 76) | func (ls *LocalizationService) GetLocalizerFromRequest(r *http.Request... function NewLocalizationService (line 27) | func NewLocalizationService() *LocalizationService { type SimpleLocalizer (line 109) | type SimpleLocalizer struct method T (line 114) | func (sl *SimpleLocalizer) T(messageID string) string { method GetLang (line 119) | func (sl *SimpleLocalizer) GetLang() string { function GetLocalizer (line 128) | func GetLocalizer(r *http.Request) *SimpleLocalizer { FILE: lib/localization/localization_test.go function TestLocalizationService (line 13) | func TestLocalizationService(t *testing.T) { type manifest (line 77) | type manifest struct function loadManifest (line 81) | func loadManifest(t *testing.T) manifest { function TestComprehensiveTranslations (line 98) | func TestComprehensiveTranslations(t *testing.T) { function TestAcceptLanguageQualityFactors (line 143) | func TestAcceptLanguageQualityFactors(t *testing.T) { FILE: lib/policy/bot.go type Bot (line 11) | type Bot struct method Hash (line 19) | func (b Bot) Hash() string { FILE: lib/policy/celchecker.go type CELChecker (line 15) | type CELChecker struct method Hash (line 37) | func (cc *CELChecker) Hash() string { method Check (line 41) | func (cc *CELChecker) Check(r *http.Request) (bool, error) { function NewCELChecker (line 20) | func NewCELChecker(cfg *config.ExpressionOrList, dnsObj *dns.Dns) (*CELC... type CELRequest (line 55) | type CELRequest struct method Parent (line 59) | func (cr *CELRequest) Parent() cel.Activation { return nil } method ResolveName (line 61) | func (cr *CELRequest) ResolveName(name string) (any, bool) { FILE: lib/policy/checker.go type RemoteAddrChecker (line 20) | type RemoteAddrChecker struct method Check (line 43) | func (rac *RemoteAddrChecker) Check(r *http.Request) (bool, error) { method Hash (line 62) | func (rac *RemoteAddrChecker) Hash() string { function NewRemoteAddrChecker (line 25) | func NewRemoteAddrChecker(cidrs []string) (checker.Impl, error) { type HeaderMatchesChecker (line 66) | type HeaderMatchesChecker struct method Check (line 84) | func (hmc *HeaderMatchesChecker) Check(r *http.Request) (bool, error) { method Hash (line 92) | func (hmc *HeaderMatchesChecker) Hash() string { function NewUserAgentChecker (line 72) | func NewUserAgentChecker(rexStr string) (checker.Impl, error) { function NewHeaderMatchesChecker (line 76) | func NewHeaderMatchesChecker(header, rexStr string) (checker.Impl, error) { type PathChecker (line 96) | type PathChecker struct method Check (line 109) | func (pc *PathChecker) Check(r *http.Request) (bool, error) { method Hash (line 124) | func (pc *PathChecker) Hash() string { function NewPathChecker (line 101) | func NewPathChecker(rexStr string) (checker.Impl, error) { function NewHeaderExistsChecker (line 128) | func NewHeaderExistsChecker(key string) checker.Impl { type headerExistsChecker (line 132) | type headerExistsChecker struct method Check (line 136) | func (hec headerExistsChecker) Check(r *http.Request) (bool, error) { method Hash (line 144) | func (hec headerExistsChecker) Hash() string { function NewHeadersChecker (line 148) | func NewHeadersChecker(headermap map[string]string) (checker.Impl, error) { FILE: lib/policy/checker/checker.go type Impl (line 12) | type Impl interface type Func (line 17) | type Func method Check (line 19) | func (f Func) Check(r *http.Request) (bool, error) { method Hash (line 23) | func (f Func) Hash() string { return internal.FastHash(fmt.Sprintf("%#... type List (line 25) | type List method Check (line 30) | func (l List) Check(r *http.Request) (bool, error) { method Hash (line 47) | func (l List) Hash() string { FILE: lib/policy/checker/checker_test.go type Mock (line 10) | type Mock struct method Check (line 16) | func (m Mock) Check(r *http.Request) (bool, error) { return m.result, ... method Hash (line 17) | func (m Mock) Hash() string { return m.hash } function TestListCheck_AndSemantics (line 19) | func TestListCheck_AndSemantics(t *testing.T) { FILE: lib/policy/checker_test.go function TestRemoteAddrChecker (line 9) | func TestRemoteAddrChecker(t *testing.T) { function TestHeaderMatchesChecker (line 101) | func TestHeaderMatchesChecker(t *testing.T) { function TestHeaderExistsChecker (line 174) | func TestHeaderExistsChecker(t *testing.T) { function TestPathChecker_XOriginalURI (line 216) | func TestPathChecker_XOriginalURI(t *testing.T) { FILE: lib/policy/checkresult.go type CheckResult (line 9) | type CheckResult struct method LogValue (line 15) | func (cr CheckResult) LogValue() slog.Value { FILE: lib/policy/expressions/environment.go function BotEnvironment (line 19) | func BotEnvironment(dnsObj *dns.Dns) (*cel.Env, error) { function ThresholdEnvironment (line 198) | func ThresholdEnvironment() (*cel.Env, error) { function New (line 204) | func New(opts ...cel.EnvOption) (*cel.Env, error) { function Compile (line 237) | func Compile(env *cel.Env, src string) (cel.Program, error) { FILE: lib/policy/expressions/environment_test.go function newTestDNS (line 17) | func newTestDNS(forwardTTL int, reverseTTL int) *dns.Dns { function TestBotEnvironment (line 24) | func TestBotEnvironment(t *testing.T) { function TestThresholdEnvironment (line 594) | func TestThresholdEnvironment(t *testing.T) { function TestNewEnvironment (line 661) | func TestNewEnvironment(t *testing.T) { function boolPtr (line 750) | func boolPtr(b bool) *bool { FILE: lib/policy/expressions/http_headers.go type HTTPHeaders (line 14) | type HTTPHeaders struct method ConvertToNative (line 18) | func (h HTTPHeaders) ConvertToNative(typeDesc reflect.Type) (any, erro... method ConvertToType (line 22) | func (h HTTPHeaders) ConvertToType(typeVal ref.Type) ref.Val { method Equal (line 33) | func (h HTTPHeaders) Equal(other ref.Val) ref.Val { method Type (line 37) | func (h HTTPHeaders) Type() ref.Type { method Value (line 41) | func (h HTTPHeaders) Value() any { return h } method Find (line 43) | func (h HTTPHeaders) Find(key ref.Val) (ref.Val, bool) { method Contains (line 56) | func (h HTTPHeaders) Contains(key ref.Val) ref.Val { method Get (line 61) | func (h HTTPHeaders) Get(key ref.Val) ref.Val { method Iterator (line 69) | func (h HTTPHeaders) Iterator() traits.Iterator { panic("TODO(Xe): imp... method IsZeroValue (line 71) | func (h HTTPHeaders) IsZeroValue() bool { method Size (line 75) | func (h HTTPHeaders) Size() ref.Val { return types.Int(len(h.Header)) } FILE: lib/policy/expressions/http_headers_test.go function TestHTTPHeaders (line 10) | func TestHTTPHeaders(t *testing.T) { FILE: lib/policy/expressions/loadavg.go type loadAvg (line 12) | type loadAvg struct method updateThread (line 17) | func (l *loadAvg) updateThread(ctx context.Context) { method update (line 33) | func (l *loadAvg) update() { function init (line 48) | func init() { function Load1 (line 53) | func Load1() float64 { function Load5 (line 59) | func Load5() float64 { function Load15 (line 65) | func Load15() float64 { FILE: lib/policy/expressions/url_values.go type URLValues (line 17) | type URLValues struct method ConvertToNative (line 21) | func (u URLValues) ConvertToNative(typeDesc reflect.Type) (any, error) { method ConvertToType (line 25) | func (u URLValues) ConvertToType(typeVal ref.Type) ref.Val { method Equal (line 36) | func (u URLValues) Equal(other ref.Val) ref.Val { method Type (line 40) | func (u URLValues) Type() ref.Type { method Value (line 44) | func (u URLValues) Value() any { return u } method Find (line 46) | func (u URLValues) Find(key ref.Val) (ref.Val, bool) { method Contains (line 59) | func (u URLValues) Contains(key ref.Val) ref.Val { method Get (line 64) | func (u URLValues) Get(key ref.Val) ref.Val { method Iterator (line 72) | func (u URLValues) Iterator() traits.Iterator { panic("TODO(Xe): imple... method IsZeroValue (line 74) | func (u URLValues) IsZeroValue() bool { method Size (line 78) | func (u URLValues) Size() ref.Val { return types.Int(len(u.Values)) } FILE: lib/policy/expressions/url_values_test.go function TestURLValues (line 10) | func TestURLValues(t *testing.T) { FILE: lib/policy/policy.go type ParsedConfig (line 36) | type ParsedConfig struct function newParsedConfig (line 51) | func newParsedConfig(orig *config.Config) *ParsedConfig { function ParseConfig (line 59) | func ParseConfig(ctx context.Context, fin io.Reader, fname string, defau... FILE: lib/policy/policy_test.go function TestDefaultPolicyMustParse (line 13) | func TestDefaultPolicyMustParse(t *testing.T) { function TestGoodConfigs (line 27) | func TestGoodConfigs(t *testing.T) { function TestBadConfigs (line 64) | func TestBadConfigs(t *testing.T) { FILE: lib/policy/thresholds.go type Threshold (line 9) | type Threshold struct function ParsedThresholdFromConfig (line 14) | func ParsedThresholdFromConfig(t config.Threshold) (*Threshold, error) { type ThresholdRequest (line 34) | type ThresholdRequest struct method Parent (line 38) | func (tr *ThresholdRequest) Parent() cel.Activation { return nil } method ResolveName (line 40) | func (tr *ThresholdRequest) ResolveName(name string) (any, bool) { FILE: lib/redirect_security_test.go function TestRedirectSecurity (line 14) | func TestRedirectSecurity(t *testing.T) { FILE: lib/store/actorifiedstore.go type unit (line 10) | type unit struct type ActorifiedStore (line 12) | type ActorifiedStore struct method Close (line 42) | func (a *ActorifiedStore) Close() { a.cancel() } method Delete (line 44) | func (a *ActorifiedStore) Delete(ctx context.Context, key string) error { method Get (line 52) | func (a *ActorifiedStore) Get(ctx context.Context, key string) ([]byte... method Set (line 56) | func (a *ActorifiedStore) Set(ctx context.Context, key string, value [... method actorDelete (line 68) | func (a *ActorifiedStore) actorDelete(ctx context.Context, key string)... method actorSet (line 76) | func (a *ActorifiedStore) actorSet(ctx context.Context, req *actorSetR... type actorSetReq (line 21) | type actorSetReq struct function NewActorifiedStore (line 27) | func NewActorifiedStore(backend Interface) *ActorifiedStore { FILE: lib/store/bbolt/bbolt.go type Store (line 38) | type Store struct method Delete (line 43) | func (s *Store) Delete(ctx context.Context, key string) error { method Get (line 60) | func (s *Store) Get(ctx context.Context, key string) ([]byte, error) { method Set (line 103) | func (s *Store) Set(ctx context.Context, key string, value []byte, exp... method cleanup (line 124) | func (s *Store) cleanup(ctx context.Context) error { method IsPersistent (line 152) | func (s *Store) IsPersistent() bool { method cleanupThread (line 156) | func (s *Store) cleanupThread(ctx context.Context) { FILE: lib/store/bbolt/bbolt_test.go function TestImpl (line 11) | func TestImpl(t *testing.T) { FILE: lib/store/bbolt/factory.go function init (line 20) | func init() { type Factory (line 26) | type Factory struct method Build (line 30) | func (Factory) Build(ctx context.Context, data json.RawMessage) (store... method Valid (line 56) | func (Factory) Valid(data json.RawMessage) error { type Config (line 70) | type Config struct method Valid (line 76) | func (c Config) Valid() error { FILE: lib/store/bbolt/factory_test.go function TestFactoryValid (line 9) | func TestFactoryValid(t *testing.T) { FILE: lib/store/interface.go type Interface (line 31) | type Interface interface function z (line 47) | func z[T any]() T { return *new(T) } type JSON (line 49) | type JSON struct method Delete (line 54) | func (j *JSON[T]) Delete(ctx context.Context, key string) error { method Get (line 62) | func (j *JSON[T]) Get(ctx context.Context, key string) (T, error) { method Set (line 80) | func (j *JSON[T]) Set(ctx context.Context, key string, value T, expiry t... method IsPersistent (line 97) | func (j *JSON[T]) IsPersistent() bool { FILE: lib/store/json_test.go function TestJSON (line 11) | func TestJSON(t *testing.T) { FILE: lib/store/memory/memory.go type factory (line 13) | type factory struct method Build (line 15) | func (factory) Build(ctx context.Context, _ json.RawMessage) (store.In... method Valid (line 19) | func (factory) Valid(json.RawMessage) error { return nil } function init (line 21) | func init() { type impl (line 25) | type impl struct method Delete (line 29) | func (i *impl) Delete(_ context.Context, key string) error { method Get (line 37) | func (i *impl) Get(_ context.Context, key string) ([]byte, error) { method Set (line 46) | func (i *impl) Set(_ context.Context, key string, value []byte, expiry... method IsPersistent (line 51) | func (i *impl) IsPersistent() bool { method cleanupThread (line 55) | func (i *impl) cleanupThread(ctx context.Context) { function New (line 70) | func New(ctx context.Context) store.Interface { FILE: lib/store/memory/memory_test.go function TestImpl (line 9) | func TestImpl(t *testing.T) { FILE: lib/store/registry.go type Factory (line 15) | type Factory interface function Register (line 20) | func Register(name string, impl Factory) { function Get (line 27) | func Get(name string) (Factory, bool) { function Methods (line 34) | func Methods() []string { FILE: lib/store/s3api/factory.go function init (line 21) | func init() { type S3API (line 26) | type S3API interface type Factory (line 35) | type Factory struct method Build (line 39) | func (f Factory) Build(ctx context.Context, data json.RawMessage) (sto... method Valid (line 77) | func (Factory) Valid(data json.RawMessage) error { type Config (line 90) | type Config struct method Valid (line 95) | func (c Config) Valid() error { FILE: lib/store/s3api/s3api.go type Store (line 16) | type Store struct method Delete (line 21) | func (s *Store) Delete(ctx context.Context, key string) error { method Get (line 33) | func (s *Store) Get(ctx context.Context, key string) ([]byte, error) { method Set (line 58) | func (s *Store) Set(ctx context.Context, key string, value []byte, exp... method IsPersistent (line 78) | func (Store) IsPersistent() bool { return true } FILE: lib/store/s3api/s3api_test.go type mockS3 (line 20) | type mockS3 struct method PutObject (line 27) | func (m *mockS3) PutObject(ctx context.Context, in *s3.PutObjectInput,... method GetObject (line 46) | func (m *mockS3) GetObject(ctx context.Context, in *s3.GetObjectInput,... method DeleteObject (line 60) | func (m *mockS3) DeleteObject(ctx context.Context, in *s3.DeleteObject... method HeadObject (line 68) | func (m *mockS3) HeadObject(ctx context.Context, in *s3.HeadObjectInpu... function TestImpl (line 77) | func TestImpl(t *testing.T) { function TestKeyNormalization (line 88) | func TestKeyNormalization(t *testing.T) { FILE: lib/store/storetest/storetest.go function Common (line 13) | func Common(t *testing.T, f store.Factory, config json.RawMessage) { FILE: lib/store/valkey/factory.go function init (line 16) | func init() { type Config (line 31) | type Config struct method Valid (line 38) | func (c Config) Valid() error { type Sentinel (line 65) | type Sentinel struct method Valid (line 73) | func (s Sentinel) Valid() error { type redisClient (line 104) | type redisClient interface type Factory (line 111) | type Factory struct method Valid (line 113) | func (Factory) Valid(data json.RawMessage) error { method Build (line 121) | func (Factory) Build(ctx context.Context, data json.RawMessage) (store... FILE: lib/store/valkey/valkey.go type Store (line 12) | type Store struct method Get (line 18) | func (s *Store) Get(ctx context.Context, key string) ([]byte, error) { method Set (line 29) | func (s *Store) Set(ctx context.Context, key string, value []byte, exp... method Delete (line 33) | func (s *Store) Delete(ctx context.Context, key string) error { method IsPersistent (line 45) | func (s *Store) IsPersistent() bool { FILE: lib/store/valkey/valkey_test.go function TestImpl (line 14) | func TestImpl(t *testing.T) { function TestFactoryValid (line 50) | func TestFactoryValid(t *testing.T) { FILE: lib/thoth/asnchecker.go method ASNCheckerFor (line 17) | func (c *Client) ASNCheckerFor(asns []uint32) checker.Impl { type ASNChecker (line 33) | type ASNChecker struct method Check (line 39) | func (asnc *ASNChecker) Check(r *http.Request) (bool, error) { method Hash (line 67) | func (asnc *ASNChecker) Hash() string { FILE: lib/thoth/asnchecker_test.go function TestASNChecker (line 15) | func TestASNChecker(t *testing.T) { function BenchmarkWithCache (line 66) | func BenchmarkWithCache(b *testing.B) { FILE: lib/thoth/auth.go function authUnaryClientInterceptor (line 10) | func authUnaryClientInterceptor(token string) grpc.UnaryClientInterceptor { function authStreamClientInterceptor (line 26) | func authStreamClientInterceptor(token string) grpc.StreamClientIntercep... FILE: lib/thoth/cachediptoasn.go type IPToASNWithCache (line 15) | type IPToASNWithCache struct method Lookup (line 53) | func (ip2asn *IPToASNWithCache) Lookup(ctx context.Context, lr *iptoas... function NewIpToASNWithCache (line 20) | func NewIpToASNWithCache(next iptoasnv1.IpToASNServiceClient) *IPToASNWi... FILE: lib/thoth/context.go type ctxKey (line 5) | type ctxKey struct function With (line 7) | func With(ctx context.Context, cli *Client) context.Context { function FromContext (line 11) | func FromContext(ctx context.Context) (*Client, bool) { FILE: lib/thoth/geoipchecker.go method GeoIPCheckerFor (line 16) | func (c *Client) GeoIPCheckerFor(countries []string) checker.Impl { type GeoIPChecker (line 32) | type GeoIPChecker struct method Check (line 38) | func (gipc *GeoIPChecker) Check(r *http.Request) (bool, error) { method Hash (line 66) | func (gipc *GeoIPChecker) Hash() string { FILE: lib/thoth/geoipchecker_test.go function TestGeoIPChecker (line 14) | func TestGeoIPChecker(t *testing.T) { FILE: lib/thoth/thoth.go type Client (line 20) | type Client struct method Close (line 70) | func (c *Client) Close() error { method WithIPToASNService (line 77) | func (c *Client) WithIPToASNService(impl iptoasnv1.IpToASNServiceClien... function New (line 26) | func New(ctx context.Context, thothURL, apiToken string, plaintext bool)... FILE: lib/thoth/thoth_test.go function loadSecrets (line 12) | func loadSecrets(t testing.TB) *thoth.Client { function TestNew (line 30) | func TestNew(t *testing.T) { FILE: lib/thoth/thothmock/iptoasn.go function MockIpToASNService (line 13) | func MockIpToASNService() *IpToASNService { type IpToASNService (line 43) | type IpToASNService struct method Lookup (line 48) | func (ip2asn *IpToASNService) Lookup(ctx context.Context, lr *iptoasnv... FILE: lib/thoth/thothmock/withthothmock.go function WithMockThoth (line 10) | func WithMockThoth(t *testing.T) context.Context { FILE: test/cmd/cipra/internal/containerip.go function GetContainerIPAddress (line 12) | func GetContainerIPAddress(containerName string) (string, error) { FILE: test/cmd/cipra/internal/getlanip.go function GetLANIP (line 9) | func GetLANIP() (net.IP, error) { FILE: test/cmd/cipra/internal/unbreakdocker.go function UnbreakDocker (line 14) | func UnbreakDocker(networkName string) error { FILE: test/cmd/cipra/main.go function main (line 27) | func main() { function RunScript (line 83) | func RunScript(ctx context.Context, args ...string) error { FILE: test/cmd/httpdebug/main.go function main (line 15) | func main() { FILE: test/cmd/relayd/main.go function main (line 31) | func main() { FILE: test/cmd/unixhttpd/main.go function init (line 24) | func init() { function main (line 33) | func main() { FILE: test/default-config-macro/compare_bots.py function load_yaml (line 15) | def load_yaml(file_path): function normalize_yaml (line 24) | def normalize_yaml(data): function get_repo_root (line 29) | def get_repo_root(): function main (line 38) | def main(): FILE: test/double_slash/test.mjs function getPage (line 4) | async function getPage(path) { FILE: test/forced-language/test.mjs function getChallengePage (line 1) | async function getChallengePage() { FILE: test/i18n/test.mjs function fetchLanguages (line 1) | async function fetchLanguages() { function getChallengePage (line 14) | async function getChallengePage(lang) { FILE: test/log-file/test.mjs function getPage (line 3) | async function getPage(path) { function getFileSize (line 18) | async function getFileSize(filePath) { FILE: test/robots_txt/test.mjs function getRobotsTxt (line 1) | async function getRobotsTxt() { FILE: test/unix-socket-xff/test.mjs function testWithUserAgent (line 1) | async function testWithUserAgent(userAgent) { FILE: utils/cmd/backoff-retry/main.go function main (line 18) | func main() { FILE: utils/cmd/iplist2rule/blocklist.go function FetchBlocklist (line 17) | func FetchBlocklist(url string) ([]string, error) { FILE: utils/cmd/iplist2rule/main.go type Rule (line 17) | type Rule struct function init (line 24) | func init() { function main (line 45) | func main() { FILE: web/index.go function Base (line 15) | func Base(title string, body templ.Component, impressum *config.Impressu... function BaseWithChallengeAndOGTags (line 19) | func BaseWithChallengeAndOGTags(title string, body templ.Component, impr... function ErrorPage (line 29) | func ErrorPage(msg, mail, code string, localizer *localization.SimpleLoc... function Bench (line 33) | func Bench(localizer *localization.SimpleLocalizer) templ.Component { function honeypotLink (line 37) | func honeypotLink(href string) templ.Component { FILE: web/index_templ.go function base (line 20) | func base(title string, body templ.Component, impressum *config.Impressu... function errorPage (line 295) | func errorPage(message, mail, code string, localizer *localization.Simpl... function StaticHappy (line 449) | func StaticHappy(localizer *localization.SimpleLocalizer) templ.Component { function bench (line 505) | func bench(localizer *localization.SimpleLocalizer) templ.Component { FILE: web/index_test.go function TestBasePrefixInLinks (line 15) | func TestBasePrefixInLinks(t *testing.T) { FILE: web/js/algorithms/fast.ts type ProgressCallback (line 1) | type ProgressCallback = (nonce: number) => void; type ProcessOptions (line 3) | interface ProcessOptions { function process (line 13) | function process( FILE: web/js/main.ts function onDetailsExpand (line 247) | function onDetailsExpand() { FILE: web/js/worker/sha256-purejs.ts function toHexString (line 9) | function toHexString(arr: Uint8Array): string { FILE: xess/xess.go function init (line 23) | func init() { function Mount (line 35) | func Mount(mux *http.ServeMux) {