SIGNOFF of notify at all (using SIGNOFF takes the idea about
SERVER_SIGNOFF away entirely).
- o Add SilcAsyncOperation to utility library.
+ o Add SilcAsyncOperation to utility library. Any function that takes
+ callback as an argument must return SilcAsyncOperation.
o Cipher optimizations (asm, that this) at least for i386 would be nice.
silc_server_command_send_status_reply(cmd, command,
SILC_STATUS_ERR_NOT_REGISTERED);
- silc_server_command_free(cmd);
return FALSE;
}
timeout->ctx,
timeout->cmd->cmd))
timeout->cmd->cb(timeout->ctx, NULL);
+ else
+ silc_server_command_free(timeout->ctx);
silc_free(timeout);
}
silc_server_command_process_timeout,
(void *)timeout,
2 - (time(NULL) - client->last_command), 0,
- SILC_TASK_TIMEOUT,
- SILC_TASK_PRI_NORMAL);
+ SILC_TASK_TIMEOUT, SILC_TASK_PRI_NORMAL);
else
silc_schedule_task_add(server->schedule, sock->sock,
silc_server_command_process_timeout,
- (void *)timeout,
- 0, 1,
- SILC_TASK_TIMEOUT,
- SILC_TASK_PRI_NORMAL);
+ (void *)timeout, 0, 1,
+ SILC_TASK_TIMEOUT, SILC_TASK_PRI_NORMAL);
return;
}
cmd->cb(ctx, NULL);
else if (silc_server_is_registered(server, sock, ctx, cmd->cmd))
cmd->cb(ctx, NULL);
+ else
+ silc_server_command_free(ctx);
}
/* Allocate Command Context */
if (silc_command_get(reply->payload) == SILC_COMMAND_JOIN) {
tmp = silc_argument_get_arg_type(reply->args, 6, NULL);
SILC_GET32_MSB(created, tmp);
- create_key = FALSE; /* Router returned the key already */
+ if (silc_argument_get_arg_type(reply->args, 7, NULL)
+ create_key = FALSE; /* Router returned the key already */
}
if (silc_command_get(reply->payload) == SILC_COMMAND_WHOIS &&
long silc_log_flushdelay = 300;
/* Regular pattern matching expression for the debug output */
-static char *silc_log_debug_string = NULL;
+char *silc_log_debug_string = NULL;
/* Debug callbacks. If set these are used instead of default ones. */
static SilcLogDebugCb silc_log_debug_cb = NULL;