diff options
| author | Chris Lu <chris.lu@gmail.com> | 2017-01-12 13:42:53 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2017-01-12 13:42:53 -0800 |
| commit | d953ed442cb027393399e2c5507e6de45c2c0923 (patch) | |
| tree | 0568c8b5e6cfadc5aba6a5f9e25acbae83aa62bf /weed/server | |
| parent | 1be354bdce0c48636807bb98b94504fc51dd73f9 (diff) | |
| download | seaweedfs-d953ed442cb027393399e2c5507e6de45c2c0923.tar.xz seaweedfs-d953ed442cb027393399e2c5507e6de45c2c0923.zip | |
auto detect volume server ip address
Diffstat (limited to 'weed/server')
| -rw-r--r-- | weed/server/master_grpc_server.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/weed/server/master_grpc_server.go b/weed/server/master_grpc_server.go index 29c95a3d4..b5cbd85b7 100644 --- a/weed/server/master_grpc_server.go +++ b/weed/server/master_grpc_server.go @@ -1,10 +1,14 @@ package weed_server import ( + "net" + "strings" + "github.com/chrislusf/seaweedfs/weed/glog" "github.com/chrislusf/seaweedfs/weed/pb" "github.com/chrislusf/seaweedfs/weed/storage" "github.com/chrislusf/seaweedfs/weed/topology" + "google.golang.org/grpc/peer" ) func (ms MasterServer) SendHeartbeat(stream pb.Seaweed_SendHeartbeatServer) error { @@ -15,6 +19,14 @@ func (ms MasterServer) SendHeartbeat(stream pb.Seaweed_SendHeartbeatServer) erro if err == nil { if dn == nil { t.Sequence.SetMax(heartbeat.MaxFileKey) + if heartbeat.Ip == "" { + if pr, ok := peer.FromContext(stream.Context()); ok { + if pr.Addr != net.Addr(nil) { + heartbeat.Ip = pr.Addr.String()[0:strings.LastIndex(pr.Addr.String(), ":")] + glog.V(0).Infof("remote IP address is detected as %v", heartbeat.Ip) + } + } + } dcName, rackName := t.Configuration.Locate(heartbeat.Ip, heartbeat.DataCenter, heartbeat.Rack) dc := t.GetOrCreateDataCenter(dcName) rack := dc.GetOrCreateRack(rackName) |
