@@ -252,25 +252,49 @@ func run(configuration *types.Configuration) error {
252252
253253 // 9p home directory sharing
254254 if runtime .GOOS == "windows" && config .Get (crcConfig .EnableSharedDirs ).AsBool () {
255- listener9p , err := vn .Listen ("tcp" , net .JoinHostPort (configuration .GatewayIP , fmt .Sprintf ("%d" , constants .Plan9TcpPort )))
255+ // 9p over hvsock
256+ listener9pHvsock , err := fs9p .GetHvsockListener (constants .Plan9HvsockGUID )
256257 if err != nil {
257258 return err
258259 }
259- server9p , err := fs9p .New9pServer (listener9p , constants .GetHomeDir ())
260+ server9pHvsock , err := fs9p .New9pServer (listener9pHvsock , constants .GetHomeDir ())
260261 if err != nil {
261262 return err
262263 }
263- if err := server9p .Start (); err != nil {
264+ if err := server9pHvsock .Start (); err != nil {
264265 return err
265266 }
266267 defer func () {
267- if err := server9p .Stop (); err != nil {
268- logging .Warnf ("error stopping 9p server: %v" , err )
268+ if err := server9pHvsock .Stop (); err != nil {
269+ logging .Warnf ("error stopping 9p server (hvsock) : %v" , err )
269270 }
270271 }()
271272 go func () {
272- if err := server9p .WaitForError (); err != nil {
273- logging .Errorf ("9p server error: %v" , err )
273+ if err := server9pHvsock .WaitForError (); err != nil {
274+ logging .Errorf ("9p server (hvsock) error: %v" , err )
275+ }
276+ }()
277+
278+ // 9p over TCP (as a backup)
279+ listener9pTCP , err := vn .Listen ("tcp" , net .JoinHostPort (configuration .GatewayIP , fmt .Sprintf ("%d" , constants .Plan9TcpPort )))
280+ if err != nil {
281+ return err
282+ }
283+ server9pTCP , err := fs9p .New9pServer (listener9pTCP , constants .GetHomeDir ())
284+ if err != nil {
285+ return err
286+ }
287+ if err := server9pTCP .Start (); err != nil {
288+ return err
289+ }
290+ defer func () {
291+ if err := server9pTCP .Stop (); err != nil {
292+ logging .Warnf ("error stopping 9p server (tcp): %v" , err )
293+ }
294+ }()
295+ go func () {
296+ if err := server9pTCP .WaitForError (); err != nil {
297+ logging .Errorf ("9p server (tcp) error: %v" , err )
274298 }
275299 }()
276300 }
0 commit comments