Moved the SilcClient and SilcClientConnection to the public
[silc.git] / lib / silcclient / client_resume.c
index 6cccf3c7cad34053f820a3c5f5e011fa0ebec803..5f1cced0181e16ba2a961337738572356b06ea3b 100644 (file)
@@ -29,6 +29,7 @@ SILC_CLIENT_CMD_FUNC(resume_users);
 
 #define RESUME_CALL_COMPLETION(client, session, s)                     \
 do {                                                                   \
+  SILC_LOG_DEBUG(("Calling completion"));                              \
   session->success = s;                                                        \
   silc_schedule_task_add(client->schedule, 0,                          \
                         silc_client_resume_call_completion, session,   \
@@ -113,8 +114,8 @@ bool silc_client_process_detach_data(SilcClient client,
   SILC_LOG_DEBUG(("Start"));
 
   silc_free(conn->nickname);
-  silc_buffer_set(&detach, conn->params.detach_data, 
-                 conn->params.detach_data_len);
+  silc_buffer_set(&detach, conn->internal->params.detach_data, 
+                 conn->internal->params.detach_data_len);
 
   SILC_LOG_HEXDUMP(("Detach data"), detach.data, detach.len);
 
@@ -208,14 +209,16 @@ SILC_TASK_CALLBACK(silc_client_resume_call_completion)
   SilcClientResumeSession session = context;
   int i;
 
-  session->callback(session->client, session->conn, session->success,
-                   session->context);
+  SILC_LOG_DEBUG(("Session completed"));
 
   for (i = 0; i < session->cmd_idents_count; i++)
     silc_client_command_pending_del(session->conn, SILC_COMMAND_IDENTIFY, 
                                    session->cmd_idents[i]);
   silc_free(session->cmd_idents);
 
+  session->callback(session->client, session->conn, session->success,
+                   session->context);
+
   memset(session, 'F', sizeof(*session));
   silc_free(session);
 }
@@ -261,7 +264,7 @@ void silc_client_resume_session(SilcClient client,
 
   /* Second, send IDENTIFY command of all channels we know about.  These
      are the channels we've joined to according our detachment data. */
-  if (silc_idcache_get_all(conn->channel_cache, &list)) {
+  if (silc_idcache_get_all(conn->internal->channel_cache, &list)) {
     unsigned char **res_argv = NULL;
     SilcUInt32 *res_argv_lens = NULL, *res_argv_types = NULL, res_argc = 0;