diff --git a/Makefile.am b/Makefile.am --- a/Makefile.am +++ b/Makefile.am @@ -10,7 +10,7 @@ LDADD = libdistrencommon.la bin_PROGRAMS = if ENABLE_SERVER -bin_PROGRAMS += distrend distrenslave +bin_PROGRAMS += distrend distrenslave distrensimpleslave endif pkglib_LTLIBRARIES = libdistrencommon.la @@ -47,10 +47,13 @@ distrend_SOURCES = $(SERVER_SOURCES) \ distrend_LDADD = libdistrencommon.la # distrenslave: distrenslave_SOURCES = $(SERVER_SOURCES) \ - src/server/slave.c \ - src/server/simpleslave.c + src/server/slave.c distrenslave_LDADD = libdistrencommon.la +# distrensimpleslave: +distrensimpleslave_SOURCES = $(SERVER_SOURCES) \ + src/server/simpleslave.c +distrensimpleslave_LDADD = libdistrencommon.la # configuration files: diff --git a/src/server/slavefuncs.c b/src/server/slavefuncs.c --- a/src/server/slavefuncs.c +++ b/src/server/slavefuncs.c @@ -596,7 +596,7 @@ static size_t _web_writememorycallback(v } struct _web_memorystruct _web_getrequest(char *url){ - fprintf(stderr,"Preparing to get request at %s",url); + // fprintf(stderr,"Preparing to get request at %s",url); CURL *curl; CURLcode res; @@ -627,7 +627,9 @@ void _web_finishframe(int slavekey, char char *url; _distren_asprintf(&url,"http://dev.distren.org/slave/act.php?mode=finishframe&slavekey=%d&slavepass=%s&jobnum=%d&framenum=%d", slavekey, slavepass, jobnum, framenum); struct _web_memorystruct data = _web_getrequest(url); + free(url); + fprintf(stderr,"Got data: %s\n", data.memory); if(data.memory) free(data.memory); } @@ -637,9 +639,24 @@ void _web_startframe(int slavekey, char } -void _web_getwork(int slavekey, char *slavepass, int *jobnum, int *framenum){ +int _web_getwork(int slavekey, char *slavepass, int *jobnum, int *framenum){ + char *url; + _distren_asprintf(&url,"http://dev.distren.org/slave/act.php?mode=getwork&slavekey=%d&slavepass=%s", slavekey, slavepass); + struct _web_memorystruct data = _web_getrequest(url); + free(url); - + //fprintf(stderr,"Got data for getwork: %s!\n", data.memory); + if(!strcmp(data.memory, "ERROR_BADKEY")){ + fprintf(stderr,"*** Slave %d does not exist!\n",slavekey); + free(data.memory); + return 0; + } + else{ + *jobnum = atoi(data.memory); + *framenum = atoi(strchr(data.memory, ',') + 1); + free(data.memory); + return 1; + } } void _web_setrenderpower(int slavekey, char *slavepass, int jobnum, int framenum){ diff --git a/src/server/slavefuncs.h b/src/server/slavefuncs.h --- a/src/server/slavefuncs.h +++ b/src/server/slavefuncs.h @@ -60,7 +60,7 @@ static size_t _web_writememorycallback(v struct _web_memorystruct _web_getrequest(char *url); void _web_finishframe(int slavekey, char *slavepass, int jobnum, int framenum); void _web_startframe(int slavekey, char *slavepass, int jobnum, int framenum); -void _web_getwork(int slavekey, char *slavepass, int *jobnum, int *framenum); +int _web_getwork(int slavekey, char *slavepass, int *jobnum, int *framenum); void _web_setrenderpower(int slavekey, char *slavepass, int jobnum, int framenum);