diff options
| author | edge <cwl233@mail.ustc.edu.cn> | 2019-11-27 14:41:08 +0800 |
|---|---|---|
| committer | edge <cwl233@mail.ustc.edu.cn> | 2019-11-27 14:50:46 +0800 |
| commit | c8d88445be3375bc08f12b5c8f02e4ff55fe3d57 (patch) | |
| tree | bcbdec774199d14673bb5150df93f718c3ae3a9c /edgemesh | |
| parent | dns query from container can not correctly return back (diff) | |
| download | kubeedge-c8d88445be3375bc08f12b5c8f02e4ff55fe3d57.tar.gz | |
add a judgement before decoding the message
Diffstat (limited to 'edgemesh')
| -rw-r--r-- | edgemesh/pkg/proxy/proxy.go | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/edgemesh/pkg/proxy/proxy.go b/edgemesh/pkg/proxy/proxy.go index 78f259e03..50a221207 100644 --- a/edgemesh/pkg/proxy/proxy.go +++ b/edgemesh/pkg/proxy/proxy.go @@ -290,9 +290,16 @@ func (at *addrTable) getAddrTable(key string) *serviceTable { // filterResourceType implement filter. Proxy cares "Service" and "ServiceList" type func filterResourceType(msg model.Message) []v1.Service { svcs := make([]v1.Service, 0) - content, ok := msg.Content.([]byte) - if !ok { - return svcs + var content []byte + var err error + switch msg.Content.(type) { + case []byte: + content = msg.GetContent().([]byte) + default: + content, err = json.Marshal(msg.GetContent()) + if err != nil { + klog.Errorf("marshal message to edgemesh failed, err: %v", err) + } } switch getReourceType(msg.GetResource()) { case constants.ResourceTypeService: |
