|
|
@ -5,6 +5,7 @@ import ( |
|
|
|
"net" |
|
|
|
"net/http" |
|
|
|
"os" |
|
|
|
"runtime" |
|
|
|
"time" |
|
|
|
|
|
|
|
"google.golang.org/grpc/reflection" |
|
|
@ -248,18 +249,6 @@ func (fo *FilerOptions) startFiler() { |
|
|
|
glog.Fatalf("Filer listener error: %v", e) |
|
|
|
} |
|
|
|
|
|
|
|
// start on local unix socket
|
|
|
|
if *fo.localSocket == "" { |
|
|
|
*fo.localSocket = fmt.Sprintf("/tmp/seaweefs-filer-%d.sock", *fo.port) |
|
|
|
if err := os.Remove(*fo.localSocket); err != nil && !os.IsNotExist(err) { |
|
|
|
glog.Fatalf("Failed to remove %s, error: %s", *fo.localSocket, err.Error()) |
|
|
|
} |
|
|
|
} |
|
|
|
filerSocketListener, err := net.Listen("unix", *fo.localSocket) |
|
|
|
if err != nil { |
|
|
|
glog.Fatalf("Failed to listen on %s: %v", *fo.localSocket, err) |
|
|
|
} |
|
|
|
|
|
|
|
// starting grpc server
|
|
|
|
grpcPort := *fo.portGrpc |
|
|
|
grpcL, grpcLocalL, err := util.NewIpAndLocalListeners(*fo.bindIp, grpcPort, 0) |
|
|
@ -275,9 +264,22 @@ func (fo *FilerOptions) startFiler() { |
|
|
|
go grpcS.Serve(grpcL) |
|
|
|
|
|
|
|
httpS := &http.Server{Handler: defaultMux} |
|
|
|
go func() { |
|
|
|
httpS.Serve(filerSocketListener) |
|
|
|
}() |
|
|
|
if runtime.GOOS != "windows" { |
|
|
|
if *fo.localSocket == "" { |
|
|
|
*fo.localSocket = fmt.Sprintf("/tmp/seaweefs-filer-%d.sock", *fo.port) |
|
|
|
if err := os.Remove(*fo.localSocket); err != nil && !os.IsNotExist(err) { |
|
|
|
glog.Fatalf("Failed to remove %s, error: %s", *fo.localSocket, err.Error()) |
|
|
|
} |
|
|
|
} |
|
|
|
go func() { |
|
|
|
// start on local unix socket
|
|
|
|
filerSocketListener, err := net.Listen("unix", *fo.localSocket) |
|
|
|
if err != nil { |
|
|
|
glog.Fatalf("Failed to listen on %s: %v", *fo.localSocket, err) |
|
|
|
} |
|
|
|
httpS.Serve(filerSocketListener) |
|
|
|
}() |
|
|
|
} |
|
|
|
if filerLocalListener != nil { |
|
|
|
go func() { |
|
|
|
if err := httpS.Serve(filerLocalListener); err != nil { |
|
|
|