diff --git a/plugins/Cors/CorsPlugin.py b/plugins/Cors/CorsPlugin.py index 5aa73ee1..a8651be2 100644 --- a/plugins/Cors/CorsPlugin.py +++ b/plugins/Cors/CorsPlugin.py @@ -1,5 +1,6 @@ import re import cgi +import copy from Plugin import PluginManager from Translate import Translate @@ -25,18 +26,17 @@ def getCorsPath(site, inner_path): class UiWebsocketPlugin(object): # Add cors support for file commands def corsFuncWrapper(self, func_name, to, inner_path, *args, **kwargs): - func = getattr(super(UiWebsocketPlugin, self), func_name) if inner_path.startswith("cors-"): cors_address, cors_inner_path = getCorsPath(self.site, inner_path) - site_before = self.site # Save to be able to change it back after we ran the command - self.site = self.server.sites.get(cors_address) # Change the site to the merged one - try: - back = func(to, cors_inner_path, *args, **kwargs) - finally: - self.site = site_before # Change back to original site + req_self = copy.copy(self) + req_self.site = self.server.sites.get(cors_address) # Change the site to the merged one + + func = getattr(super(UiWebsocketPlugin, req_self), func_name) + back = func(to, cors_inner_path, *args, **kwargs) return back else: + func = getattr(super(UiWebsocketPlugin, self), func_name) return func(to, inner_path, *args, **kwargs) def actionFileGet(self, to, inner_path, *args, **kwargs): diff --git a/plugins/MergerSite/MergerSitePlugin.py b/plugins/MergerSite/MergerSitePlugin.py index 37c10598..49aeebe2 100644 --- a/plugins/MergerSite/MergerSitePlugin.py +++ b/plugins/MergerSite/MergerSitePlugin.py @@ -1,5 +1,6 @@ import re import time +import copy from Plugin import PluginManager from Translate import Translate @@ -122,7 +123,6 @@ class UiWebsocketPlugin(object): # Add support merger sites for file commands def mergerFuncWrapper(self, func_name, to, inner_path, *args, **kwargs): - func = getattr(super(UiWebsocketPlugin, self), func_name) if inner_path.startswith("merged-"): merged_address, merged_inner_path = checkMergerPath(self.site.address, inner_path) @@ -131,14 +131,15 @@ class UiWebsocketPlugin(object): if merger_cert and self.user.getSiteData(merged_address).get("cert") != merger_cert: self.user.setCert(merged_address, merger_cert) - site_before = self.site # Save to be able to change it back after we ran the command - self.site = self.server.sites.get(merged_address) # Change the site to the merged one - try: - back = func(to, merged_inner_path, *args, **kwargs) - finally: - self.site = site_before # Change back to original site + req_self = copy.copy(self) + req_self.site = self.server.sites.get(merged_address) # Change the site to the merged one + + func = getattr(super(UiWebsocketPlugin, req_self), func_name) + back = func(to, merged_inner_path, *args, **kwargs) + return back else: + func = getattr(super(UiWebsocketPlugin, self), func_name) return func(to, inner_path, *args, **kwargs) def actionFileList(self, to, inner_path, *args, **kwargs): diff --git a/src/Config.py b/src/Config.py index 1da9ca1a..a73143db 100644 --- a/src/Config.py +++ b/src/Config.py @@ -10,7 +10,7 @@ class Config(object): def __init__(self, argv): self.version = "0.5.7" - self.rev = 2190 + self.rev = 2192 self.argv = argv self.action = None self.config_file = "zeronet.conf"