Просмотр исходного кода

Merge pull request #994 from sanimej/fixes

If anonymous container has alias names use it for DNS PTR record
Alessandro Boch 9 лет назад
Родитель
Сommit
a75f64df20
1 измененных файлов с 13 добавлено и 2 удалено
  1. 13 2
      libnetwork/network.go

+ 13 - 2
libnetwork/network.go

@@ -851,14 +851,25 @@ func (n *network) updateSvcRecord(ep *endpoint, localEps []*endpoint, isAdd bool
 	if iface := ep.Iface(); iface.Address() != nil {
 	if iface := ep.Iface(); iface.Address() != nil {
 		myAliases := ep.MyAliases()
 		myAliases := ep.MyAliases()
 		if isAdd {
 		if isAdd {
-			if !ep.isAnonymous() {
+			// If anonymous endpoint has an alias use the first alias
+			// for ip->name mapping. Not having the reverse mapping
+			// breaks some apps
+			if ep.isAnonymous() {
+				if len(myAliases) > 0 {
+					n.addSvcRecords(myAliases[0], iface.Address().IP, true)
+				}
+			} else {
 				n.addSvcRecords(epName, iface.Address().IP, true)
 				n.addSvcRecords(epName, iface.Address().IP, true)
 			}
 			}
 			for _, alias := range myAliases {
 			for _, alias := range myAliases {
 				n.addSvcRecords(alias, iface.Address().IP, false)
 				n.addSvcRecords(alias, iface.Address().IP, false)
 			}
 			}
 		} else {
 		} else {
-			if !ep.isAnonymous() {
+			if ep.isAnonymous() {
+				if len(myAliases) > 0 {
+					n.deleteSvcRecords(myAliases[0], iface.Address().IP, true)
+				}
+			} else {
 				n.deleteSvcRecords(epName, iface.Address().IP, true)
 				n.deleteSvcRecords(epName, iface.Address().IP, true)
 			}
 			}
 			for _, alias := range myAliases {
 			for _, alias := range myAliases {