From 32fcf0b40520e3d644dee8357f83bb52bbb76c8a Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@lothar.com>
Date: Sat, 21 Jul 2007 15:40:13 -0700
Subject: [PATCH] dirnode.build_manifest(): tolerate cycles in the directory
 graph

---
 src/allmydata/dirnode.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/allmydata/dirnode.py b/src/allmydata/dirnode.py
index 18b7999b..cbc35964 100644
--- a/src/allmydata/dirnode.py
+++ b/src/allmydata/dirnode.py
@@ -354,7 +354,7 @@ class ImmutableDirectoryNode:
             dl = []
             for name, child in res.iteritems():
                 manifest.add(child.get_refresh_capability())
-                if IDirectoryNode.providedBy(child):
+                if IDirectoryNode.providedBy(child) and child not in manifest:
                     dl.append(self._build_manifest_from_node(child, manifest))
             if dl:
                 return defer.DeferredList(dl)
-- 
2.45.2