#include "silc-channels.h"
#include "silc-queries.h"
#include "silc-nicklist.h"
-#include "silcversion.h"
#include "signals.h"
#include "levels.h"
silc_pkcs_register_default();
silc_hash_register_default();
silc_hmac_register_default();
- silc_client_show_key((char *)arg);
+ silc_show_public_key((char *)arg);
exit(0);
}
silc_pkcs_register_default();
silc_hash_register_default();
silc_hmac_register_default();
- silc_client_create_key_pair(opt_pkcs, opt_bits,
- NULL, NULL, NULL, NULL, NULL);
+ silc_create_key_pair(opt_pkcs, opt_bits, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, TRUE);
exit(0);
}
}
+static void sig_init_finished(void)
+{
+ /* Check ~/.silc directory and public and private keys */
+ if (!silc_client_check_silc_dir()) {
+ idletag = -1;
+ exit(1);
+ }
+
+ /* Load public and private key */
+ if (!silc_client_load_keys(silc_client)) {
+ idletag = -1;
+ exit(1);
+ }
+
+ /* Initialize the SILC client */
+ if (!silc_client_init(silc_client)) {
+ idletag = -1;
+ exit(1);
+ }
+}
+
/* Init SILC. Called from src/fe-text/silc.c */
void silc_core_init(void)
settings_add_int("server", "key_exchange_timeout_secs", 120);
settings_add_int("server", "key_exchange_rekey_secs", 3600);
settings_add_int("server", "connauth_request_secs", 2);
+ settings_add_int("server", "heartbeat", 300);
/* Requested Attributes settings */
settings_add_bool("silc", "attr_allow", TRUE);
#endif
signal_add("setup changed", (SIGNAL_FUNC) sig_setup_changed);
+ signal_add("irssi init finished", (SIGNAL_FUNC) sig_init_finished);
silc_init_userinfo();
silc_client->hostname = silc_net_localhost();
silc_client->realname = g_strdup(settings_get_str("real_name"));
- /* Check ~/.silc directory and public and private keys */
- if (silc_client_check_silc_dir() == FALSE) {
- idletag = -1;
- return;
- }
-
- /* Load public and private key */
- if (silc_client_load_keys(silc_client) == FALSE) {
- idletag = -1;
- return;
- }
-
- /* Initialize the SILC client */
- if (!silc_client_init(silc_client)) {
- idletag = -1;
- return;
- }
-
silc_log_set_callback(SILC_LOG_INFO, silc_log_misc, NULL);
silc_log_set_callback(SILC_LOG_WARNING, silc_log_misc, NULL);
silc_log_set_callback(SILC_LOG_ERROR, silc_log_misc, NULL);
rec->create_channel_setup = create_channel_setup;
rec->create_server_connect = create_server_connect;
rec->destroy_server_connect = destroy_server_connect;
- rec->server_connect = (SERVER_REC *(*) (SERVER_CONNECT_REC *))
- silc_server_connect;
- rec->channel_create = (CHANNEL_REC *(*) (SERVER_REC *, const char *, int))
+ rec->server_init_connect = silc_server_init_connect;
+ rec->server_connect = silc_server_connect;
+ rec->channel_create = (CHANNEL_REC *(*) (SERVER_REC *, const char *,
+ const char *, int))
silc_channel_create;
rec->query_create = (QUERY_REC *(*) (const char *, const char *, int))
silc_query_create;
signal_emit("chat protocol deinit", 1,
chat_protocol_find("SILC"));
signal_remove("setup changed", (SIGNAL_FUNC) sig_setup_changed);
+ signal_remove("irssi init finished", (SIGNAL_FUNC) sig_init_finished);
silc_server_deinit();
silc_channels_deinit();