482,7 → 482,9 |
} |
|
int recalculate_contract(bandwidth_t U) { |
long int current_bandwidth,temp_U; |
long int current_bandwidth; |
unsigned int temp_U; |
long int temp_sig; |
int Qt; |
int isok=0; |
int i=0; |
505,7 → 507,6 |
for (i=0; i<current_server; i++) { |
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; |