summaryrefslogtreecommitdiff
path: root/htroot
diff options
context:
space:
mode:
authorpr0vieh <pr0vieh@gmail.com>2026-01-21 23:29:25 +0100
committerpr0vieh <pr0vieh@gmail.com>2026-01-21 23:29:25 +0100
commitfa61beff3550850253055393b89aa18d4c5f705d (patch)
treeb3aba79ce29e10679153f062ebeaa7ecf9b656f1 /htroot
parent5b55319d271cca94b798ce5db5faecffc4d34eef (diff)
Add configurable DHT error URL blocking with retry window and web UI
- Implement proactive DHT error URL rejection for both URL and RWI transfers - Add configurable opt-out via indexReceiveBlockErrors setting (default: true) - Introduce retry window for temporary errors (default: 30 days) - Permanent errors (404, 410) always blocked, configurable via permanentStatus - Add web UI controls in IndexFederated_p.html under Peer-to-Peer section - Bidirectional feedback: receivers reject and report error URLs to senders - Detailed logging shows blocked vs error-blocked counts separately - Uses load_date_dt field to calculate error age for retry decisions
Diffstat (limited to 'htroot')
-rw-r--r--htroot/IndexFederated_p.html9
1 files changed, 9 insertions, 0 deletions
diff --git a/htroot/IndexFederated_p.html b/htroot/IndexFederated_p.html
index 3edd5ceb7..652899a48 100644
--- a/htroot/IndexFederated_p.html
+++ b/htroot/IndexFederated_p.html
@@ -117,6 +117,15 @@
<dt><input type="checkbox" name="core.service.rwi" id="core_service_rwi" #(core.service.rwi.checked)#:: checked="checked"#(/core.service.rwi.checked)# /></dt>
<dd>support peer-to-peer index transmission (DHT RWI index)</dd>
+
+ <dt class="TableCellDark">Block known error URLs in DHT&nbsp;<input type="checkbox" name="indexReceiveBlockErrors" #(indexReceiveBlockErrors.checked)#:: checked="checked"#(/indexReceiveBlockErrors.checked)# /></dt>
+ <dd>Reject URLs/RWIs with known errors from peers. Disable to opt out.</dd>
+
+ <dt class="TableCellDark">Retry after (days)</dt>
+ <dd><input type="text" name="indexReceiveBlockErrors.retryAfterDays" value="#[indexReceiveBlockErrors.retryAfterDays]#" size="4" /> for temporary errors; permanent errors stay blocked.</dd>
+
+ <dt class="TableCellDark">Permanent error statuses</dt>
+ <dd><input type="text" name="indexReceiveBlockErrors.permanentStatus" value="#[indexReceiveBlockErrors.permanentStatus]#" size="12" /> comma-separated (default: 404,410)</dd>
<dt><input type="submit" name="setrwi" class="btn btn-primary" value="Set" /></dt><dd></dd>
</dl>