482,8 → 482,10 |
} |
|
int recalculate_contract(bandwidth_t U) { |
long int current_bandwidth,temp_U; |
int Qt; |
long int current_bandwidth; |
unsigned int temp_U; |
long int temp_sig; |
int Qt; |
int isok=0; |
int i=0; |
|
503,9 → 505,8 |
current_bandwidth=0; |
Qt=0; |
for (i=0; i<current_server; i++) { |
if (server_list[i].Qs!=0 && server_list[i].U>server_list[i].Umin) |
if (server_list[i].Qs != 0 && server_list[i].U > server_list[i].Umin) |
Qt+=server_list[i].Qs; |
current_bandwidth+=server_list[i].U; |
} |
|
#ifdef FSF_DEBUG |
514,9 → 515,21 |
isok=1; |
for (i=0; i<current_server; i++) { |
if (server_list[i].Qs!=0 && server_list[i].U>server_list[i].Umin) { |
temp_U=(unsigned long int)server_list[i].U; |
temp_U=temp_U-(current_bandwidth-(unsigned long int)U)*server_list[i].Qs/Qt; |
|
|
current_bandwidth -= (long int)((unsigned int)(U)); |
if (current_bandwidth < 0) { |
|
current_bandwidth = -current_bandwidth; |
mul32div32to32((unsigned int)(current_bandwidth),server_list[i].Qs,Qt,temp_U); |
temp_U = server_list[i].U - temp_U; |
|
} else { |
|
mul32div32to32((unsigned int)(current_bandwidth),server_list[i].Qs,Qt,temp_U); |
temp_U = temp_U + server_list[i].U; |
|
} |
|
if (temp_U<server_list[i].Umin) { |
server_list[i].U=server_list[i].Umin; |
isok=0; |