Commits
- Commit:
f9cc2426473a2b5619049eacdbee5fdf19c81344
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: bring back type safety for message types
Type safety for messages was removed to allowing message types to be anything.
In particular, this was useful for error types. This introduced a few nasty
bugs that wasn't worth the convenience of automatically packing errors over a
server channel.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
deb98ab43c4d46aadb8214e05c8178b2eceb1fae
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: various client and server cleanup
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
269e4d4b21f59c17f781c377325982e8cd369857
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: cleanup encoding/decoding
We take some time to cleanup the codec implementation. The need for the message
to implement the Message interface has been removed to allow flexibility in
what can land in the message field. Error types can be returned directly now.
The messages have been moved into a separate file. We also ensure that the
number of pointer types is reduced in deserialized messages, hopefully avoiding
unnecessary pointer traversal.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
74ec7ac9af14822d5ae949cdd3cb58e9ffb6ea76
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: stat implementation and correct dir/Rstat encoding
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
a8abc68745cebc0f92ba31a589e2f6f33ce215a9
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: fully working ls with ufs
The repl and client session work fully with rminnich/go9p/ufs. The key to this
was proper support for directory serialization, which is subtle. The size field
for Rread was the incorrect size.
Several robustness improvements are also included. Issues with the timeouts and
missing error returns have been addressed.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
fb37ce2aa1f717002944b5aec393b3318e2e7261
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: refactor channel framing
After a few connection bugs and framing issues, the transport has been
refactored into a channel that manages raw message sending. More importantly,
this frees up pre-session protocol version negotiation. To support this, the
encoder and decoder have been folded into a Codec interface. The encoding
support still needs work, but this has made the server and client code much
simpler to understand.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
97423e8b7909c86abde24bd416798b1172759758
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: ls and cat command now fully working
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
e6bcde663b39a93941cfd4188a6378e2ac5b92b2
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: working client to server communication
A rather large commit, this provides the first working version of running the
wire protocol over a connection. It is fairly shaky but we can already get
portions of the repl emitting and receiving 9p messages.
Other additions include the separate of client and transport. We've also made
some adjustments to message instantiation.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
96ad2b22c286a0147125e76a113442a1121d7d0d
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: add server stubs and various implementation notes
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
5f1e81058a16f2139f47022131a02ea597e003cc
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: implement several client methods
Adds in stub implementations for several client methods, checking to see we
have correct compilation of the various message types. We also add context
support to control the lifecycle of the session object.
We are getting closer to a working client and it is time to make a server!
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
d6198009fad10d2c6e0819feb0fa20608628dbcf
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: add several new message types for encoding
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
e9f5e41480fec822e81050643644fd58a98ac861
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: Add message definitions and support
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- Commit:
499f8c59005e11c0b5590adabe8b660c4a4cf1cb
- From:
- Stephen J Day <stephen.day@docker.com>
- Date:
fs/p9p/new: Lock down encode/decode for 9p
Among other things, this adds support for 9p encoding and decoding. We now have
fully reflective message marshaling and unmarshaling. Other aspects of this
commit include the code actually compiling and movement towards a testable
interface.
Signed-off-by: Stephen J Day <stephen.day@docker.com>