projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Call the connection callback in disconnection always as the last
[silc.git]
/
lib
/
silcclient
/
command.c
diff --git
a/lib/silcclient/command.c
b/lib/silcclient/command.c
index 32d436ac10ff55c8ff833084659223c6afdf08fe..ade3e1b82702ff68d9ee4438378ac3c02d933893 100644
(file)
--- a/
lib/silcclient/command.c
+++ b/
lib/silcclient/command.c
@@
-1082,20
+1082,14
@@
SILC_FSM_STATE(silc_client_command_quit_final)
{
SilcClientCommandContext cmd = fsm_context;
SilcClientConnection conn = cmd->conn;
{
SilcClientCommandContext cmd = fsm_context;
SilcClientConnection conn = cmd->conn;
- SilcClient client = conn->client;
SILC_LOG_DEBUG(("Quitting"));
/* Notify application */
COMMAND(SILC_STATUS_OK);
SILC_LOG_DEBUG(("Quitting"));
/* Notify application */
COMMAND(SILC_STATUS_OK);
- /* Call connection callback */
- if (!conn->internal->callback_called)
- conn->callback(client, conn, SILC_CLIENT_CONN_DISCONNECTED,
- 0, NULL, conn->callback_context);
- conn->internal->callback_called = TRUE;
-
/* Signal to close connection */
/* Signal to close connection */
+ conn->internal->status = SILC_CLIENT_CONN_DISCONNECTED;
if (!conn->internal->disconnected) {
conn->internal->disconnected = TRUE;
SILC_FSM_EVENT_SIGNAL(&conn->internal->wait_event);
if (!conn->internal->disconnected) {
conn->internal->disconnected = TRUE;
SILC_FSM_EVENT_SIGNAL(&conn->internal->wait_event);