Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
54 changes: 5 additions & 49 deletions cmd/crc/cmd/daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (
"os"
"os/signal"
"regexp"
"runtime"
"syscall"
"time"

Expand All @@ -26,7 +25,6 @@ import (
"github.com/crc-org/crc/v2/pkg/crc/daemonclient"
"github.com/crc-org/crc/v2/pkg/crc/logging"
"github.com/crc-org/crc/v2/pkg/crc/restapi"
"github.com/crc-org/crc/v2/pkg/fileserver/fs9p"
"github.com/crc-org/machine/libmachine/drivers"
"github.com/docker/go-units"
"github.com/gorilla/handlers"
Expand Down Expand Up @@ -259,54 +257,12 @@ func run(configuration *types.Configuration) error {
}
}()

// 9p home directory sharing
if runtime.GOOS == "windows" && config.Get(crcConfig.EnableSharedDirs).AsBool() {
// 9p over hvsock
listener9pHvsock, err := fs9p.GetHvsockListener(constants.Plan9HvsockGUID)
if err != nil {
return err
}
server9pHvsock, err := fs9p.New9pServer(listener9pHvsock, constants.GetHomeDir())
if err != nil {
return err
}
if err := server9pHvsock.Start(); err != nil {
return err
}
defer func() {
if err := server9pHvsock.Stop(); err != nil {
logging.Warnf("error stopping 9p server (hvsock): %v", err)
}
}()
go func() {
if err := server9pHvsock.WaitForError(); err != nil {
logging.Errorf("9p server (hvsock) error: %v", err)
}
}()

// 9p over TCP (as a backup)
listener9pTCP, err := vn.Listen("tcp", net.JoinHostPort(configuration.GatewayIP, fmt.Sprintf("%d", constants.Plan9TcpPort)))
if err != nil {
return err
}
server9pTCP, err := fs9p.New9pServer(listener9pTCP, constants.GetHomeDir())
if err != nil {
return err
}
if err := server9pTCP.Start(); err != nil {
return err
}
defer func() {
if err := server9pTCP.Stop(); err != nil {
logging.Warnf("error stopping 9p server (tcp): %v", err)
}
}()
go func() {
if err := server9pTCP.WaitForError(); err != nil {
logging.Errorf("9p server (tcp) error: %v", err)
}
}()
// 9p home directory sharing (Windows only)
cleanupSharedDirs, err := startSharedDirServers(vn, configuration.GatewayIP, config.Get(crcConfig.EnableSharedDirs).AsBool())
if err != nil {
return err
}
defer cleanupSharedDirs()

startupDone()

Expand Down
4 changes: 4 additions & 0 deletions cmd/crc/cmd/daemon_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,7 @@ func checkIfDaemonIsRunning() (bool, error) {

func startupDone() {
}

func startSharedDirServers(_ *virtualnetwork.VirtualNetwork, _ string, _ bool) (func(), error) {
return func() {}, nil
}
4 changes: 4 additions & 0 deletions cmd/crc/cmd/daemon_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,3 +141,7 @@ func unixgramListener(_ context.Context, _ *virtualnetwork.VirtualNetwork) (*net
func startupDone() {
_, _ = daemon.SdNotify(false, daemon.SdNotifyReady)
}

func startSharedDirServers(_ *virtualnetwork.VirtualNetwork, _ string, _ bool) (func(), error) {
return func() {}, nil
}
63 changes: 63 additions & 0 deletions cmd/crc/cmd/daemon_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@ package cmd

import (
"context"
"fmt"
"net"

"github.com/Microsoft/go-winio"
"github.com/containers/gvisor-tap-vsock/pkg/transport"
"github.com/containers/gvisor-tap-vsock/pkg/virtualnetwork"
"github.com/crc-org/crc/v2/pkg/crc/constants"
"github.com/crc-org/crc/v2/pkg/crc/logging"
"github.com/crc-org/crc/v2/pkg/fileserver/fs9p"
"github.com/crc-org/machine/libmachine/drivers"
)

Expand Down Expand Up @@ -44,3 +46,64 @@ func unixgramListener(_ context.Context, _ *virtualnetwork.VirtualNetwork) (*net

func startupDone() {
}

func startSharedDirServers(vn *virtualnetwork.VirtualNetwork, gatewayIP string, enabled bool) (func(), error) {
noop := func() {}
if !enabled {
return noop, nil
}

// 9p over hvsock
listener9pHvsock, err := fs9p.GetHvsockListener(constants.Plan9HvsockGUID)
if err != nil {
return noop, err
}
server9pHvsock, err := fs9p.New9pServer(listener9pHvsock, constants.GetHomeDir())
if err != nil {
return noop, err
}
if err := server9pHvsock.Start(); err != nil {
return noop, err
}
cleanup := func() {
if err := server9pHvsock.Stop(); err != nil {
logging.Warnf("error stopping 9p server (hvsock): %v", err)
}
}
go func() {
if err := server9pHvsock.WaitForError(); err != nil {
logging.Errorf("9p server (hvsock) error: %v", err)
}
}()

// 9p over TCP (as a backup)
listener9pTCP, err := vn.Listen("tcp", net.JoinHostPort(gatewayIP, fmt.Sprintf("%d", constants.Plan9TcpPort)))
if err != nil {
cleanup()
return noop, err
}
server9pTCP, err := fs9p.New9pServer(listener9pTCP, constants.GetHomeDir())
if err != nil {
cleanup()
return noop, err
}
if err := server9pTCP.Start(); err != nil {
cleanup()
return noop, err
}
cleanup = func() {
if err := server9pHvsock.Stop(); err != nil {
logging.Warnf("error stopping 9p server (hvsock): %v", err)
}
if err := server9pTCP.Stop(); err != nil {
logging.Warnf("error stopping 9p server (tcp): %v", err)
}
}
go func() {
if err := server9pTCP.WaitForError(); err != nil {
logging.Errorf("9p server (tcp) error: %v", err)
}
}()

return cleanup, nil
}
132 changes: 0 additions & 132 deletions pkg/crc/machine/generate_bundle.go

This file was deleted.

Loading
Loading