Revision: 23315
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23315
Author:   theeth
Date:     2009-09-17 20:40:37 +0200 (Thu, 17 Sep 2009)

Log Message:
-----------
netrender:

Disable windows' blocking crash reports in child process. (windows only)
Get server port as well as ip address from master broadcast (broadcast is on a 
fixed port).

Modified Paths:
--------------
    trunk/blender/release/io/netrender/master.py
    trunk/blender/release/io/netrender/operators.py
    trunk/blender/release/io/netrender/slave.py

Modified: trunk/blender/release/io/netrender/master.py
===================================================================
--- trunk/blender/release/io/netrender/master.py        2009-09-17 17:44:54 UTC 
(rev 23314)
+++ trunk/blender/release/io/netrender/master.py        2009-09-17 18:40:37 UTC 
(rev 23315)
@@ -632,5 +632,5 @@
                        if broadcast:
                                if time.time() - start_time >= 10: # need 
constant here
                                        print("broadcasting address")
-                                       s.sendto(bytes("%s:%i" % address, 
encoding='utf8'), 0, ('<broadcast>',address[1]))
+                                       s.sendto(bytes("%i" % address[1], 
encoding='utf8'), 0, ('<broadcast>', 8000))
                                        start_time = time.time()

Modified: trunk/blender/release/io/netrender/operators.py
===================================================================
--- trunk/blender/release/io/netrender/operators.py     2009-09-17 17:44:54 UTC 
(rev 23314)
+++ trunk/blender/release/io/netrender/operators.py     2009-09-17 18:40:37 UTC 
(rev 23315)
@@ -339,14 +339,15 @@
                s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
                s.settimeout(30)
 
-               s.bind(('', netsettings.server_port))
+               s.bind(('', 8000))
                
                try:
-                       buf, address = s.recvfrom(128)
+                       buf, address = s.recvfrom(64)
                        
                        print("received:", buf)
                        
                        netsettings.server_address = address[0]
+                       netsettings.server_port = int(str(buf, encoding='utf8'))
                except socket.timeout:
                        print("no server info")
                

Modified: trunk/blender/release/io/netrender/slave.py
===================================================================
--- trunk/blender/release/io/netrender/slave.py 2009-09-17 17:44:54 UTC (rev 
23314)
+++ trunk/blender/release/io/netrender/slave.py 2009-09-17 18:40:37 UTC (rev 
23315)
@@ -9,6 +9,22 @@
 MAX_TIMEOUT = 10
 INCREMENT_TIMEOUT = 1
 
+if platform.system() == 'Windows' and platform.version() >= '5': # Error mode 
is only available on Win2k or higher, that's version 5
+       import ctypes
+       def SetErrorMode():
+               val = ctypes.windll.kernel32.SetErrorMode(0x0002)
+               ctypes.windll.kernel32.SetErrorMode(val | 0x0002)
+               return val
+       
+       def RestoreErrorMode(val):
+               ctypes.windll.kernel32.SetErrorMode(val)
+else:
+       def SetErrorMode():
+               return 0
+               
+       def RestoreErrorMode(val):
+               pass
+
 def slave_Info():
        sysname, nodename, release, version, machine, processor = 
platform.uname()
        slave = netrender.model.RenderSlave()
@@ -100,10 +116,14 @@
                                for frame in job.frames:
                                        print("frame", frame.number)
                                        frame_args += ["-f", str(frame.number)]
-                                       
+                               
+                               
+                               
                                start_t = time.time()
                                
-                               process = subprocess.Popen([sys.argv[0], "-b", 
job_full_path, "-o", JOB_PREFIX + "######", "-E", "BLENDER_RENDER", "-F", 
"MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)  
+                               val = SetErrorMode()
+                               process = subprocess.Popen([sys.argv[0], "-b", 
job_full_path, "-o", JOB_PREFIX + "######", "-E", "BLENDER_RENDER", "-F", 
"MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+                               RestoreErrorMode(val)
                                
                                headers = {"job-id":job.id, "slave-id":slave_id}
                                


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to