| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Are we sure this should be part of DiscUtils? It might be a good candidate for a seperate project though, f.ex. DiscUtils.Servers.NFS (if it's to be part of DU). |
Sorry, something went wrong.
I'm not sure, and don't really have a strong opinion on it 😄. NFS and iSCSI are two 'network-based' file systems which are part of DiscUtils and I guess you can argue whether they should be in scope at all. I'm fine with splitting the server part off to a separate project. If we do move to a separate library, some additional classes inside DiscUtils.Nfs would need to be made public. I'm going to keep pushing to this branch for now as I complete the server work; let's continue the discussion. |
Sorry, something went wrong.
|
Ok - so the API stuff, like protocol messages and potentially even a client, without a doubt should go into the NFS package. An actual server is another thing entirely .. I would still think it needs to go in another package, like DiscUtils.NFS.Server (and at that point, it should be something you instantiate in a consuming program, with options n stuff). As for public classes. In some cases they should be public (else others wouldn't be able to make their own NFS servers), while others probably can go by with being shared in an InternalsVisibleTo-style thing. |
Sorry, something went wrong.
- NFS3 Mount Server - PortMap Server
…n BadFileHandle when handles are not resolved.
|
I did some more work on the NFS server implementation:
As to testing, I used the NfsServer utility to share a folder on my Windows machine and access it from a Linux VM. Some of the operations I tested are:
I tested with both the Facebook nfusr library as well as normal Linux mount. (nfusr has more verbose debug output, doesn't required sudo permissions and is easier to restart). Long story short, things starting to look good 😄 . |
Sorry, something went wrong.
|
Great :) What's lacking? |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
This PR adds a very basic NFS server implementation to DiscUtils. It's intended as a foundation for anyone who wants to build a NFS server in managed code, not as a product you'd use on its own.
The NFS server implementation is split in two classes:
There are also unit tests for the server and client implementation. But, rather than communicating over TCP, the IRpcTransport interface is mocked and implemented using a Queue of byte[] objects. That speeds up the unit tests and removes networking from the equation.