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): def __init__(self, argv):
self.version = "0.3.2" self.version = "0.3.2"
self.rev = 472 self.rev = 473
self.argv = argv self.argv = argv
self.action = None self.action = None
self.createParser() self.createParser()

View File

@ -5,7 +5,7 @@ import os
from Plugin import PluginManager from Plugin import PluginManager
from Config import config from Config import config
from util import helper
@PluginManager.acceptPlugins @PluginManager.acceptPlugins
class SiteManager(object): class SiteManager(object):
@ -73,7 +73,7 @@ class SiteManager(object):
# Delete from sites.json # Delete from sites.json
sites_settings = json.load(open("%s/sites.json" % config.data_dir)) sites_settings = json.load(open("%s/sites.json" % config.data_dir))
del(sites_settings[address]) 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 # Lazy load sites
def list(self): 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"): def sitePublish(self, address, peer_ip=None, peer_port=15441, inner_path="content.json"):
global file_server global file_server
from Site import Site from Site import Site
from Site import SiteManager
from File import FileServer # We need fileserver to handle incoming file requests from File import FileServer # We need fileserver to handle incoming file requests
logging.info("Creating FileServer....") logging.info("Creating FileServer....")
file_server = FileServer() file_server = FileServer()
file_server_thread = gevent.spawn(file_server.start, check_sites=False) # Dont check every site integrity file_server_thread = gevent.spawn(file_server.start, check_sites=False) # Dont check every site integrity
file_server.openport() 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 site.settings["serving"] = True # Serving the site even if its disabled
if peer_ip: # Announce ip specificed if peer_ip: # Announce ip specificed
site.addPeer(peer_ip, peer_port) site.addPeer(peer_ip, peer_port)

View File

@ -5,7 +5,10 @@ import re
def atomicWrite(dest, content, mode="w"): 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, dest + "-old")
os.rename(dest + "-new", dest) os.rename(dest + "-new", dest)
os.unlink(dest + "-old") os.unlink(dest + "-old")