if (clients[i].client.channel >= 0 &&
clients[i].client.channel != clientfd) {
dp_ipc_socket_free(clients[i].client.channel);
+ clients[i].client.channel = -1;
if (clients[i].client.notify >= 0) {
close(clients[i].client.notify);
clients[i].client.notify = -1;
}
retry_count = 0;
+ long long temp_id = download_id;
do {
retry_count++;
- if (download_id < INT_MAX) {
- TRACE_INFO("download_id [%d]", download_id);
+ if (temp_id < INT_MAX) {
+ TRACE_INFO("download_id [%lld]", temp_id);
check_duplicate = dp_db_check_duplicated_int(client->dbhandle,
- DP_TABLE_LOGGING, DP_DB_COL_ID, download_id, &errorcode);
+ DP_TABLE_LOGGING, DP_DB_COL_ID, (int)temp_id, &errorcode);
if (errorcode == DP_ERROR_NONE) {
if (check_duplicate == 0)
break;
TRACE_ERROR("ERROR [%d]", errorcode);
}
if (retry_count < 3) {
- download_id++;
+ temp_id++;
} else if (retry_count < 10) {
gettimeofday(&tval, NULL);
tval.tv_usec = (tval.tv_usec & 0x0fff);
- download_id += 1171 * retry_count + tval.tv_usec;
+ temp_id += 1171 * retry_count + tval.tv_usec;
} else if (retry_count < 20) {
gettimeofday(&tval, NULL);
tval.tv_usec = (tval.tv_usec & 0xff33ff) + retry_count;
- download_id += tval.tv_usec;
+ temp_id += tval.tv_usec;
} else {
- TRACE_ERROR("failed to generate unique download_id [%d]", download_id);
+ TRACE_ERROR("failed to generate unique download_id [%lld]", temp_id);
return -1;
}
} else {
TRACE_ERROR("reached INT_MAX limit");
- download_id = DP_FIRST_DOWNLOAD_ID;
+ temp_id = DP_FIRST_DOWNLOAD_ID;
}
} while (check_duplicate != 0);
+ download_id = (int)temp_id;
return download_id;
}