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 } }