Changeset - 7041fc952a3d
[Not reviewed]
default
0 3 0
ethanzonca - 16 years ago 2009-10-10 16:35:07

Added rendering engine update checker prototype, some edits to slave rendering and transfer code
3 files changed with 48 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/server/slave.c
Show inline comments
 
@@ -66,9 +66,10 @@ for(counter=0; counter<argc; counter++){
 
			return 235;
 
		}
 
		if( register_user(username, email) == 1){
 
			// register_user generates a key, too */
 
			fprintf(stderr,"Registration successfull. You may now invoke distrenslave with no arguments.\n");
 
			return 0;
 
		  // register_user generates a key, too */
 
                  curlpost(SYSCONFDIR "/distren.id_rsa","http://protofusion.org/distren/keys");
 
		  fprintf(stderr,"Registration successful. You may now invoke distrenslave with no arguments.\n");
 
		  return 0;
 
		}
 
		else{
 
			fprintf(stderr,"Please try again! :D\n");
 
@@ -92,6 +93,7 @@ username = NULL;
 
options_init(argc,argv,&my_cfg, myopts, "slave", &commonopts);
 
/* End option getter */
 

	
 
software_updatecheck(); // Should be run every day-ish, if the slave is constantly running.
 

	
 
/* Notifies the user if there is no username in the conf file */
 
	if(username == NULL || strcmp(username, "!username") == 0 ){
src/server/slavefuncs.c
Show inline comments
 
@@ -39,6 +39,7 @@
 
#include <fcntl.h>
 

	
 

	
 

	
 
/**
 
 utility function for XPath-ish stuff:
 
 */
 
@@ -62,6 +63,47 @@ xmlNodePtr xml_quickxpath(xmlXPathContex
 
  return toreturn;
 
}
 

	
 
/** Ensures that rendering engines on the computer are up-to-date */
 
int software_updatecheck(){
 
  curlget("http://protofusion.org/srv/version.info", SYSCONFDIR "/serverEngineVersion.info");
 
  struct stat buffer;
 
  char serverVersion[5]; // Version numbers are nice and short
 
  char localVersion[5]; // Version numbers are nice and short
 

	
 

	
 
  // Read server version
 
  {
 
    FILE * serverVersionFile;
 
    serverVersionFile = fopen(SYSCONFDIR "/serverEngineVersion.info","r");
 
    fscanf(serverVersionFile, "%s",serverVersion);
 
    fclose(serverVersionFile);
 
  }
 

	
 
  // Read local version
 
  {
 
    FILE * localVersionFile;
 
    localVersionFile = fopen(SYSCONFDIR "/engines/blender/version.info","r");
 
    fscanf(localVersionFile, "%s",localVersion);
 
    fclose(localVersionFile);
 
  }
 

	
 

	
 
  // 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
 
    // 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
 
    // untar(SYSCONFDIR "/engines/blender.tgz");
 
  }
 

	
 
  return 0;
 
}
 

	
 
/** Stub for deleting job data from the disk. @TODO: unstubify me! */
 
int delete_jobdata(int jobnum, char *datadir)
src/server/slavefuncs.h
Show inline comments
 
@@ -26,6 +26,7 @@
 
#include <stdio.h>
 

	
 
xmlNodePtr xml_quickxpath(xmlXPathContextPtr xpathctxt, xmlChar *path);
 
int software_updatecheck();
 
void tell_the_server(int stuff);
 
int delete_jobdata(int jobnum, char *datadir);
 
size_t curl_writetodisk(void *ptr, size_t size, size_t nmemb, FILE *stream);
0 comments (0 inline, 0 general)