improvements/fixes from MatN and Andrew related to AppImage and batch render
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / renderfarmclient.C
index b12b5225a77bd7482a6e96e6143dac4a4e4df4d6..24e52db718e0c7a5978d51e2fd413f7336ec3326 100644 (file)
@@ -77,6 +77,7 @@ RenderFarmClient::RenderFarmClient(int port,
        boot_preferences = new Preferences;
        boot_preferences->load_defaults(boot_defaults);
        MWindow::init_plugins(0, boot_preferences);
+       MWindow::init_ladspa_plugins(0, boot_preferences);  
        BC_Signals::set_catch_segv(boot_preferences->trap_sigsegv);
        BC_Signals::set_catch_intr(0);
         if( boot_preferences->trap_sigsegv ) {
@@ -122,6 +123,11 @@ void RenderFarmClient::main_loop()
                        perror(_("RenderFarmClient::main_loop: socket"));
                        return;
                }
+               struct linger lgr;
+               lgr.l_onoff = 0;
+               lgr.l_linger = 0;
+               if( setsockopt(socket_fd, SOL_SOCKET, SO_LINGER, &lgr, sizeof(lgr)) < 0 )
+                       perror("RenderFarmClient::setsockopt:setlinger 0");
 
                if(bind(socket_fd,
                        (struct sockaddr*)&addr,
@@ -147,6 +153,11 @@ void RenderFarmClient::main_loop()
                        perror(_("RenderFarmClient::main_loop: socket"));
                        return;
                }
+               struct linger lgr;
+               lgr.l_onoff = 0;
+               lgr.l_linger = 0;
+               if( setsockopt(socket_fd, SOL_SOCKET, SO_LINGER, &lgr, sizeof(lgr)) < 0 )
+                       perror("RenderFarmClient::setsockopt:setlinger 1");
 
                if(bind(socket_fd,
                        (struct sockaddr*)&addr,
@@ -267,7 +278,8 @@ int RenderFarmClientThread::read_socket(char *data, int len)
        int bytes_read = 0;
        int offset = 0;
 //printf("RenderFarmClientThread::read_socket 1\n");
-       watchdog->begin_request();
+       if( watchdog )
+               watchdog->begin_request();
        while(len > 0 && bytes_read >= 0)
        {
                bytes_read = read(socket_fd, data + offset, len);
@@ -282,7 +294,8 @@ int RenderFarmClientThread::read_socket(char *data, int len)
                        break;
                }
        }
-       watchdog->end_request();
+       if( watchdog )
+               watchdog->end_request();
 //printf("RenderFarmClientThread::read_socket 10\n");
 
        return offset;
@@ -425,13 +438,7 @@ void RenderFarmClientThread::read_asset(int socket_fd, Asset *asset)
 
        BC_Hash defaults;
        defaults.load_string((char*)string1);
-       asset->load_defaults(&defaults,
-               0,
-               1,
-               1,
-               1,
-               1,
-               1);
+       asset->load_defaults(&defaults, 0, 1, 1, 1, 1, 1);
 
 //printf("RenderFarmClientThread::read_asset %d\n", __LINE__);
 //asset->dump();