aboutsummaryrefslogtreecommitdiff
path: root/weed/server
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-06-27 12:40:50 -0700
committerchrislu <chris.lu@gmail.com>2022-06-27 12:40:50 -0700
commit4b1f48a399ac8e18154929b942d47e10c60a54d9 (patch)
treea93a65a5a00ee3ec6ec4fcb8e88fdcfc42148331 /weed/server
parent4a65159250c0ca7cf0fc203dd300bf402c1016f9 (diff)
parentdc6b1a52e8a2b34c1e775fe21013e366c6a37ca6 (diff)
downloadseaweedfs-4b1f48a399ac8e18154929b942d47e10c60a54d9.tar.xz
seaweedfs-4b1f48a399ac8e18154929b942d47e10c60a54d9.zip
Merge branch 'master' of https://github.com/chrislusf/seaweedfs
Diffstat (limited to 'weed/server')
-rw-r--r--weed/server/master_grpc_server.go8
-rw-r--r--weed/server/webdav_server.go8
2 files changed, 14 insertions, 2 deletions
diff --git a/weed/server/master_grpc_server.go b/weed/server/master_grpc_server.go
index 4d0fbbc41..4f5455cb1 100644
--- a/weed/server/master_grpc_server.go
+++ b/weed/server/master_grpc_server.go
@@ -263,8 +263,12 @@ func (ms *MasterServer) KeepConnected(stream master_pb.Seaweed_KeepConnectedServ
}
ms.deleteClient(clientName)
}()
-
- for _, message := range ms.Topo.ToVolumeLocations() {
+ for i, message := range ms.Topo.ToVolumeLocations() {
+ if i == 0 {
+ if leader, err := ms.Topo.Leader(); err == nil {
+ message.Leader = string(leader)
+ }
+ }
if sendErr := stream.Send(&master_pb.KeepConnectedResponse{VolumeLocation: message}); sendErr != nil {
return sendErr
}
diff --git a/weed/server/webdav_server.go b/weed/server/webdav_server.go
index 265dea03a..5140af2b4 100644
--- a/weed/server/webdav_server.go
+++ b/weed/server/webdav_server.go
@@ -48,6 +48,13 @@ type WebDavServer struct {
Handler *webdav.Handler
}
+func max(x, y int64) int64 {
+ if x <= y {
+ return y
+ }
+ return x
+}
+
func NewWebDavServer(option *WebDavOption) (ws *WebDavServer, err error) {
fs, _ := NewWebDavFileSystem(option)
@@ -496,6 +503,7 @@ func (f *WebDavFile) Write(buf []byte) (int, error) {
written, err := f.bufWriter.Write(buf)
if err == nil {
+ f.entry.Attributes.FileSize = uint64(max(f.off+int64(written), int64(f.entry.Attributes.FileSize)))
glog.V(3).Infof("WebDavFileSystem.Write %v: written [%d,%d)", f.name, f.off, f.off+int64(len(buf)))
f.off += int64(written)
}