Commit Graph

4856 Commits

Author SHA1 Message Date
Elliot Glaysher
1b3a69e24d
Merge branch 'release/next-vere' into king-natpmp 2020-08-14 16:17:47 -04:00
Elliot Glaysher
14d1b59117 natpmp: even more cleanup 2020-08-14 10:23:39 -04:00
Elliot Glaysher
b4878a8b03 natpmp: Separate out the PortThreadMsgs from the heap actions. 2020-08-13 13:36:20 -04:00
Elliot Glaysher
a3336fde41 natpmp: more nits 2020-08-13 11:52:42 -04:00
Elliot Glaysher
1183ac0b22 natpmp: checkpoint while addressing comments 2020-08-13 11:12:26 -04:00
Elliot Glaysher
ac4b5a99e5 natpmp: Rename RunningEnv to HostEnv. 2020-08-13 10:19:35 -04:00
Elliot Glaysher
3e6fd0f8e8 natpmp: ~pilfer style nits 2020-08-13 10:08:02 -04:00
pilfer-pandex
36ee3da818
Merge pull request #3267 from urbit/pp/print-http-ports
king: eyre: add missing printouts with ports
2020-08-11 22:11:35 -07:00
pilfer-pandex
8e04cd12f0
Merge pull request #3230 from urbit/pp/ames-slow-startup
king: ames: add stderr when sending before having turfs
2020-08-10 17:47:43 -07:00
Elliot Glaysher
d4d99835b2 natpmp: aesthetic cleanups 2020-08-10 14:55:08 -04:00
Elliot Glaysher
2e66ae10ec natpmp: use MonadIO in the bindings to remove unsightly "io $" 2020-08-10 13:15:03 -04:00
Elliot Glaysher
4d8c6ad09a nat-pmp: improve error and diagnostic messages 2020-08-10 13:02:13 -04:00
pilfer-pandex
556d92107a king: eyre: add missing printouts with ports 2020-08-09 22:12:44 -07:00
Elliot Glaysher
b7bfa170a9
Merge pull request #3262 from urbit/king-fix-eth
king: fix dawn to use the wrapped ethereum server.
2020-08-07 14:31:07 -04:00
Elliot Glaysher
4c4712f4e8 king: fix dawn to use the wrapped ethereum server. 2020-08-07 13:18:16 -04:00
Elliot Glaysher
149565cd97 king: get tests passing after nat-pmp changes 2020-08-07 13:04:57 -04:00
Elliot Glaysher
6368aa2b02 king: Turn NAT-PMP on by default, with a flag to disable.
Also: error checking.
2020-08-07 12:42:00 -04:00
Elliot Glaysher
96723b3de0 nat-pmp: Add readme talking about providence. 2020-08-07 12:41:49 -04:00
Fang
c76fec09a6
Merge pull request #3174 from urbit/m/stateless-forward
ames.c: stateless forwarding
2020-08-07 00:24:52 +02:00
Fang
b4a72f3160
vere: make note of litte-endianness dependency 2020-08-06 23:56:05 +02:00
Fang
c142184cd4
vere: add 'ax' to motes.h 2020-08-06 23:47:35 +02:00
Elliot Glaysher
a3e33644a9 king: port forward ames traffic behind a NAT.
Tested with a comet trying to receive traffic from a planet in the
cloud. (h/t ~master-morzod)
2020-08-06 16:26:22 -04:00
Fang
61c64584aa
vere: don't crash the process on scry crash
The fake result introduced in 34cfc9a6f isn't very useful if the process
ends up crashing anyway...
2020-08-06 22:02:41 +02:00
pilfer-pandex
1691c984dd king: ames: add stderr when sending before having turfs 2020-08-06 12:11:36 -07:00
pilfer-pandex
effdd30d54 Merge branch 'master' into release/next-vere 2020-08-06 12:08:43 -07:00
pilfer-pandex
66fc6b668e
Merge pull request #3184 from urbit/pp/finding-that-darn-serf
king: use c vere's heuristics for finding the serf binary
2020-08-06 11:37:14 -07:00
Fang
34cfc9a6fc
vere: when scry crashes, produce fake result of ~
In the long term, we don't want to pretend we got "no result", and
handle crashes by whatever behavior is appropriate.
In the short term, we don't want to burden callsites with crash
handling, so we punt on the problem by producing ~.
2020-08-06 20:33:10 +02:00
Fang
00eb249e55
vere: rename u3_lord_peek_pico to u3_lord_peek 2020-08-06 20:24:43 +02:00
Fang
f8601d9a6a
vere: move u3_pico lifecycle functions into ward.c
Now we free the struct _and its nouns_ in the same place, rather than
transferring the nouns into lord.c, but still freeing the struct
locally.
This means the lord needs to explicitly retain the nouns in the u3_pico.
2020-08-06 20:22:46 +02:00
Elliot Glaysher
86b445b7cb king: First attempt at integration with NATPMP.
This sets up a separate thread to handle scheduling of lease
renewals.
2020-08-05 15:33:37 -04:00
Fang
25a4806439
vere: reduce "dropped forwards" printf frequency 2020-08-05 16:42:25 +02:00
Fang
78529c926f
vere: don't decrement prematurely
Previously, we decremented len_w eagerly, regardless of whether
u3_auto_next succeeded in getting a next event or not.
Now, we only decrement len_w if we actually managed to get a next event,
resulting in better behavior in the "no next" case.

Also lightly touches up style a couple lines down, for consistency.
2020-08-05 16:40:27 +02:00
Fang
7aecd3064e
vere: store lanes as structs, not nouns
This was the last bit of forwarding state we were still keeping on the
loom. It's all C structs now.
2020-08-05 01:38:00 +02:00
Fang
8a7aca15db
vere: improves ames.c code style
Avoid intermediate noun allocations, superfluous typedefs, constant
calculations, etc.
2020-08-05 01:29:37 +02:00
Fang
b5a9a7d538
vere: move scry api into pier.c, interleave events
Scries were being prioritized over events, in the IPC queue. If scry
requests came in faster than we could process them (as is easily the
case for ames forward requests), this would cause scries to completely
clog the IPC queue, preventing any events from being processed at all.

The short-term solution implemented here is to simply alternate between
scry requests and events when building/sending a work batch.

To accomplish this, we separate scry requests into their own queue. We
keep this in pier.c, and pass them on to lord.c interleaved with regular
events in _pier_work_send.

The interleaving of regular events (as opposed to doing scries with the
highest priority) complicates the situation around auto-filled scry
cases (for scrying at "the latest timestamp").
To ensure we're always scrying at a sane latest timestamp, we keep a
queue of u3_pico, instead of fully-qualified scry requests. Where
necessary, lord.c fills in the missing path elements right before
sending it over the pipe.
2020-08-05 01:24:01 +02:00
Elliot Glaysher
d39d7246d1 king: move MultiEyreApi to a new RunningEnv.
There was a TODO in runShips about how the different layers of the
RIO environment had to be changed, so that there was a layer between
KingEnv and PierEnv for things shared between individual Piers, but
which weren't used outside of any PierEnv. This addresses those
TODOs by creating RunningEnv, which for now just owns MultiEyreApi
and makes it so we don't have to pass the entire thing around
explicitly.

The IP handling stuff will go in RunningEnv in a following patch.
2020-08-04 16:56:32 -04:00
Elliot Glaysher
225d2a288b king: Add CLI options for NAT traversal.
(Not yet hooked up to anything.)
2020-08-04 16:08:35 -04:00
Elliot Glaysher
11c86df3ce natpmp: Make haskell bindings to libnatpmp and add them to the build. 2020-08-04 13:24:55 -04:00
Fang
71a0e61c2e
vere: fix missing u3z 2020-08-01 01:05:33 +02:00
Matilde Park
baaea9a2a4 glob: update to 0v3.cus8h.vc64c.rfb3t.22oji.b529a 2020-07-31 01:25:41 -04:00
Liam Fitzgerald
e58730fc5d chat: import Link correctly 2020-07-31 15:17:30 +10:00
Matilde Park
5fd6d657b8 glob: update to 0v1.lkkr3.b5rri.loft7.tctif.hlu0t 2020-07-31 00:28:08 -04:00
matildepark
59d6d4a30e
Merge pull request #3232 from urbit/lf/publish-tags-fix
publish-js: account for missing group
2020-07-31 00:19:11 -04:00
Matilde Park
9bbe87acb3 Merge branch 'master' into release/next-userspace 2020-07-31 00:16:39 -04:00
matildepark
be5377d09d
Merge pull request #3229 from tylershuster/member-list-scroll
Interface: Add smart scrolling to group member list
2020-07-30 23:17:42 -04:00
matildepark
6ff8176380
Merge pull request #3228 from urbit/la/fix-out-of-sync
chat-hook: fix synced map getting out of sync with outgoing subscriptions
2020-07-30 22:43:37 -04:00
matildepark
bd22105a87
Merge pull request #3225 from urbit/mp/publish-copy
publish: amend 'new' copy for new UX
2020-07-30 22:43:17 -04:00
Tyler Brown Cifu Shuster
25e6685c15 Interface: Add smart scrolling to group member lists 2020-07-30 19:43:06 -07:00
matildepark
a74467278b
Merge pull request #3226 from urbit/mp/thanks-mark
chat: truncate long nicknames
2020-07-30 22:43:01 -04:00
Liam Fitzgerald
3e3f1c4558 publish-js: account for missing group 2020-07-31 11:22:57 +10:00