File tree Expand file tree Collapse file tree 1 file changed +27
-1
lines changed Expand file tree Collapse file tree 1 file changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -24,9 +24,17 @@ type (
24
24
Host struct {
25
25
Maddr multiaddr.Multiaddr `json:"maddr,omitempty"`
26
26
}
27
+ // Guest holds metadata required to establish
28
+ // a client connection to an NFS server.
29
+ Guest struct {
30
+ Maddr multiaddr.Multiaddr
31
+ }
27
32
)
28
33
29
- const HostID filesystem.Host = "NFS"
34
+ const (
35
+ HostID filesystem.Host = "NFS"
36
+ GuestID filesystem.ID = "NFS"
37
+ )
30
38
31
39
func (* Host ) HostID () filesystem.Host { return HostID }
32
40
@@ -76,3 +84,21 @@ func (nh *Host) Mount(fsys fs.FS) (io.Closer, error) {
76
84
go func () { errsCh <- nfs .Serve (goListener , cachedHandler ) }()
77
85
return closerFn , nil
78
86
}
87
+
88
+ func (* Guest ) GuestID () filesystem.ID { return GuestID }
89
+ func (gn * Guest ) UnmarshalJSON (b []byte ) error {
90
+ // multiformats/go-multiaddr issue #100
91
+ var maddrWorkaround struct {
92
+ Maddr maddrc.Multiaddr `json:"maddr,omitempty"`
93
+ }
94
+ if err := json .Unmarshal (b , & maddrWorkaround ); err != nil {
95
+ return err
96
+ }
97
+ gn .Maddr = maddrWorkaround .Maddr .Multiaddr
98
+ return nil
99
+ }
100
+
101
+ func (gn * Guest ) MakeFS () (fs.FS , error ) {
102
+ // TODO: fields to options.
103
+ return NewNFSGuest (gn .Maddr )
104
+ }
You can’t perform that action at this time.
0 commit comments