Brian Warner
ba36562482
docs: move Dilation up next to Serialization, as both are speculative
2017-04-06 13:02:27 -07:00
Brian Warner
194f0be471
api.md: fix some typos
2017-04-06 12:49:33 -07:00
Brian Warner
d331c51c03
change completion API
...
* InputHelper returns full words, not just suffixes. I liked the fact that
suffixes made it impossible to violate the "all matches will start with
your prefix" invariant, but in practice it was fiddly to work with.
* add ih.when_wordlist_is_available(), so the frontend can block (after
claiming the nameplate) until it can return a complete wordlist to
readline. This helps the user experience, because readline wasn't really
built to work with completions that change over time
* make the Wordlist responsible for appending hyphens to all non-final word
completions. InputHelper remains responsible for hyphens on nameplates.
This makes the frontend simpler, but I may change it again in the future if
it helps non-readline GUI frontends.
* CodeInputter: after claiming, wait for the wordlist rather than returning
an empty list
* PGPWordList: change to match
This has the unfortunate side-effect that e.g. typing "3-yucatan-tu TAB"
shows you completions that include the entire phrase: "3-yucatan-tumor
3-yucatan-tunnel", rather than only mentioning the final word. I'd like to
fix this eventually.
2017-04-06 12:22:45 -07:00
Brian Warner
bdef446ad4
get mostly-full coverage for rlcompleter, rename, export
2017-04-06 12:22:45 -07:00
Brian Warner
b981b4260d
docs: reminder that welcome_handler may be called multiple times
2017-04-06 12:22:45 -07:00
Brian Warner
76f5960517
rewrite welcome handler
2017-04-06 12:22:45 -07:00
Brian Warner
0ed363c894
Key: sort messages to ensure got_code lands before got_pake
...
Since input_code() sets the nameplate before setting the rest of the code,
and since the sender's PAKE will arrive as soon as the nameplate is set, we
could got_pake before got_code, and Key wasn't prepared to handle that.
2017-04-06 12:22:44 -07:00
Brian Warner
07a49bfaca
make progress on rlcompleter, still broken
2017-04-06 12:22:44 -07:00
Brian Warner
bd974f3801
test Nameplate, Mailbox. refactor a little bit
2017-04-06 12:22:44 -07:00
Brian Warner
e66d2df9f1
test and fix wordlist methods
2017-04-06 12:22:44 -07:00
Brian Warner
3873f55d64
make Input tests pass, clarify error cases, cleanups
2017-04-06 12:22:44 -07:00
Brian Warner
175fef2ab4
clean up wordlist handling
2017-04-06 12:22:44 -07:00
Brian Warner
ae95948c17
more tweaks
2017-04-06 12:22:44 -07:00
Brian Warner
4f1b352b2a
more work: allocator, input, shift responsibilities
2017-04-06 12:22:44 -07:00
Brian Warner
79d38da497
split Code into Code/Input/Allocator, ostensibly simpler
2017-04-06 12:22:44 -07:00
Brian Warner
0ddc93110b
work on new Code state machine design
2017-04-06 12:22:44 -07:00
Brian Warner
299f89c01f
new idea on code-input helper API
2017-04-06 12:22:44 -07:00
Brian Warner
4bd9d3579c
go back to "input_code" instead of "type_code"
2017-04-06 12:22:44 -07:00
Brian Warner
5f9894ca63
API updates, make most tests pass, disable others
...
* finally wire up "application versions"
* remove when_verifier (which used to fire after key establishment, but
before the VERSION message was received or verified)
* fire when_verified and when_version at the same time (after VERSION is
verified), but with different args
2017-04-06 12:22:44 -07:00
Brian Warner
9571fcd388
docs: write up "journaled mode"
2017-04-06 12:22:44 -07:00
Brian Warner
20ec911b6c
add API list, and speculative sections on serialization and dilation
2017-04-06 12:22:44 -07:00
Brian Warner
b4fdcfe53b
update api.md
2017-04-06 12:22:44 -07:00
Brian Warner
51a73d6962
client-protocol docs: improve
2017-04-06 12:21:00 -07:00
Brian Warner
dd6e139c19
document file-transfer protocol and Transit
2017-04-06 12:21:00 -07:00
Brian Warner
187e14862d
document client-to-client protocol
2017-04-06 12:21:00 -07:00
Brian Warner
9314c6918f
start documenting the protocols
2017-04-06 12:21:00 -07:00
Brian Warner
6ada8252b7
Code: handle being connected before being told what to do
2017-04-06 12:21:00 -07:00
Brian Warner
e9f3107127
deliver app-versions up to Wormhole
2017-04-06 12:21:00 -07:00
Brian Warner
60a61c995b
implement w.derive_key()
2017-04-06 12:21:00 -07:00
Brian Warner
b7b8df17be
rename NameplateLister to Lister (unique prefix L)
2017-04-06 12:21:00 -07:00
Brian Warner
9a2d992815
reminder how ConnectionService should fail if first attempt fails
2017-04-06 12:21:00 -07:00
Brian Warner
fcdcf30ba8
docs: move state machine diagrams into separate directory
2017-04-06 12:21:00 -07:00
Brian Warner
610db612ba
improve error handling
...
errors raised while processing a received message will cause the Wormhole to
close-with-error, and any pending Deferreds will be errbacked
2017-04-06 12:21:00 -07:00
Brian Warner
26adaabe18
implement new split nameplate/mailbox/terminator
...
fails even worse than before, of course
2017-04-06 12:21:00 -07:00
Brian Warner
02bea00366
dot: split Mailbox and Nameplate into separate machines
...
add Terminator for shutdown
2017-04-06 12:21:00 -07:00
Brian Warner
97d1ff859b
logic bug: M.S4B.close() must not re-send RELEASE
2017-04-06 12:21:00 -07:00
Brian Warner
41b7bcfed5
working on fixes
2017-04-06 12:21:00 -07:00
Brian Warner
b7df5e21eb
more tests, still failing
2017-04-06 12:21:00 -07:00
Brian Warner
8a2810ba70
test basic code allocation
2017-04-06 12:21:00 -07:00
Brian Warner
ef1904bc52
get null test working (open and immediate close)
2017-04-06 12:21:00 -07:00
Brian Warner
c95b6d402c
Code: don't sent tx_allocate until we're connected
...
So Code needs connected/lost from the RendezvousConnector
2017-04-06 12:21:00 -07:00
Brian Warner
d4bedeafbf
general fixes
2017-04-06 12:21:00 -07:00
Brian Warner
20814a65f4
rename Wormhole (machine) to Boss, leave room for higher-level thing
2017-04-06 12:21:00 -07:00
Brian Warner
a2ed35ceb8
remove old files, lots of type work
2017-04-06 12:21:00 -07:00
Brian Warner
80661392b6
build out all state machines
...
still early: automat is happy (they're syntactically valid), but the Outputs
are not implemented, and there are plenty of type mismatches
2017-04-06 12:21:00 -07:00
Brian Warner
a3ec344eb8
clean up machine names/initials
...
C: Code
RC: Rendezvous Connector
R: Receive
2017-04-06 12:21:00 -07:00
Brian Warner
f3b1e847e9
fix everything: should now be consistent and correct
...
Start with machines.dot, which gives the override. Then traverse downwards
from wormhole.dot .
2017-04-06 12:21:00 -07:00
Brian Warner
e85309a784
split out receive/send machines
2017-04-06 12:21:00 -07:00
Brian Warner
a675648335
code.dot: better names
2017-04-06 12:21:00 -07:00
Brian Warner
c050d06753
update code.dot
2017-04-06 12:21:00 -07:00