Commit Graph

11599 Commits

Author SHA1 Message Date
Jōshin
0107c83252
khan: full round trip achieved
We now take %avow effects and send them back over the wire as a jammed
noun.

At this point the basic driver functionality is in place and should be
working. Still needed to finish this off are:

- Error-handling in the case of a malformed jammed noun.

- Handling requests to close the connection.

- Code review.
2021-10-22 05:27:45 +00:00
Jōshin
21b60615d1 khan: skeleton for effect parsing
This is a direct port from http.c, including _reck_lily, which should
probably get factored out.

We parse sequence numbers even though they aren't yet stored on the C
side, just in case we wind up needing them later.

Still not actually handling effects.
2021-10-21 07:11:26 +00:00
Jōshin
64730a3b30 khan: close stream on EOF
Also removes debug print in _khan_moor_poke.
2021-10-21 07:11:26 +00:00
Jōshin
c10e2319be khan: log on unlink on exit 2021-10-21 07:11:26 +00:00
Jōshin
a48e627951 khan: constant first 2021-10-21 07:11:26 +00:00
Jōshin
b3e71b1e55 khan: send as %fyrd
With this, you can now send a jammed `[%mas ~]` with length over the
socket, and %khan will recognize it as a `%fyrd` and print out
`[%todo %mas ~]`.
2021-10-21 07:11:26 +00:00
Jōshin
1dab3898f1 khan: sending requests to vane
The vane is of course bailing all over the place, and we probably need
to handle errors better (and maybe also count task numbers / introduce
the concept of a 'request' at C level?), but we're moving...
2021-10-21 07:11:26 +00:00
Jōshin
f51137d663 khan: cue, remove obsolete read_cb 2021-10-21 07:11:26 +00:00
Jōshin
f1fee9e1d0 khan: remove ioctl include 2021-10-21 07:11:26 +00:00
Jōshin
eab4ed9477 khan: do not unlink / close unless live 2021-10-21 07:11:26 +00:00
Jōshin
77db31f187 khan: use u3_moor 2021-10-21 07:11:26 +00:00
Jōshin
b3f12cf9ba khan: minor formatting cleanup 2021-10-21 07:11:26 +00:00
Jōshin
33d269f493 khan: wip use u3_moat instead of raw uv_pipe_t
This may be scrapped or redone as I grok newt.c. All that this
accomplishes is putting the different data structure in place, declaring
intent to use.
2021-10-21 07:11:26 +00:00
Jōshin
ba76bcbc32 khan: close on uv_read_start failure
Also do some minor cleanup.
2021-10-21 07:11:26 +00:00
Jōshin
e56ab9da1d khan: refactor, fix memory issues
Goes ahead and makes the socket its own separate data structure linked
from u3_khan. Makes it easier to get proper links to everything without
fiddling with offsetof. Seems to resolve the memory corruption issues we
were seeing.

Also make an effort to shutdown / close resources on exit.
2021-10-21 07:11:26 +00:00
Jōshin
dd5b833b2d khan: fix pointer reference
Using offsetof is very gross and probably suggests something is wrong
somewhere. Maybe we should store the server configuration on a separate
object from the khan configuration? But in the case of khan there isn't
really a concept of multiple servers...

N.B. We still have memory corruption.
2021-10-21 07:11:26 +00:00
Jōshin
005f80ae0d khan: wip driver implementation
Implements the connection callback, which accepts and opens up the read
end of the pipe, then just waits. Stores open connections on u3_khan.
Uses simple incrementing connection numbers.

I noticed in here that vere/newt.c seems to implement a protocol much
like the one we're looking for; may try to switch to using that more
explicitly.

Needs more well-thought-out error handling policy in connection
callback. What do we do -- bail? Deliver a non-fatal error and drop the
connection?
2021-10-21 07:11:26 +00:00
Jōshin
4d237ca65f khan: error handling
Ye olde C style nested gotos. Have not tested edge cases thoroughly yet;
should do prior to release.
2021-10-21 07:11:26 +00:00
Jōshin
296c8f0e94 khan: open socket on %born completion 2021-10-21 07:11:26 +00:00
Jōshin
1ac2a15201 khan: use u3_Host.dir_c consistently 2021-10-21 07:11:26 +00:00
Jōshin
0922e66111 khan: thinking intensifies 2021-10-21 07:11:26 +00:00
Jōshin
d0fd562102 khan: thoughts in conn_cb 2021-10-21 07:11:25 +00:00
Jōshin
f169e48cb3 khan: no uv_connect_t, spacing 2021-10-21 07:11:25 +00:00
Jōshin
368c09d86d khan: sequence number before socket open 2021-10-21 07:11:25 +00:00
Jōshin
9a9455d442 khan: TODO, init pipe after unlink 2021-10-21 07:11:25 +00:00
Jōshin
bcc97b728e khan: assert name 2021-10-21 07:11:25 +00:00
Jōshin
0fa6a70801 khan: unlink socket on close
Made URB_SOCK_PATH an array instead of pointer as well, to be able to
use sizeof.
2021-10-21 07:11:25 +00:00
Jōshin
c1f38c7397 http: check return of snprintf
Purely cautionary / defensive programming; no reason to think this would
have been a problem.
2021-10-21 07:11:25 +00:00
Jōshin
fc95d7ded7 khan: listening on socket 2021-10-21 07:11:25 +00:00
Jōshin
f2df8b83d5 khan: io driver skeleton 2021-10-21 07:11:25 +00:00
Jōshin
0102bb271f behn: comment spacing 2021-10-21 07:11:25 +00:00
Joe Bryan
94878e695e ur: fixes preorder handle destructor in jam handle destructor 2021-10-12 11:34:09 -04:00
Joe Bryan
9cb53597fb ur: fixes "stack" overflow in preorder traversal, simplifies "stack" 2021-10-12 11:33:12 -04:00
Joe Bryan
9a1b9b4450 Merge branch 'master' into release/next-vere
* master: (595 commits)
  grid: updating glob
  landscape: updating glob
  graph-store: clean up merge artefact
  interface: reduce %all-stats correctly
  docket: correctly en-vase a docket definition
  kiln: don't +mean the tang noun alongside the tang
  hood: scry for list of desks with empty desk name
  hood: remove needless weld
  hood: report %kids desk hash in +report-vats
  landscape: fix joining indicator in statusbar
  interface: reduce %saw-place correctly
  app-prefs: fixing logic around enabled
  pull-hook: add nice flag to kick poke
  graph-pull-hook: renegotiate subscriptions
  graph-store: Handle missing update-logs gracefully in scries
  arvo: update jamfiles
  landscape: correctly freeze graph-update-2
  jael: on rekey, update life if moon
  tmp/ jamfiles
  btc: updating glob
  ...
2021-10-05 11:33:08 -04:00
Hunter Miller
f5fc13706a grid: updating glob 2021-10-04 15:16:57 -05:00
Hunter Miller
3d8bd05499 landscape: updating glob 2021-10-04 15:12:15 -05:00
fang
ea6147bd66
graph-store: clean up merge artefact 2021-10-05 00:00:13 +04:00
fang
aa48973c6a
Merge branch 'release/next-userspace' 2021-10-04 23:45:45 +04:00
fang
0a847c11f2
Merge pull request #5281 from urbit/lf/landscape-fix
landscape: fix chats not bumping, hide spinner correctly
2021-10-04 21:25:29 +02:00
fang
cce5050bc9
Merge pull request #5298 from urbit/lf/fix-unreads-issues
interface: ignore wrong desk hark updates
2021-10-04 21:25:21 +02:00
fang
d606ba61d1
Merge pull request #5204 from urbit/lf/handle-undef-assoc
interface: Handle undefined association in getFeedPath
2021-10-04 21:22:09 +02:00
fang
08a1730197
Merge pull request #5278 from urbit/hm/fix-app-ota-setting
app-prefs: fixing logic around enabled
2021-10-04 21:14:12 +02:00
fang
4bb7b37582
Merge pull request #5284 from urbit/ea/report-kids-hash
hood: report %kids desk hash in +report-vats
2021-10-04 21:12:32 +02:00
fang
2a0e0c9dbe
Merge pull request #5290 from urbit/m/kiln-prettier-onto
kiln: don't +mean the tang noun alongside the tang
2021-10-04 21:12:03 +02:00
Joe Bryan
6c43748f2c
Merge pull request #5295 from urbit/jb/serf-whey
vere: updates worker memory measurement to include full profile
2021-10-04 10:09:26 -07:00
Liam Fitzgerald
9ccff90d77 interface: reduce %all-stats correctly 2021-10-04 19:30:13 +10:00
Joe Bryan
46dd61d547 serf: updates grab to fallback to old output on error 2021-10-02 21:39:48 -04:00
Joe Bryan
87d9398a31 serf: disable hashboard in meld 2021-10-02 21:39:30 -04:00
fang
ef93dd88d2
docket: correctly en-vase a docket definition 2021-10-02 17:30:56 +02:00
fang
66b8c046b7
kiln: don't +mean the tang noun alongside the tang 2021-10-02 13:07:23 +02:00