Rename blocklists to IP lists, add IP lookup flags, raise the download limit to 200 MiB #241

Merged
clawbot merged 1 commits from issue-233-ip-lists into next 2026-11-10 10:48:23 +01:00
Collaborator

Implements #233.

  • blocklists becomes ip_lists in the answer. The package is now internal/iplist and the state directory iplists. Nothing keeps the old names working.
  • Every IP lookup result has flags with is_tor and is_bogon, whether or not the address has a route.
  • The largest list file accepted is 200 MiB.

What the diff does not show:

  • The JSON answer's keys come out sorted, so flags reads is_bogon then is_tor, unlike the order in the issue's example.
  • An IPv4 address written as IPv6 (::ffff:1.1.1.1) is judged as the IPv4 address. Otherwise all of them would be bogons, since ::ffff:0:0/96 is reserved.

Disclosures:

  • Deviation: the "over the size limit" row left the download table test, because it would now hold 220 MiB in memory. A new test sends the same case from a generated reader. It and the 199 MiB test each write about 200 MiB to the test's temp directory.
  • Judgement call: the 2026-10-27 TODO.md entry keeps the old word, as a dated record of what was built then. The DShield header in a parser test fixture ("Block List") is that publisher's own text.
  • Rule suppressed: tagliatelle on the two result structs, for snake_case keys, as elsewhere in the repo.
  • Judgement call: TODO.md no longer says a question about the answer's fields waits for sneak. He answered it on #203 (comment).

Model: opus-5-5

Implements https://git.eeqj.de/sneak/routewatch/issues/233. - `blocklists` becomes `ip_lists` in the answer. The package is now `internal/iplist` and the state directory `iplists`. Nothing keeps the old names working. - Every IP lookup result has `flags` with `is_tor` and `is_bogon`, whether or not the address has a route. - The largest list file accepted is 200 MiB. What the diff does not show: - The JSON answer's keys come out sorted, so `flags` reads `is_bogon` then `is_tor`, unlike the order in the issue's example. - An IPv4 address written as IPv6 (`::ffff:1.1.1.1`) is judged as the IPv4 address. Otherwise all of them would be bogons, since `::ffff:0:0/96` is reserved. Disclosures: - Deviation: the "over the size limit" row left the download table test, because it would now hold 220 MiB in memory. A new test sends the same case from a generated reader. It and the 199 MiB test each write about 200 MiB to the test's temp directory. - Judgement call: the 2026-10-27 `TODO.md` entry keeps the old word, as a dated record of what was built then. The DShield header in a parser test fixture ("Block List") is that publisher's own text. - Rule suppressed: `tagliatelle` on the two result structs, for snake_case keys, as elsewhere in the repo. - Judgement call: `TODO.md` no longer says a question about the answer's fields waits for sneak. He answered it on https://git.eeqj.de/sneak/routewatch/issues/203#issuecomment-165190. Model: opus-5-5
clawbot self-assigned this 2026-11-10 10:27:29 +01:00
clawbot added 1 commit 2026-11-10 10:27:29 +01:00
The answer field is now ip_lists, the package internal/iplist and the
state directory iplists. No compatibility is kept for the old names.

Every IP lookup result gains a flags object with is_tor and is_bogon.
The largest list file accepted is now 200 MiB.

Model: opus-5-5
clawbot added the needs-review label 2026-11-10 10:27:29 +01:00
Author
Collaborator

PASS: the rename to IP lists, the flags object and the 200 MiB limit meet #233 and the repo's policies.

Model: opus-5-5

PASS: the rename to IP lists, the `flags` object and the 200 MiB limit meet https://git.eeqj.de/sneak/routewatch/issues/233 and the repo's policies. Model: opus-5-5
clawbot merged commit cf50d195ad into next 2026-11-10 10:48:23 +01:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/routewatch#241