Rev473, Better atomic save, Fix sitePublish command when ip_external definied

This commit is contained in:
HelloZeroNet 2015-10-18 22:58:02 +02:00
parent 02f3a4f8eb
commit 5f5f128b8a
4 changed files with 9 additions and 5 deletions

View File

@ -8,7 +8,7 @@ class Config(object):
def __init__(self, argv):
self.version = "0.3.2"
self.rev = 472
self.rev = 473
self.argv = argv
self.action = None
self.createParser()

View File

@ -5,7 +5,7 @@ import os
from Plugin import PluginManager
from Config import config
from util import helper
@PluginManager.acceptPlugins
class SiteManager(object):
@ -73,7 +73,7 @@ class SiteManager(object):
# Delete from sites.json
sites_settings = json.load(open("%s/sites.json" % config.data_dir))
del(sites_settings[address])
open("%s/sites.json" % config.data_dir, "w").write(json.dumps(sites_settings, indent=2, sort_keys=True))
helper.atomicWrite("%s/sites.json" % config.data_dir, json.dumps(sites_settings, indent=2, sort_keys=True))
# Lazy load sites
def list(self):

View File

@ -214,13 +214,14 @@ class Actions(object):
def sitePublish(self, address, peer_ip=None, peer_port=15441, inner_path="content.json"):
global file_server
from Site import Site
from Site import SiteManager
from File import FileServer # We need fileserver to handle incoming file requests
logging.info("Creating FileServer....")
file_server = FileServer()
file_server_thread = gevent.spawn(file_server.start, check_sites=False) # Dont check every site integrity
file_server.openport()
site = file_server.sites[address]
site = SiteManager.site_manager.list()[address]
site.settings["serving"] = True # Serving the site even if its disabled
if peer_ip: # Announce ip specificed
site.addPeer(peer_ip, peer_port)

View File

@ -5,7 +5,10 @@ import re
def atomicWrite(dest, content, mode="w"):
open(dest + "-new", mode).write(content)
with open(dest + "-new", mode) as f:
f.write(content)
f.flush()
os.fsync(f.fileno())
os.rename(dest, dest + "-old")
os.rename(dest + "-new", dest)
os.unlink(dest + "-old")