From cdd56ba07e221ec3dff4a36baa73f99980fdfe7e Mon Sep 17 00:00:00 2001 From: Alessandro Boch Date: Tue, 3 Jan 2017 11:39:04 -0800 Subject: [PATCH] Prioritize nw endpoint which can provide both v4 and v6 connectivity - when selecting sandbox's default gw Signed-off-by: Alessandro Boch --- libnetwork/sandbox.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libnetwork/sandbox.go b/libnetwork/sandbox.go index 48b95f66e1..6767026369 100644 --- a/libnetwork/sandbox.go +++ b/libnetwork/sandbox.go @@ -1174,6 +1174,17 @@ func (eh epHeap) Less(i, j int) bool { return true } + if epi.joinInfo != nil && epj.joinInfo != nil { + if (epi.joinInfo.gw != nil && epi.joinInfo.gw6 != nil) && + (epj.joinInfo.gw == nil || epj.joinInfo.gw6 == nil) { + return true + } + if (epj.joinInfo.gw != nil && epj.joinInfo.gw6 != nil) && + (epi.joinInfo.gw == nil || epi.joinInfo.gw6 == nil) { + return false + } + } + if ci != nil { cip, ok = ci.epPriority[eh[i].ID()] if !ok {