diff --git a/src/server/distrend.c b/src/server/distrend.c --- a/src/server/distrend.c +++ b/src/server/distrend.c @@ -446,6 +446,8 @@ int interactiveTest(int test, struct gen fprintf(stderr, "Got frame: "); if(find_jobframe(conn, slaveKey, &jobKey, &frameNum)) fprintf(stderr,"No frames available to render!\n"); + else if(jobKey == -1) + fprintf(stderr,"Slave &d has no render power!", slaveKey); else fprintf(stderr, "jobKey: %d, frameNum: %d\n",jobKey,frameNum); break; diff --git a/src/server/mysql.c b/src/server/mysql.c --- a/src/server/mysql.c +++ b/src/server/mysql.c @@ -294,6 +294,16 @@ void start_frame(distrend_mysql_conn_t c free(query); } +void set_renderpower(distrend_mysql_conn_t conn, int32_t slavekey, int32_t renderpower) +{ + char *query; + + _distren_asprintf(&query, "CALL `distren`.`Set_Render_Power`(%d,%d);", slavekey, renderpower); + + mysqlQuery(conn, query, 0); + free(query); +} + int change_job_priority(distrend_mysql_conn_t conn, int32_t jobkey, int32_t newpriority) { char *query; @@ -336,7 +346,7 @@ int find_jobframe(distrend_mysql_conn_t return rtn; } -int auth_slave(distrend_mysql_conn_t conn, int32_t slavekey, int32_t slavepass) +int auth_slave(distrend_mysql_conn_t conn, int32_t slavekey, char *slavepass) { distrend_mysql_result_t result; char *query; @@ -344,8 +354,9 @@ int auth_slave(distrend_mysql_conn_t con int32_t *isAuth = 0; int rtn; + mysql_real_escape_string(conn->mysqlconn,slavepass,slavepass,(unsigned int)strlen(slavepass)); - _distren_asprintf(&query, "CALL `distren`.`Slave_Auth`(%d,%d);", slavekey, slavepass); + _distren_asprintf(&query, "CALL `distren`.`Slave_Auth`(%d,'%s');", slavekey, slavepass); result = mysqlQuery(conn, query, 2); free(query); diff --git a/src/server/mysql.h b/src/server/mysql.h --- a/src/server/mysql.h +++ b/src/server/mysql.h @@ -57,6 +57,11 @@ void finish_frame(distrend_mysql_conn_t void start_frame(distrend_mysql_conn_t conn, int32_t slavekey, int32_t jobkey, int32_t framenum); /** + Mark a frame as started in the database and save the time at which it started. +*/ +void set_renderpower(distrend_mysql_conn_t conn, int32_t slavekey, int32_t renderpower); + +/** Changes the priority of an existing (and maybe running) job. @arg head I may end up changing the head if job == head */ int change_job_priority(distrend_mysql_conn_t conn, int32_t jobkey, int32_t newpriority); @@ -66,6 +71,10 @@ int change_job_priority(distrend_mysql_c */ int find_jobframe(distrend_mysql_conn_t conn, int32_t slaveKey, jobnum_t *jobKey, int32_t *frameNum); +/** + Auth Slave: Checks username/password of slave +*/ +int auth_slave(distrend_mysql_conn_t conn, int32_t slavekey, char *slavepass);