From fc98aded8ab7cedfdd0ee029e3402a831cbe67f4 Mon Sep 17 00:00:00 2001
From: david-sarah <david-sarah@jacaranda.org>
Date: Mon, 17 Jan 2011 15:31:52 -0800
Subject: [PATCH] src/allmydata/webish.py: clean-ups and correction to a
 comment. Also change an open and write to use fileutil.write. See ref #1286
 comment 13.

---
 src/allmydata/webish.py | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/allmydata/webish.py b/src/allmydata/webish.py
index 5ab9337d..03ca3bad 100644
--- a/src/allmydata/webish.py
+++ b/src/allmydata/webish.py
@@ -3,7 +3,7 @@ from twisted.application import service, strports, internet
 from twisted.web import http
 from twisted.internet import defer
 from nevow import appserver, inevow, static
-from allmydata.util import log
+from allmydata.util import log, fileutil
 
 from allmydata.web import introweb, root
 from allmydata.web.common import IOpHandleTable, MyExceptionHandler
@@ -157,15 +157,19 @@ class WebishServer(service.MultiService):
         self._scheme = None
         self._portnum = None
         self._url = None
-        self.listener = s # stash it so the tests can query for the portnum
+        self._listener = s # stash it so we can query for the portnum
 
         self._started = defer.Deferred()
         if nodeurl_path:
-            self._started.addCallback(self._write_nodeurl_file, nodeurl_path)
+            def _write_nodeurl_file(ign):
+                # this file will be created with default permissions
+                fileutil.write(nodeurl_path, self.getURL() + "\n")
+            self._started.addCallback(_write_nodeurl_file)
 
     def getURL(self):
         assert self._url
         return self._url
+
     def getPortnum(self):
         assert self._portnum
         return self._portnum
@@ -183,7 +187,7 @@ class WebishServer(service.MultiService):
             return f
 
         service.MultiService.startService(self)
-        s = self.listener
+        s = self._listener
         if hasattr(s, 'endpoint') and hasattr(s, '_waitingForPort'):
             # Twisted 10.2 gives us a StreamServerEndpointService. This is
             # ugly but should do for now.
@@ -206,13 +210,6 @@ class WebishServer(service.MultiService):
             self._started.errback(AssertionError("couldn't find out the scheme or port for the web-API server"))
 
 
-    def _write_nodeurl_file(self, junk, nodeurl_path):
-        if self._url:
-            f = open(nodeurl_path, 'wb')
-            # this file is world-readable
-            f.write(self._url + "\n")
-            f.close()
-
 class IntroducerWebishServer(WebishServer):
     def __init__(self, introducer, webport, nodeurl_path=None, staticdir=None):
         service.MultiService.__init__(self)
-- 
2.45.2