improvements to bzr protocol
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
High
|
Andrew Bennetts |
Bug Description
The current bzr wire encoding is a bit of a placeholder. There are some things we might do to improve it:
1. Put an encoding version at the start of requests and responses, to allow the later changes. Although there is a request for the version of the server this implies that we already basically know how to communicate.
Concretely this can be done by eg prefixing the request with a line saying "bzr hpss v2". If the first line is _not_ that (or not similar) then it can be assumed to be in the primitive format. The two should never overlap because we know what verbs can start a request.
2. Allow for more complex arguments -- I suggest we should use bencode to pack the arguments. That would avoid the restriction on what strings can be used, and allow for lists, dicts, etc in the arguments.
3. Consider being able to serve http from the same port and server - again this can be done by just looking at the first line of the request.
4. Consider how we will serve non-anonymous connections for write access. Perhaps it is enough to rely on either sshd or an httpsd to authenticate the client. If that is so no protocol changes are needed. We might separately want to be able to look at the web server's authentication headers.
(Follows on from conversation with Andrew)
Changed in bzr: | |
importance: | Undecided → High |
status: | New → Confirmed |
Changed in bzr: | |
status: | Fix Committed → Fix Released |
It should also include the client and server version strings, so they can be logged.