2026-08-07 - 2026-11-07
Overview
114 Pull requests merged by 2 users
Merged
#231 Record origin changes and show them on the prefix page (closes #161)
Merged
#230 Drop an update only when its handler's queue is full (closes #229)
Merged
#210 Rewrite the README sentence by sentence (closes #157)
Merged
#224 Rewrite TODO.md sentence by sentence (part of #157)
Merged
#228 Take every down peer out of the table in one walk (closes #225)
Merged
#227 Let the lock go for as long as it was held during Overview's walk (closes #226)
Merged
#223 Lengthen the WHOIS fetcher's wait after a skipped lookup (closes #222)
Merged
#220 Keep taking messages while a peer's session goes down (closes #216)
Merged
#221 Pause a registry's WHOIS server after it refuses a query (closes #218)
Merged
#219 Keep one entry per AS in the AS handler's batch (closes #217)
Merged
#214 Make the routewatch tests pass on a loaded host (closes #213)
Merged
#212 Keep working out the home page cards after startup (closes #211)
Merged
#209 Say in README why RouteWatch exists (closes #204)
Merged
#208 Give every JSON answer @meta, errors included (closes #201)
Merged
#207 Give every API value with a unit as a number (closes #199)
Merged
#206 Give every IP lookup result the same fields (closes #200)
Merged
#205 Trust reverse proxies at private addresses by default (closes #198)
Merged
#196 Show figures of the routing table on the home page (closes #154)
Merged
#197 deploy
Merged
#166 next into main
Merged
#195 Remove the per-peer route tables (closes #122)
Merged
#194 Read every route from the routing table in memory (part of #122)
Merged
#193 Make a timed batch write on every tick (closes #192)
Merged
#191 Start no AS, peer or peering write after the stop deadline (closes #189)
Merged
#190 Start no prefix flush after the stop deadline (closes #188)
Merged
#187 Write the routing table every second and read it at startup (part of #122)
Merged
#186 Store the routing table in the database (part of #122)
Merged
#185 Add internal/routetable, the routing table in memory (part of #122)
Merged
#184 Report which public blocklists list an address in the IP lookup (closes #158)
Merged
#183 Show the IP information API on the home page (closes #156)
Merged
#182 Let the AS page's prefix lists fold (closes #155)
Merged
#181 List an AS's prefixes by mask length, shortest first (closes #153)
Merged
#180 Show whether the status on / and /status is fresh (closes #152)
Merged
#179 Take Brazilian AS details from NIC.br's WHOIS server (closes #174)
Merged
#178 Stop asinfo-gen when the as.csv download breaks off (closes #177)
Merged
#176 Keep the AS list when the asupdate generator fails (closes #173)
Merged
#175 Read only the AS's objects in RIPE, APNIC and AFRINIC answers (closes #168)
Merged
#172 Keep accented letters in AS names (closes #165)
Merged
#171 Show ages on the AS and prefix pages in words (closes #163)
Merged
#170 Never move last seen back or first seen forward (closes #162)
Merged
#169 Show route churn as a whole count per minute (closes #160)
Merged
#167 Back off WHOIS lookups more slowly and stop asking for personal data (closes #159)
Merged
#164 Make the home page's AS name search work (closes #151)
Merged
#149 deploy
Merged
#87 next into main
Merged
#147 Log the start-up checkpoint's figures under their own names (closes #117)
Merged
#148 Add the Rationale section to README (closes #121)
Merged
#146 Treat a path with AS 0 anywhere as a withdrawal (closes #141)
Merged
#145 Keep the database files, logs and binaries out of the build context (closes #120)
Merged
#142 Keep prefixes that do not parse out of the prefix tables (closes #114)
Merged
#144 Show the MIT licence in the page footers (closes #119)
Merged
#143 Bound the WHOIS fetcher's success and error time lists (closes #118)
Merged
#140 Reset the peering handler's dropped_paths figure after each log line (closes #116)
Merged
#138 Handle an announcement without an origin like a replacement (closes #113)
Merged
#139 Read the drop counter atomically and set the WHOIS fetcher before serving (closes #115)
Merged
#136 Answer HEAD requests and give 405 a plain message (closes #111)
Merged
#137 Store a new prefix's earliest timestamp as first_seen (closes #112)
Merged
#135 Leave SIGINT and SIGTERM to fx (closes #131)
Merged
#134 Bound the IP lookup's address list and name lookups (closes #110)
Merged
#130 Bound each shutdown stage by the stop deadline (closes #100)
Merged
#133 Answer 500, not 404, when the IP lookup cannot read the database (closes #109)
Merged
#132 Add the HTTP hardening the policy requires before 1.0 (closes #108)
Merged
#126 Checkpoint without waiting on readers and log a busy checkpoint (closes #102)
Merged
#129 Read the AS page from bounded lookups (closes #104)
Merged
#128 Cap WHOIS answers and follow referrals only to WHOIS servers (closes #106)
Merged
#127 Retry a WHOIS lookup that failed instead of storing it as complete (closes #105)
Merged
#124 Keep a peer-down until its route delete succeeds (closes #101)
Merged
#125 Build and test with a supported Go release (closes #107)
Merged
#123 Percent-decode URL parameters before parsing them (closes #103)
Merged
#99 Bring README and TODO.md up to date with the code (closes #72)
Merged
#98 Make live route writes cheaper so the prefix handler keeps up (closes #96)
Merged
#97 Run database maintenance under the database lock (closes #94)
Merged
#95 Drain the handler queues before stopping the handlers on shutdown (closes #69)
Merged
#91 Keep a trailing AS set out of the origin and the peerings (closes #75)
Merged
#93 Let bgp_peer_count drop to 0 (closes #92)
Merged
#90 Count every peer the feed has heard from in bgp_peer_count (closes #74)
Merged
#85 Re-vendor the shared files from sneak/prompts at 0653579 (closes #52)
Merged
#89 Read feed lines up to 1 MiB (closes #76)
Merged
#88 Remove a peer's live routes when its session goes down (closes #56)
Merged
#79 Sample the prefix-length pages with bounded lookups, each prefix once (closes #66)
Merged
#80 Answer 504, not 408, when a request outlasts its time limit
Merged
#83 Write each handler batch from its flush goroutine, outside the mutex
Merged
#82 Identify a live route by prefix and peer
Merged
#60 Reconnect when RIS Live ends or stalls the stream
Merged
#84 Show the prefix page's origin names from the prefix query
Merged
#78 Exit with status 1 when the web server cannot listen (closes #73)
Merged
#81 Parse the prefix on the prefix pages before looking it up
Merged
#59 Ignore routes shorter than /8 or /16 in the IP lookup
Merged
#58 Apply each peer's last update for a prefix in a batch
Merged
#77 Count every reconnect in reconnect_count (closes #68)
Merged
#6 Next milestone: production memory under 5 GiB, ready for upaas
Merged
#50 Serve the /api/v1/stats prefix distribution from memory (closes #30)
Merged
#49 Create new databases with auto_vacuum incremental (closes #43)
Merged
#51 Look up IP addresses by prefix at each mask length
Merged
#47 Stamp the git tag or short commit in a plain docker build (closes #46)
Merged
#44 Container makes its data directory usable itself (closes #42)
Merged
#41 Add a .dockerignore (closes #39)
Merged
#40 README: license and author up front; bring TODO.md up to date (closes #38)
Merged
#37 Add MIT LICENSE (closes #1)
Merged
#36 Stop the streamer without sending on closed queues (closes #34)
Merged
#35 Let the daemon receive docker stop's signal itself (closes #33)
Merged
#32 Refuse invalid settings at start, health check follows PORT (closes #31)
Merged
#29 Serve /api/v1/stats counts from realtime in-memory counters (closes #27)
Merged
#26 Add _txlock=immediate so batch writes wait instead of dropping (closes #25)
Merged
#24 Cap glibc malloc arenas to keep non-Go RSS bounded (closes #23)
Merged
#22 Set GOMEMLIMIT in the image and document the memory budget (closes #13)
Merged
#21 Shrink the four handler queues from 100,000 to 20,000 (closes #11)
Merged
#19 Fix two goroutine leaks: stats handlers on timeout, streamer tickers on reconnect (closes #12)
Merged
#18 Stop decoding unused Community and Raw fields of RIS messages
Merged
#17 Add .editorconfig and Gitea CI workflow (closes #14)
Merged
#16 Bound peering AS-path map and swap it instead of copying
Merged
#15 Bound SQLite memory across the whole connection pool (closes #8)
Merged
#7 Run make check inside the Docker build with a pinned lint stage (closes #5)
Merged
#4 Skip live network feed test under -short for deterministic make check (closes #2)
1 Pull request proposed by 1 user
Proposed
#202 next into main
113 Issues closed from 2 users
Closed
#161 add announcement list to the prefix page
Closed
#229 The prefix handler still dropped updates in one burst with the fixes for 216, 225 and 226 in
Closed
#157 Rewrite README.md and the other prose documents sentence by sentence, on Fable
Closed
#225 The prefix handler still drops updates when sessions go down and come straight back
Closed
#226 The home page's once-a-minute refresh stops the prefix handler, which drops updates
Closed
#222 A skipped WHOIS lookup leaves the fetch interval short, so IANA is asked about paused ASes up to once a second
Closed
#216 A session going down stops the prefix handler for over a second, and it drops updates
Closed
#218 The WHOIS fetcher keeps asking a registry that refuses it
Closed
#217 The AS handler drops updates when the feed bursts
Closed
#215 The peering handler's dropped-count test fills 500,000 paths
Closed
#213 Three prefix handler tests still fail on timing under load
Closed
#211 The home page cards are never worked out again after startup
Closed
#204 rationale section for README
Closed
#201 all json responses should include the @meta object
Closed
#199 execution_time should be execution_time_ms and not be a string but the actual value
Closed
#200 IP lookup doesn't give the data
Closed
#198 /ip doesn't correctly calculate client IP
Closed
#154 / page needs some additional useful links
Closed
#122 Keep the whole routing table in memory and in one database table, pruning only redundant routes so it stays bounded
Closed
#192 Timed batch writes happen only on every other tick
Closed
#189 The AS, peer and peering handlers can start a write after the stop deadline
Closed
#188 next is red: the prefix handler's stop-deadline test fails intermittently
Closed
#158 IP lookup: report the public blocklists that list an address, from cached copies
Closed
#156 index page needs a card showing example code to curl an IP info page from the api, with example response
Closed
#155 ipv4 and ipv6 prefix lists should be collapsible sections on the as view page
Closed
#153 the AS view page should sort prefixes in the prefix list by prefix length ascending
Closed
#152 needs a connection status freshness indicator on / and /status
Closed
#174 Brazilian AS names from LACNIC show replacement characters
Closed
#177 asinfo-gen loops forever when the as.csv download is cut off
Closed
#173 make asupdate replaces the AS list with an empty file when the generator fails
Closed
#168 APNIC lookups store the AS block's dates instead of the AS's
Closed
#165 AS names lose or garble accented letters
Closed
#163 Ages show as raw durations such as 360h0m0s ago
Closed
#162 First seen can be later than last seen when a collector sends old updates
Closed
#160 "Route Churn/sec" figure is wrong
Closed
#159 the whois fetcher needs to be slightly more aggressive
Closed
#151 as name search does not work
Closed
#150 prod error
Closed
#117 The start-up WAL checkpoint log line labels the busy flag as wal_pages and always prints zeros after a successful checkpoint
Closed
#121 README has no Rationale section, which REPO_POLICIES requires
Closed
#141 A path with AS 0 before its end is stored as a normal route, where RFC 7607 treats it as a withdrawal
Closed
#120 The .dockerignore database patterns do not match db.sqlite, and the repository's *.log and binary suffixes are missing from it
Closed
#114 A prefix string that does not parse is written into the prefixes table and counted in the prefix totals
Closed
#119 The home and status page footers say WTFPL while LICENSE and README say MIT
Closed
#118 The WHOIS fetcher's success and error time lists grow without bound unless the stats endpoints are polled
Closed
#116 The peering handler's dropped_paths log figure is never reset, so every run reports the total since start
Closed
#113 An announcement whose path gives no origin leaves the peer's old route live and cancels a withdrawal in the same batch
Closed
#115 The handler drop counter is written atomically but read without synchronisation, and the WHOIS fetcher pointer is set after the server starts serving
Closed
#111 HEAD requests answer 405 on every route, and a 405 on the JSON routes says "Internal server error"
Closed
#112 A new prefix's first_seen is the latest timestamp among the batch's updates for it, not the earliest
Closed
#131 The daemon handles SIGINT and SIGTERM itself as well as through fx, and logs a shutdown failure on a clean stop
Closed
#110 The IP lookup accepts an unbounded address list, gives PTR lookups no limit of their own, and echoes private addresses of internal names
Closed
#100 Shutdown ignores its deadline and upaas kills the container 10 seconds after SIGTERM, so the final writes are cut off and a stop exits with status 1
Closed
#109 The IP lookup answers 404 "No routes found" when the database read fails
Closed
#108 The HTTP hardening REPO_POLICIES requires before a 1.0 tag is missing: security headers, trusted proxies for forwarded headers, generic error messages
Closed
#102 The 5-second TRUNCATE checkpoint holds the database lock for up to the busy timeout while any read is in progress, and logs the busy result as a success
Closed
#104 The AS page reads every route of the AS, one random row per peer and prefix, so the largest ASes head for a 504 as the tables fill
Closed
#106 The WHOIS client reads a server's answer into memory with no size cap and follows a referral to any host and port
Closed
#105 A WHOIS lookup whose RIR query fails or returns nothing is stored as complete and the AS is not retried for 30 days
Closed
#101 A peer-down whose route delete fails or is cut short is lost for good, so the peer's routes stay live
Closed
#107 The image builds and tests the daemon with Go 1.24, a release line that no longer receives security fixes
Closed
#103 The home page cannot look up any IPv6 address: percent-encoded URL parameters are read undecoded and answer 400
Closed
#72 README endpoint list and database schema do not match the code
Closed
#96 The prefix handler drops a quarter of its updates on the live feed: route writes are slower than the feed
Closed
#94 Database maintenance fails or makes batch writes fail: it runs outside the database lock
Closed
#69 Shutdown loses the updates still in the handler queues
Closed
#75 An AS set in a path is flattened into the path, giving a wrong origin AS and false peerings
Closed
#92 bgp_peer_count never drops to 0
Closed
#74 bgp_peer_count in /api/v1/stats counts only peers whose session opened since startup
Closed
#52 Re-vendor the canonical files from sneak/prompts at dd4027b
Closed
#76 A feed line longer than 64 KiB ends the connection
Closed
#56 Routes of a peer whose BGP session goes down are never removed
Closed
#66 The prefix-length pages read every route of that length, and can list a prefix more than once
Closed
#70 A request past its time limit answers 408, and /api/v1/stats answers 500
Closed
#65 The batch handlers take nothing off their queues while they write to the database, so updates are dropped
Closed
#55 Live routes keyed by origin AS: an origin change or a withdrawal sent with announcements leaves a stale route
Closed
#53 The feed stops for good, health still ok, when RIS Live ends or stalls the connection
Closed
#67 The prefix page reads every route of each origin AS just to show the AS name
Closed
#73 The daemon keeps running without its web server when it cannot listen on its port
Closed
#71 Prefix pages answer 500 for a malformed prefix and 404 for a prefix written in another valid form
Closed
#57 IP lookup can name the AS of a default or near-default route as an address's owner
Closed
#54 A prefix batch keeps one update per prefix across all peers, losing the rest
Closed
#68 reconnect_count in /api/v1/stats never leaves 0
Closed
#64 Routes of a peer whose session goes down stay in the live table for good
Closed
#63 A peer's routes are stored per origin AS, so some withdrawals and every origin change leave a stale route
Closed
#62 The prefix handler keeps one update per prefix in each batch, so other peers' updates are lost
Closed
#61 The stream stops for good when the server ends it normally, and the health check still reports it connected
Closed
#3 Production memory: run under 5 GiB on real internet feed (was killed at ~12 GiB)
Closed
#30 /api/v1/stats answers HTTP 500 after 35 hours on the live feed
Closed
#43 auto_vacuum is never enabled, so incremental vacuum frees nothing
Closed
#48 Looking up an IPv6 address reads every IPv6 route, so it times out on a production-sized database
Closed
#46 docker build . stamps dev, not the git tag or short commit
Closed
#45 Run every build, test and lint step in the Dockerfiles at nice -n 19
Closed
#42 The container sets its data directory permissions itself before startup
Closed
#39 Add a .dockerignore
Closed
#38 README and TODO.md: licence and author up front, TODO.md brought up to date
Closed
#1 Add missing standard files: LICENSE, .editorconfig, and a CI workflow
Closed
#34 Stopping the daemon while the feed is flowing can panic with "send on closed channel"
Closed
#33 docker stop kills the daemon 2 seconds after the stop signal
Closed
#31 Ready to run under upaas on fsn1app1: prod branch, settings from env, health check, README section
Closed
#27 Stats endpoint returns 500 once the database passes about 4.5 GiB
Closed
#25 Batch writes fail with "database is locked" thousands of times per hour
Closed
#23 Non-Go memory grows about 70 MiB per minute, past the SQLite hard heap limit
Closed
#13 Enforce a Go memory limit in the image and document memory requirements
Closed
#11 Reduce the four handler queues from 100,000 to 20,000 messages
Closed
#12 Fix two goroutine leaks: stats handlers on timeout, streamer tickers on reconnect
Closed
#9 Stop retaining unused Community and Raw fields of parsed RIS messages
Closed
#20 Shrink the four handler queues from 100,000 to 20,000 (closes #11)
Closed
#10 Bound the peering handler AS-path map and stop copying it every 30 s
Closed
#14 Add .editorconfig and the Gitea CI workflow
Closed
#8 Bound SQLite memory across the whole connection pool
Closed
#5 Dockerfile must run make check with a pinned lint stage (repo policy)
Closed
#2 TestRouteWatchLiveFeed is network-flaky; make make check deterministic
113 Issues created by 2 users
Opened
#3 Production memory: run under 5 GiB on real internet feed (was killed at ~12 GiB)
Opened
#5 Dockerfile must run make check with a pinned lint stage (repo policy)
Opened
#8 Bound SQLite memory across the whole connection pool
Opened
#9 Stop retaining unused Community and Raw fields of parsed RIS messages
Opened
#10 Bound the peering handler AS-path map and stop copying it every 30 s
Opened
#11 Reduce the four handler queues from 100,000 to 20,000 messages
Opened
#12 Fix two goroutine leaks: stats handlers on timeout, streamer tickers on reconnect
Opened
#13 Enforce a Go memory limit in the image and document memory requirements
Opened
#14 Add .editorconfig and the Gitea CI workflow
Opened
#20 Shrink the four handler queues from 100,000 to 20,000 (closes #11)
Opened
#23 Non-Go memory grows about 70 MiB per minute, past the SQLite hard heap limit
Opened
#25 Batch writes fail with "database is locked" thousands of times per hour
Opened
#27 Stats endpoint returns 500 once the database passes about 4.5 GiB
Opened
#30 /api/v1/stats answers HTTP 500 after 35 hours on the live feed
Opened
#31 Ready to run under upaas on fsn1app1: prod branch, settings from env, health check, README section
Opened
#33 docker stop kills the daemon 2 seconds after the stop signal
Opened
#34 Stopping the daemon while the feed is flowing can panic with "send on closed channel"
Opened
#38 README and TODO.md: licence and author up front, TODO.md brought up to date
Opened
#39 Add a .dockerignore
Opened
#42 The container sets its data directory permissions itself before startup
Opened
#43 auto_vacuum is never enabled, so incremental vacuum frees nothing
Opened
#45 Run every build, test and lint step in the Dockerfiles at nice -n 19
Opened
#46 docker build . stamps dev, not the git tag or short commit
Opened
#48 Looking up an IPv6 address reads every IPv6 route, so it times out on a production-sized database
Opened
#52 Re-vendor the canonical files from sneak/prompts at dd4027b
Opened
#53 The feed stops for good, health still ok, when RIS Live ends or stalls the connection
Opened
#54 A prefix batch keeps one update per prefix across all peers, losing the rest
Opened
#55 Live routes keyed by origin AS: an origin change or a withdrawal sent with announcements leaves a stale route
Opened
#56 Routes of a peer whose BGP session goes down are never removed
Opened
#57 IP lookup can name the AS of a default or near-default route as an address's owner
Opened
#61 The stream stops for good when the server ends it normally, and the health check still reports it connected
Opened
#62 The prefix handler keeps one update per prefix in each batch, so other peers' updates are lost
Opened
#63 A peer's routes are stored per origin AS, so some withdrawals and every origin change leave a stale route
Opened
#64 Routes of a peer whose session goes down stay in the live table for good
Opened
#65 The batch handlers take nothing off their queues while they write to the database, so updates are dropped
Opened
#66 The prefix-length pages read every route of that length, and can list a prefix more than once
Opened
#67 The prefix page reads every route of each origin AS just to show the AS name
Opened
#68 reconnect_count in /api/v1/stats never leaves 0
Opened
#69 Shutdown loses the updates still in the handler queues
Opened
#70 A request past its time limit answers 408, and /api/v1/stats answers 500
Opened
#71 Prefix pages answer 500 for a malformed prefix and 404 for a prefix written in another valid form
Opened
#72 README endpoint list and database schema do not match the code
Opened
#73 The daemon keeps running without its web server when it cannot listen on its port
Opened
#74 bgp_peer_count in /api/v1/stats counts only peers whose session opened since startup
Opened
#75 An AS set in a path is flattened into the path, giving a wrong origin AS and false peerings
Opened
#76 A feed line longer than 64 KiB ends the connection
Opened
#86 Release 1.0: what stands between routewatch and a release candidate
Opened
#92 bgp_peer_count never drops to 0
Opened
#94 Database maintenance fails or makes batch writes fail: it runs outside the database lock
Opened
#96 The prefix handler drops a quarter of its updates on the live feed: route writes are slower than the feed
Opened
#100 Shutdown ignores its deadline and upaas kills the container 10 seconds after SIGTERM, so the final writes are cut off and a stop exits with status 1
Opened
#101 A peer-down whose route delete fails or is cut short is lost for good, so the peer's routes stay live
Opened
#102 The 5-second TRUNCATE checkpoint holds the database lock for up to the busy timeout while any read is in progress, and logs the busy result as a success
Opened
#103 The home page cannot look up any IPv6 address: percent-encoded URL parameters are read undecoded and answer 400
Opened
#104 The AS page reads every route of the AS, one random row per peer and prefix, so the largest ASes head for a 504 as the tables fill
Opened
#105 A WHOIS lookup whose RIR query fails or returns nothing is stored as complete and the AS is not retried for 30 days
Opened
#106 The WHOIS client reads a server's answer into memory with no size cap and follows a referral to any host and port
Opened
#107 The image builds and tests the daemon with Go 1.24, a release line that no longer receives security fixes
Opened
#108 The HTTP hardening REPO_POLICIES requires before a 1.0 tag is missing: security headers, trusted proxies for forwarded headers, generic error messages
Opened
#109 The IP lookup answers 404 "No routes found" when the database read fails
Opened
#110 The IP lookup accepts an unbounded address list, gives PTR lookups no limit of their own, and echoes private addresses of internal names
Opened
#111 HEAD requests answer 405 on every route, and a 405 on the JSON routes says "Internal server error"
Opened
#112 A new prefix's first_seen is the latest timestamp among the batch's updates for it, not the earliest
Opened
#113 An announcement whose path gives no origin leaves the peer's old route live and cancels a withdrawal in the same batch
Opened
#114 A prefix string that does not parse is written into the prefixes table and counted in the prefix totals
Opened
#115 The handler drop counter is written atomically but read without synchronisation, and the WHOIS fetcher pointer is set after the server starts serving
Opened
#116 The peering handler's dropped_paths log figure is never reset, so every run reports the total since start
Opened
#117 The start-up WAL checkpoint log line labels the busy flag as wal_pages and always prints zeros after a successful checkpoint
Opened
#118 The WHOIS fetcher's success and error time lists grow without bound unless the stats endpoints are polled
Opened
#119 The home and status page footers say WTFPL while LICENSE and README say MIT
Opened
#120 The .dockerignore database patterns do not match db.sqlite, and the repository's *.log and binary suffixes are missing from it
Opened
#121 README has no Rationale section, which REPO_POLICIES requires
Opened
#122 Keep the whole routing table in memory and in one database table, pruning only redundant routes so it stays bounded
Opened
#131 The daemon handles SIGINT and SIGTERM itself as well as through fx, and logs a shutdown failure on a clean stop
Opened
#141 A path with AS 0 before its end is stored as a normal route, where RFC 7607 treats it as a withdrawal
Opened
#150 prod error
Opened
#151 as name search does not work
Opened
#152 needs a connection status freshness indicator on / and /status
Opened
#153 the AS view page should sort prefixes in the prefix list by prefix length ascending
Opened
#154 / page needs some additional useful links
Opened
#155 ipv4 and ipv6 prefix lists should be collapsible sections on the as view page
Opened
#156 index page needs a card showing example code to curl an IP info page from the api, with example response
Opened
#157 Rewrite README.md and the other prose documents sentence by sentence, on Fable
Opened
#158 IP lookup: report the public blocklists that list an address, from cached copies
Opened
#159 the whois fetcher needs to be slightly more aggressive
Opened
#160 "Route Churn/sec" figure is wrong
Opened
#161 add announcement list to the prefix page
Opened
#162 First seen can be later than last seen when a collector sends old updates
Opened
#163 Ages show as raw durations such as 360h0m0s ago
Opened
#165 AS names lose or garble accented letters
Opened
#168 APNIC lookups store the AS block's dates instead of the AS's
Opened
#173 make asupdate replaces the AS list with an empty file when the generator fails
Opened
#174 Brazilian AS names from LACNIC show replacement characters
Opened
#177 asinfo-gen loops forever when the as.csv download is cut off
Opened
#188 next is red: the prefix handler's stop-deadline test fails intermittently
Opened
#189 The AS, peer and peering handlers can start a write after the stop deadline
Opened
#192 Timed batch writes happen only on every other tick
Opened
#198 /ip doesn't correctly calculate client IP
Opened
#199 execution_time should be execution_time_ms and not be a string but the actual value
Opened
#200 IP lookup doesn't give the data
Opened
#201 all json responses should include the @meta object
Opened
#203 propose additional information we can return/provide in ip lookup objects or any other api responses
Opened
#204 rationale section for README
Opened
#211 The home page cards are never worked out again after startup
Opened
#213 Three prefix handler tests still fail on timing under load
Opened
#215 The peering handler's dropped-count test fills 500,000 paths
Opened
#216 A session going down stops the prefix handler for over a second, and it drops updates
Opened
#217 The AS handler drops updates when the feed bursts
Opened
#218 The WHOIS fetcher keeps asking a registry that refuses it
Opened
#222 A skipped WHOIS lookup leaves the fetch interval short, so IANA is asked about paused ASes up to once a second
Opened
#225 The prefix handler still drops updates when sessions go down and come straight back
Opened
#226 The home page's once-a-minute refresh stops the prefix handler, which drops updates
Opened
#229 The prefix handler still dropped updates in one burst with the fixes for 216, 225 and 226 in