diff --git a/src/server/distrend.c b/src/server/distrend.c --- a/src/server/distrend.c +++ b/src/server/distrend.c @@ -322,9 +322,37 @@ void add_job_to_queue(struct distrenjob job->next = current_job; break; } + + prev_job = current_job; } // end of for statement } +void change_job_priority(int jobnum, int new_priority){ + struct distrenjob *job = &remove_job(jobnum); + job->priority = new_priority; + add_job_to_queue(job); +} + +distrenjob remove_job(int jobnum_t){ + struct distrenjob *job; + struct distrenjob *prev_job = head; + + for(job = head; job != NULL; job = job->next){ + if(job == NULL){ + return NULL; + } + if(job->jobnum = jobnum_t){ + prev_job = job->next; + return job; + } + + prev_job = job; + } + + // job was not found if this point is reached + return NULL; +} + /**