{
CLG_Status result;
RPT_ClientAccessByIndex_Report report;
- unsigned long first_index, n_indices, last_index, n_indices_in_table;
+ unsigned long first_index, n_indices, n_indices_in_table;
int i, j;
struct timeval now;
first_index = ntohl(rx_message->data.client_accesses_by_index.first_index);
n_indices = ntohl(rx_message->data.client_accesses_by_index.n_indices);
- last_index = first_index + n_indices - 1;
+ if (n_indices > MAX_CLIENT_ACCESSES)
+ n_indices = MAX_CLIENT_ACCESSES;
tx_message->status = htons(STT_SUCCESS);
tx_message->reply = htons(RPY_CLIENT_ACCESSES_BY_INDEX);
- for (i = first_index, j = 0;
- (i <= last_index) && (j < MAX_CLIENT_ACCESSES);
- i++) {
-
- result = CLG_GetClientAccessReportByIndex(i, &report, now.tv_sec, &n_indices_in_table);
+ for (i = 0, j = 0; i < n_indices; i++) {
+ result = CLG_GetClientAccessReportByIndex(first_index + i, &report,
+ now.tv_sec, &n_indices_in_table);
tx_message->data.client_accesses_by_index.n_indices = htonl(n_indices_in_table);
switch (result) {
}
}
- tx_message->data.client_accesses_by_index.next_index = htonl(i);
+ tx_message->data.client_accesses_by_index.next_index = htonl(first_index + i);
tx_message->data.client_accesses_by_index.n_clients = htonl(j);
}