From fb593321d10be4daf6de7ef7991eba6c2d741d6c Mon Sep 17 00:00:00 2001
From: scott <scottwangsxll@gmail.com>
Date: Sun, 15 Mar 2020 23:08:18 +0800
Subject: [PATCH] Fix missing protocol scheme bug

---
 registry/etcdv3/listener.go     | 7 ++++++-
 registry/kubernetes/listener.go | 7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/registry/etcdv3/listener.go b/registry/etcdv3/listener.go
index da6a46b15..2f2172d5f 100644
--- a/registry/etcdv3/listener.go
+++ b/registry/etcdv3/listener.go
@@ -49,7 +49,12 @@ func (l *dataListener) AddInterestedURL(url *common.URL) {
 
 func (l *dataListener) DataChange(eventType remoting.Event) bool {
 
-	url := eventType.Path[strings.Index(eventType.Path, "/providers/")+len("/providers/"):]
+	index := strings.Index(eventType.Path, "/providers/")
+	if index == -1 {
+		logger.Warnf("Listen with no url, event.path={%v}", eventType.Path)
+		return false
+	}
+	url := eventType.Path[index+len("/providers/"):]
 	serviceURL, err := common.NewURL(url)
 	if err != nil {
 		logger.Warnf("Listen NewURL(r{%s}) = error{%v}", eventType.Path, err)
diff --git a/registry/kubernetes/listener.go b/registry/kubernetes/listener.go
index b1593e6fc..6527eebbb 100644
--- a/registry/kubernetes/listener.go
+++ b/registry/kubernetes/listener.go
@@ -53,7 +53,12 @@ func (l *dataListener) AddInterestedURL(url *common.URL) {
 // notify listen, when interest event
 func (l *dataListener) DataChange(eventType remoting.Event) bool {
 
-	url := eventType.Path[strings.Index(eventType.Path, "/providers/")+len("/providers/"):]
+	index := strings.Index(eventType.Path, "/providers/")
+	if index == -1 {
+		logger.Warnf("Listen with no url, event.path={%v}", eventType.Path)
+		return false
+	}
+	url := eventType.Path[index+len("/providers/"):]
 	serviceURL, err := common.NewURL(url)
 	if err != nil {
 		logger.Warnf("Listen NewURL(r{%s}) = error{%v}", eventType.Path, err)
-- 
GitLab