{ "file_na", "No file transfers available", 0 },
{ "file_client_na", "No file transfer offered by {nick $0}", 1, { 0 } },
{ "file_show_header", "File transfers", 0 },
- { "file_show_line", " $0 $1: $2kB of $3kB ($4%%) - $5kB/s - $6", 7, { 0, 0, 1, 1, 1, 3, 0 } },
+ { "file_show_line", " $0 [$1] $2: $3kB of $4kB ($5%%) - $6kB/s - $7", 7, { 0, 1, 0, 1, 1, 1, 3, 0 } },
{ "file_already_started", "File transfer already started with {nick $0}", 1, { 0 } },
{ "file_error", "Error during file transfer with {nick $0}", 1, { 0 } },
{ "file_error_no_such_file", "Error during file transfer with {nick $0}: $1: No such file", 2, { 0, 0 } },
unescaped_data, unescaped_data_len, TRUE);
} else {
silc_send_msg(server, (char *)to, unescaped_data, unescaped_data_len,
- SILC_MESSAGE_FLAG_DATA |
+ SILC_MESSAGE_FLAG_DATA |
(sign ? SILC_MESSAGE_FLAG_SIGNED : 0));
}
silc_schedule_task_add(silc_client->schedule, 0,
silc_client_file_close_later, ftp,
1, 0, SILC_TASK_TIMEOUT, SILC_TASK_PRI_NORMAL);
- if (ftp == server->current_session)
- server->current_session = NULL;
silc_dlist_del(server->ftp_sessions, ftp);
+ if (ftp == server->current_session) {
+ server->current_session = NULL;
+ silc_dlist_start(server->ftp_sessions);
+ server->current_session = silc_dlist_get(server->ftp_sessions);
+ }
}
if (status == SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT) {
silc_schedule_task_add(silc_client->schedule, 0,
silc_client_file_close_later, ftp,
1, 0, SILC_TASK_TIMEOUT, SILC_TASK_PRI_NORMAL);
- if (ftp == server->current_session)
- server->current_session = NULL;
silc_dlist_del(server->ftp_sessions, ftp);
+ if (ftp == server->current_session) {
+ server->current_session = NULL;
+ silc_dlist_start(server->ftp_sessions);
+ server->current_session = silc_dlist_get(server->ftp_sessions);
+ }
+
}
}
silc_schedule_task_add(silc_client->schedule, 0,
silc_client_file_close_later, ftp,
1, 0, SILC_TASK_TIMEOUT, SILC_TASK_PRI_NORMAL);
- if (ftp == server->current_session)
- server->current_session = NULL;
silc_dlist_del(server->ftp_sessions, ftp);
+ if (ftp == server->current_session) {
+ server->current_session = NULL;
+ silc_dlist_start(server->ftp_sessions);
+ server->current_session = silc_dlist_get(server->ftp_sessions);
+ }
+
}
}
}
printformat_module("fe-common/silc", server, NULL,
MSGLEVEL_CRAP, SILCTXT_FILE_ALREADY_STARTED,
server->current_session->client_entry->nickname);
- else
+ else {
printformat_module("fe-common/silc", server, NULL,
MSGLEVEL_CRAP, SILCTXT_FILE_CLIENT_NA,
server->current_session->client_entry->nickname);
+
+ silc_client_file_close(silc_client, conn,
+ server->current_session->session_id);
+ silc_dlist_del(server->ftp_sessions, server->current_session);
+ silc_free(server->current_session->filepath);
+ silc_free(server->current_session);
+ server->current_session = NULL;
+
+ silc_dlist_start(server->ftp_sessions);
+ server->current_session = silc_dlist_get(server->ftp_sessions);
+ }
}
goto out;
printformat_module("fe-common/silc", server, NULL,
MSGLEVEL_CRAP, SILCTXT_FILE_ALREADY_STARTED,
client_entry->nickname);
- else
+ else {
printformat_module("fe-common/silc", server, NULL,
MSGLEVEL_CRAP, SILCTXT_FILE_CLIENT_NA,
client_entry->nickname);
+ silc_client_file_close(silc_client, conn, ftp->session_id);
+ silc_dlist_del(server->ftp_sessions, ftp);
+ if (ftp == server->current_session) {
+ server->current_session = NULL;
+ silc_dlist_start(server->ftp_sessions);
+ server->current_session = silc_dlist_get(server->ftp_sessions);
+ }
+ silc_free(ftp->filepath);
+ silc_free(ftp);
+ }
}
break;
}
silc_free(server->current_session->filepath);
silc_free(server->current_session);
server->current_session = NULL;
+
+ silc_dlist_start(server->ftp_sessions);
+ server->current_session = silc_dlist_get(server->ftp_sessions);
goto out;
}
MSGLEVEL_CRAP, SILCTXT_FILE_CLOSED,
client_entry->nickname,
ftp->filepath ? ftp->filepath : "[N/A]");
- if (ftp == server->current_session)
- server->current_session = NULL;
silc_dlist_del(server->ftp_sessions, ftp);
+ if (ftp == server->current_session) {
+ server->current_session = NULL;
+ silc_dlist_start(server->ftp_sessions);
+ server->current_session = silc_dlist_get(server->ftp_sessions);
+ }
silc_free(ftp->filepath);
silc_free(ftp);
break;
printformat_module("fe-common/silc", server, NULL,
MSGLEVEL_CRAP, SILCTXT_FILE_SHOW_LINE,
ftp->client_entry->nickname,
+ ftp->session_id,
ftp->send ? "send" : "receive",
(SilcUInt32)(ftp->offset + 1023) / 1024,
(SilcUInt32)(ftp->filesize + 1023) / 1024,