HTTP Proxy Jump Service Features
Created by: coneiric
By submitting this issue, I confirm the following:
- I have read and understood the contributor guide in kovri-docs.
- I have checked that the issue I am reporting can be replicated or that the feature I am suggesting is not present.
- I have checked opened or recently closed pull requests for existing solutions/implementations to my issue/suggestion.
After looking through the TODOS 1 2 for HTTPMessage::HandleJumpService
, I came up with some ideas for a redesign.
edit: add prerequisite issues, reformat as task list
Below are what I understand to be the required features of the jump service handler. Some are already implemented, others are new proposals:
-
load entries from multiple host files (requires resolution of #305 / #337) -
add new host entry (requires resolution of #305 ) - check address not already in: (requires resolution of #305 / #337)
-
hosts.txt -
private_hosts.txt -
subscription-specific hosts files
-
-
prompt user to save new host entry -
display information of host entry being added -
short hostname (host-name.i2p) -
base32 address (long-b32-string.b32.i2p) -
full base64-encoded destination information (base64 blob)
-
-
provide information on save location options (requires resolution of #305 / #337) - private_hosts.txt, service_hosts.txt, etc.
-
provide option to cancel saving new entry -
replace ByteStream instances with modular & secure interface, in pursuit of #811 -
convert HTTPMessage::HandleJumpService()
to bool return for testing -
unit tests (pass existing tests, and write new tests) - what can be implemented before #385 is resolved? (may be solved by resolution of #305 / #337)
- treat storage implementation as blackbox
-
handle reading & writing with modular interfaces -
use / write new interfaces independent of storage implementation (maybe?)
Related Kovri source files:
- HTTP Proxy impl and header
- Address Book impl and header
- Output/Input ByteStream impl and header
- HTTP Proxy unit tests
- Address book unit tests
Related Java2P source files: