Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2011-08-07 19:26:25 +0400
committerMartin Poirier <theeth@yahoo.com>2011-08-07 19:26:25 +0400
commitcfb12a23b729e98624501394dd1013d002da983c (patch)
tree0161eab82110a66456bea08334748e9999ca9910 /netrender
parent2f80c8db1172ae449d7908a4cb31d2425e5df823 (diff)
netrender fix for master receiving files
Based on patch [#28108] by Wintch Analyzer
Diffstat (limited to 'netrender')
-rw-r--r--netrender/master.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/netrender/master.py b/netrender/master.py
index 91e610ea..e3c7399e 100644
--- a/netrender/master.py
+++ b/netrender/master.py
@@ -201,6 +201,14 @@ pause_pattern = re.compile("/pause_([a-zA-Z0-9]+)")
edit_pattern = re.compile("/edit_([a-zA-Z0-9]+)")
class RenderHandler(http.server.BaseHTTPRequestHandler):
+ def write_file(self, file_path, mode = 'wb'):
+ length = int(self.headers['content-length'])
+ f = open(file_path, mode)
+ buf = self.rfile.read(length)
+ f.write(buf)
+ f.close()
+ del buf
+
def log_message(self, format, *args):
# override because the original calls self.address_string(), which
# is extremely slow due to some timeout..
@@ -697,6 +705,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
if match:
self.server.stats("", "Receiving job")
+ length = int(self.headers['content-length'])
job_id = match.groups()[0]
file_index = int(match.groups()[1])
@@ -718,10 +727,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
# add same temp file + renames as slave
- f = open(file_path, "wb")
- shutil.copyfileobj(self.rfile, f)
- f.close()
-
+ self.write_file(file_path)
+
render_file.filepath = file_path # set the new path
if job.testStart():
@@ -764,9 +771,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
if job.hasRenderResult():
if job_result == DONE:
- f = open(os.path.join(job.save_path, "%06d.exr" % job_frame), 'wb')
- shutil.copyfileobj(self.rfile, f)
- f.close()
+ self.write_file(os.path.join(job.save_path, "%06d.exr" % job_frame))
elif job_result == ERROR:
# blacklist slave on this job on error
@@ -809,9 +814,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
self.send_head(content = None)
if job.hasRenderResult():
- f = open(os.path.join(job.save_path, "%06d.jpg" % job_frame), 'wb')
- shutil.copyfileobj(self.rfile, f)
- f.close()
+ os.path.join(os.path.join(job.save_path, "%06d.jpg" % job_frame))
else: # frame not found
self.send_head(http.client.NO_CONTENT)
@@ -838,9 +841,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
if frame and frame.log_path:
self.send_head(content = None)
- f = open(frame.log_path, 'ab')
- shutil.copyfileobj(self.rfile, f)
- f.close()
+ self.write_file(frame.log_path, 'ab')
self.server.getSeenSlave(self.headers['slave-id'])