silc_free(conn->internal->rekey);
if (conn->internal->active_session) {
- conn->sock->user_data = NULL;
+ if (conn->sock)
+ conn->sock->user_data = NULL;
silc_client_ftp_session_free(conn->internal->active_session);
conn->internal->active_session = NULL;
}
is used directly only in special cases. Normal cases should use
silc_server_packet_send. Returns < 0 on error. */
-bool silc_client_packet_send_real(SilcClient client,
+int silc_client_packet_send_real(SilcClient client,
SilcSocketConnection sock,
bool force_send)
{
if (!sock)
sock = conn->sock;
+ if (!sock) {
+ if (del && conn)
+ silc_client_del_connection(client, conn);
+ return;
+ }
+
/* We won't listen for this connection anymore */
silc_schedule_unset_listen_fd(client->schedule, sock->sock);
unsigned char *data,
SilcUInt32 data_len,
bool force_send);
-bool silc_client_packet_send_real(SilcClient client,
+int silc_client_packet_send_real(SilcClient client,
SilcSocketConnection sock,
bool force_send);
void silc_client_ftp_free_sessions(SilcClient client,