if (!hb->heartbeat)
return;
+ if (SILC_IS_DISCONNECTING(hb->sock) ||
+ SILC_IS_DISCONNECTED(hb->sock))
+ return;
+
if (hb->hb_callback)
hb->hb_callback(hb->sock, hb->hb_context);
is cancelled also and we will not call the final callback. */
if (lookup->sock->users == 1) {
SILC_LOG_DEBUG(("Async host lookup was cancelled"));
- silc_free(lookup);
silc_socket_free(lookup->sock);
+ silc_free(lookup);
return;
}
SILC_LOG_DEBUG(("Performing async host lookup"));
+ if (SILC_IS_DISCONNECTING(sock) ||
+ SILC_IS_DISCONNECTED(sock))
+ return;
+
lookup = silc_calloc(1, sizeof(*lookup));
lookup->sock = silc_socket_dup(sock); /* Increase reference counter */
lookup->callback = callback;