mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-26 08:25:04 +03:00
ames: add %snub functionality
Adds .snub to ames-state, a global blocklist for ships. If a packet is received from a ship that is in the .snub set, it is immediately dropped. Adds %snub to ames' $task, to allow manipulating this list
This commit is contained in:
parent
36deb95411
commit
14baf6f3d6
@ -360,6 +360,7 @@
|
|||||||
:: %init: vane boot
|
:: %init: vane boot
|
||||||
:: %prod: re-send a packet per flow, to all peers if .ships is ~
|
:: %prod: re-send a packet per flow, to all peers if .ships is ~
|
||||||
:: %sift: limit verbosity to .ships
|
:: %sift: limit verbosity to .ships
|
||||||
|
:: %snub: set packet blacklist to .ships
|
||||||
:: %spew: set verbosity toggles
|
:: %spew: set verbosity toggles
|
||||||
:: %trim: release memory
|
:: %trim: release memory
|
||||||
:: %vega: kernel reload notification
|
:: %vega: kernel reload notification
|
||||||
@ -375,6 +376,7 @@
|
|||||||
$>(%init vane-task)
|
$>(%init vane-task)
|
||||||
[%prod ships=(list ship)]
|
[%prod ships=(list ship)]
|
||||||
[%sift ships=(list ship)]
|
[%sift ships=(list ship)]
|
||||||
|
[%snub ships=(list ship)]
|
||||||
[%spew veb=(list verb)]
|
[%spew veb=(list verb)]
|
||||||
[%stir arg=@t]
|
[%stir arg=@t]
|
||||||
$>(%trim vane-task)
|
$>(%trim vane-task)
|
||||||
|
@ -607,19 +607,20 @@
|
|||||||
:: life: our $life; how many times we've rekeyed
|
:: life: our $life; how many times we've rekeyed
|
||||||
:: crypto-core: interface for encryption and signing
|
:: crypto-core: interface for encryption and signing
|
||||||
:: bug: debug printing configuration
|
:: bug: debug printing configuration
|
||||||
:: corks(STALE):wires for cork flows pending publisher update
|
:: snub: blocklist for incoming packets
|
||||||
::
|
::
|
||||||
:: Note: .corks is only still present for unreleased migration reasons
|
:: Note: .corks is only still present for unreleased migration reasons
|
||||||
::
|
::
|
||||||
|
::
|
||||||
+$ ames-state
|
+$ ames-state
|
||||||
$: peers=(map ship ship-state)
|
$: peers=(map ship ship-state)
|
||||||
=unix=duct
|
=unix=duct
|
||||||
=life
|
=life
|
||||||
crypto-core=acru:ames
|
crypto-core=acru:ames
|
||||||
=bug
|
=bug
|
||||||
corks=(set wire) ::TODO unused, remove in next version of state
|
corks=(set wire)
|
||||||
|
snub=(set ship)
|
||||||
==
|
==
|
||||||
::
|
|
||||||
+$ ames-state-4 ames-state-5
|
+$ ames-state-4 ames-state-5
|
||||||
+$ ames-state-5
|
+$ ames-state-5
|
||||||
$: peers=(map ship ship-state-5)
|
$: peers=(map ship ship-state-5)
|
||||||
@ -686,6 +687,17 @@
|
|||||||
crypto-core=acru:ames
|
crypto-core=acru:ames
|
||||||
=bug
|
=bug
|
||||||
==
|
==
|
||||||
|
::
|
||||||
|
+$ ames-state-8
|
||||||
|
$: peers=(map ship ship-state)
|
||||||
|
=unix=duct
|
||||||
|
=life
|
||||||
|
crypto-core=acru:ames
|
||||||
|
=bug
|
||||||
|
corks=(set wire)
|
||||||
|
==
|
||||||
|
::
|
||||||
|
|
||||||
:: $bug: debug printing configuration
|
:: $bug: debug printing configuration
|
||||||
::
|
::
|
||||||
:: veb: verbosity toggles
|
:: veb: verbosity toggles
|
||||||
@ -841,7 +853,14 @@
|
|||||||
::
|
::
|
||||||
=< =* adult-gate .
|
=< =* adult-gate .
|
||||||
=| queued-events=(qeu queued-event)
|
=| queued-events=(qeu queued-event)
|
||||||
=| cached-state=(unit $%([%5 ames-state-5] [%6 ames-state-6] [%7 ames-state-7] [%8 ^ames-state]))
|
=| $= cached-state
|
||||||
|
%- unit
|
||||||
|
$% [%5 ames-state-5]
|
||||||
|
[%6 ames-state-6]
|
||||||
|
[%7 ames-state-7]
|
||||||
|
[%8 ames-state-8]
|
||||||
|
[%9 ^ames-state]
|
||||||
|
==
|
||||||
::
|
::
|
||||||
|= [now=@da eny=@ rof=roof]
|
|= [now=@da eny=@ rof=roof]
|
||||||
=* larval-gate .
|
=* larval-gate .
|
||||||
@ -963,7 +982,7 @@
|
|||||||
:: lifecycle arms; mostly pass-throughs to the contained adult ames
|
:: lifecycle arms; mostly pass-throughs to the contained adult ames
|
||||||
::
|
::
|
||||||
++ scry scry:adult-core
|
++ scry scry:adult-core
|
||||||
++ stay [%8 %larva queued-events ames-state.adult-gate]
|
++ stay [%9 %larva queued-events ames-state.adult-gate]
|
||||||
++ load
|
++ load
|
||||||
|= $= old
|
|= $= old
|
||||||
$% $: %4
|
$% $: %4
|
||||||
@ -995,6 +1014,13 @@
|
|||||||
[%adult state=ames-state-7]
|
[%adult state=ames-state-7]
|
||||||
== ==
|
== ==
|
||||||
$: %8
|
$: %8
|
||||||
|
$% $: %larva
|
||||||
|
events=(qeu queued-event)
|
||||||
|
state=ames-state-8
|
||||||
|
==
|
||||||
|
[%adult state=ames-state-8]
|
||||||
|
== ==
|
||||||
|
$: %9
|
||||||
$% $: %larva
|
$% $: %larva
|
||||||
events=(qeu queued-event)
|
events=(qeu queued-event)
|
||||||
state=_ames-state.adult-gate
|
state=_ames-state.adult-gate
|
||||||
@ -1039,12 +1065,22 @@
|
|||||||
=. queued-events events.old
|
=. queued-events events.old
|
||||||
larval-gate
|
larval-gate
|
||||||
::
|
::
|
||||||
[%8 %adult *] (load:adult-core %8 state.old)
|
[%8 %adult *]
|
||||||
|
=. cached-state `[%8 state.old]
|
||||||
|
~> %slog.0^leaf/"ames: larva reload"
|
||||||
|
larval-gate
|
||||||
::
|
::
|
||||||
[%8 %larva *]
|
[%8 %larva *]
|
||||||
|
~> %slog.0^leaf/"ames: larva: load"
|
||||||
|
=. queued-events events.old
|
||||||
|
larval-gate
|
||||||
|
::
|
||||||
|
[%9 %adult *] (load:adult-core %9 state.old)
|
||||||
|
::
|
||||||
|
[%9 %larva *]
|
||||||
~> %slog.1^leaf/"ames: larva: load"
|
~> %slog.1^leaf/"ames: larva: load"
|
||||||
=. queued-events events.old
|
=. queued-events events.old
|
||||||
=. adult-gate (load:adult-core %8 state.old)
|
=. adult-gate (load:adult-core %9 state.old)
|
||||||
larval-gate
|
larval-gate
|
||||||
::
|
::
|
||||||
==
|
==
|
||||||
@ -1063,7 +1099,9 @@
|
|||||||
~> %slog.0^leaf/"ames: init daily recork timer"
|
~> %slog.0^leaf/"ames: init daily recork timer"
|
||||||
:- [[/ames]~ %pass /recork %b %wait `@da`(add now ~d1)]~
|
:- [[/ames]~ %pass /recork %b %wait `@da`(add now ~d1)]~
|
||||||
8+(state-7-to-8:load:adult-core +.u.cached-state)
|
8+(state-7-to-8:load:adult-core +.u.cached-state)
|
||||||
?> ?=(%8 -.u.cached-state)
|
=? u.cached-state ?=(%8 -.u.cached-state)
|
||||||
|
9+(state-8-to-9:load:adult-core +.u.cached-state)
|
||||||
|
?> ?=(%9 -.u.cached-state)
|
||||||
=. ames-state.adult-gate +.u.cached-state
|
=. ames-state.adult-gate +.u.cached-state
|
||||||
[moz larval-core(cached-state ~)]
|
[moz larval-core(cached-state ~)]
|
||||||
--
|
--
|
||||||
@ -1102,6 +1140,7 @@
|
|||||||
%jilt (on-jilt:event-core ship.task)
|
%jilt (on-jilt:event-core ship.task)
|
||||||
%prod (on-prod:event-core ships.task)
|
%prod (on-prod:event-core ships.task)
|
||||||
%sift (on-sift:event-core ships.task)
|
%sift (on-sift:event-core ships.task)
|
||||||
|
%snub (on-snub:event-core ships.task)
|
||||||
%spew (on-spew:event-core veb.task)
|
%spew (on-spew:event-core veb.task)
|
||||||
%stir (on-stir:event-core arg.task)
|
%stir (on-stir:event-core arg.task)
|
||||||
%trim on-trim:event-core
|
%trim on-trim:event-core
|
||||||
@ -1138,15 +1177,15 @@
|
|||||||
[moves ames-gate]
|
[moves ames-gate]
|
||||||
:: +stay: extract state before reload
|
:: +stay: extract state before reload
|
||||||
::
|
::
|
||||||
++ stay [%8 %adult ames-state]
|
++ stay [%9 %adult ames-state]
|
||||||
:: +load: load in old state after reload
|
:: +load: load in old state after reload
|
||||||
::
|
::
|
||||||
++ load
|
++ load
|
||||||
=< |= $= old-state
|
=< |= $= old-state
|
||||||
$% [%8 ^ames-state]
|
$% [%9 ^ames-state]
|
||||||
==
|
==
|
||||||
^+ ames-gate
|
^+ ames-gate
|
||||||
?> ?=(%8 -.old-state)
|
?> ?=(%9 -.old-state)
|
||||||
ames-gate(ames-state +.old-state)
|
ames-gate(ames-state +.old-state)
|
||||||
::
|
::
|
||||||
|%
|
|%
|
||||||
@ -1210,7 +1249,7 @@
|
|||||||
::
|
::
|
||||||
++ state-7-to-8
|
++ state-7-to-8
|
||||||
|= ames-state=ames-state-7
|
|= ames-state=ames-state-7
|
||||||
^- ^^ames-state
|
^- ames-state-8
|
||||||
:* peers.ames-state
|
:* peers.ames-state
|
||||||
unix-duct.ames-state
|
unix-duct.ames-state
|
||||||
life.ames-state
|
life.ames-state
|
||||||
@ -1218,6 +1257,17 @@
|
|||||||
bug.ames-state
|
bug.ames-state
|
||||||
*(set wire)
|
*(set wire)
|
||||||
==
|
==
|
||||||
|
++ state-8-to-9
|
||||||
|
|= ames-state=ames-state-8
|
||||||
|
^- ^^ames-state
|
||||||
|
:* peers.ames-state
|
||||||
|
unix-duct.ames-state
|
||||||
|
life.ames-state
|
||||||
|
crypto-core.ames-state
|
||||||
|
bug.ames-state
|
||||||
|
corks.ames-state
|
||||||
|
*(set ship)
|
||||||
|
==
|
||||||
--
|
--
|
||||||
:: +scry: dereference namespace
|
:: +scry: dereference namespace
|
||||||
::
|
::
|
||||||
@ -1430,6 +1480,13 @@
|
|||||||
^+ event-core
|
^+ event-core
|
||||||
=. ships.bug.ames-state (sy ships)
|
=. ships.bug.ames-state (sy ships)
|
||||||
event-core
|
event-core
|
||||||
|
:: +on-snub: handle request to change ship blacklist
|
||||||
|
::
|
||||||
|
++ on-snub
|
||||||
|
|= ships=(list ship)
|
||||||
|
^+ event-core
|
||||||
|
=. snub.ames-state (sy ships)
|
||||||
|
event-core
|
||||||
:: +on-spew: handle request to set verbosity toggles on debug output
|
:: +on-spew: handle request to set verbosity toggles on debug output
|
||||||
::
|
::
|
||||||
++ on-spew
|
++ on-spew
|
||||||
@ -1566,6 +1623,8 @@
|
|||||||
::
|
::
|
||||||
?: =(our sndr.packet)
|
?: =(our sndr.packet)
|
||||||
event-core
|
event-core
|
||||||
|
?: (~(has in snub.ames-state) sndr.packet)
|
||||||
|
event-core
|
||||||
::
|
::
|
||||||
%. +<
|
%. +<
|
||||||
::
|
::
|
||||||
|
Loading…
Reference in New Issue
Block a user