diff --git a/src/server/slave.c b/src/server/slave.c --- a/src/server/slave.c +++ b/src/server/slave.c @@ -29,7 +29,39 @@ int main(int argc, char *arvg[]) { - fprintf(stderr, "stub\n"); - + + ///////////////////// Semi-pseudo Slave Code /////////////////////////// + + int slavestatus = 0; + + if(no username in config file, no key present){ + fprintf(stderr "run distrend -c username] [emailaddr] to register") + } + if(they use a -c flag according to getopt, with 2 args){ + register_user(username, email); which returns a uniquely random url to a key + get(uniquely-random-url-to-key); + fprintf(stderr, "you registered, hopefully successfully. Invoke distrend with no args now."); + } + if(username is in conf file and key is present){ + loginuser(username); + } + + if(slave recieves "start frame#, job#"){ + get(http://distren.protofusion.org/srv/job#.tgz); + tar -xvf job#.tgz /tmp/distren/job#; somehow + exec_blender(job#.blend, job#.frame#.JPG, job#); (check the args, we'll need to adjust for different output formats)... set SLAVESTATUS=1 while rendering, SLAVESTATUS=2 when done + } + if(SLAVESTATUS==2){ + tell the server "done with frame# in job#"; + SLAVESTATUS=0 + } + if(SLAVESTATUS==0){ + tell the server "i ain't got no frames to render"; + } + while(SLAVESTATUS==1){ + tell the server "rendering this friggn frame"; + delay(1000); + } + return 0; }