diff --git a/src/server/slavefuncs.c b/src/server/slavefuncs.c --- a/src/server/slavefuncs.c +++ b/src/server/slavefuncs.c @@ -65,8 +65,17 @@ xmlNodePtr xml_quickxpath(xmlXPathContex } /** Ensures that rendering engines on the computer are up-to-date */ -int software_updatecheck(){ - curlget("http://protofusion.org/srv/version.info", SYSCONFDIR "/serverEngineVersion.info"); +int software_updatecheck(char *datadir){ + char *pathtoserverVersion; + _distren_asprintf(&pathtoserverVersion, "%s/serverEngineVersion.info",datadir); + + char *engineDownloadPath; + _distren_asprintf(&engineDownloadPath, "%s/engines/blender.tgz",datadir); + + char *pathtolocalVersion; + _distren_asprintf(&pathtolocalVersion, "%s/envines/blender/version.info",datadir); + + curlget("http://protofusion.org/srv/version.info", pathtoserverVersion); struct stat buffer; char serverVersion[5]; // Version numbers are nice and short char localVersion[5]; // Version numbers are nice and short @@ -75,7 +84,7 @@ int software_updatecheck(){ // Read server version { FILE * serverVersionFile; - serverVersionFile = fopen(SYSCONFDIR "/serverEngineVersion.info","r"); + serverVersionFile = fopen(pathtoserverVersion, "r"); fscanf(serverVersionFile, "%s",serverVersion); fclose(serverVersionFile); } @@ -83,7 +92,7 @@ int software_updatecheck(){ // Read local version { FILE * localVersionFile; - localVersionFile = fopen(SYSCONFDIR "/engines/blender/version.info","r"); + localVersionFile = fopen(pathtolocalVersion, "r"); fscanf(localVersionFile, "%s",localVersion); fclose(localVersionFile); } @@ -92,14 +101,14 @@ int software_updatecheck(){ // If a rendering engine was never downloaded if( stat(SYSCONFDIR "/engines/blender", &buffer) == -1){ fprintf(stderr,"You don't have the blender engine. Preparing to download..."); - curlget("http://protofusion.org/distren/srv/blender-lin32-dist.tgz", SYSCONFDIR "/engines/blender.tgz"); // Add calls for operating system info + curlget("http://protofusion.org/distren/srv/blender-lin32-dist.tgz", engineDownloadPath); // Add calls for operating system info // untar(SYSCONFDIR "/engines/blender.tgz"); } // If a rendering engine is out-of-date else if( serverVersion != localVersion){ fprintf(stderr,"You don't have the latest blender engine. Preparing to download..."); - curlget("http://protofusion.org/distren/srv/blender-lin32-dist.tgz", SYSCONFDIR "/engines/blender.tgz"); // Add calls for operating system info + curlget("http://protofusion.org/distren/srv/blender-lin32-dist.tgz", engineDownloadPath); // Add calls for operating system info // untar(SYSCONFDIR "/engines/blender.tgz"); }