# HG changeset patch # User normaldotcom # Date 2010-03-17 23:54:12 # Node ID 195048ceb5619f9017060bdf0e6872a87eb3a39e # Parent d0f64b1f3376fda48b06f218b2842278639b10ae Added version checking, asks before running benchmark. diff --git a/src/server/simpleslave.c b/src/server/simpleslave.c --- a/src/server/simpleslave.c +++ b/src/server/simpleslave.c @@ -130,13 +130,19 @@ int main(int argc, char *argv[]) int benchmarkTime = 0; int renderPower = 0; - if(slaveBenchmark(datadir, &benchmarkTime, &renderPower)){ - fprintf(stderr,"Benchmark failed! Exiting.\n"); - return 1; - } - else{ - fprintf(stderr,"Benchmark successful, time taken was %d seconds, giving you a render power of %d.\n", benchmarkTime, renderPower); - _web_setrenderpower(slavekey, password, renderPower); + + char option[1] = ""; + fprintf(stderr,"Do you want to recalculate render power? (y/n): "); + scanf("%s", option); + if(!strcmp(option, "y")){ + if(slaveBenchmark(datadir, &benchmarkTime, &renderPower)){ + fprintf(stderr,"Benchmark failed! Exiting.\n"); + return 1; + } + else{ + fprintf(stderr,"Benchmark successful, time taken was %d seconds, giving you a render power of %d.\n", benchmarkTime, renderPower); + _web_setrenderpower(slavekey, password, renderPower); + } } // Main loop diff --git a/src/server/slavefuncs.c b/src/server/slavefuncs.c --- a/src/server/slavefuncs.c +++ b/src/server/slavefuncs.c @@ -733,11 +733,27 @@ int _web_getwork(int slavekey, char *sla free(data.memory); return 0; } + // Compare to PACKAGE_VERSIOn else{ - *jobnum = atoi(data.memory); - *framenum = atoi(strchr(data.memory, ',') + 1); - free(data.memory); - return 1; + char *tmp; + int serverversion = 0; + int packageversion = *PACKAGE_VERSION; + tmp = strtok (data.memory,","); + if(tmp != NULL){ // make sure work is available + *jobnum = atoi(tmp); + tmp = strtok (NULL, ","); + *framenum = atoi(tmp); + tmp = strtok (NULL, ","); + serverversion = atoi(tmp); + if(packageversion < serverversion){ + fprintf(stderr,"Your distren package is out of date! Please acquire a newer version.\n"); + return 0; + } + free(data.memory); + return 1; + } + else + return 0; // error } }