X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilc%2Fsilc.c;h=e449af1d89883c03da6294b2bcbcd146017e7f21;hb=a818c5b5411bbc4436d1c5f011236985c96bb787;hp=f4a188d648f9e4b1155eb688285637094a498e69;hpb=1780fdaeca19a2c8bea90ab8eabcd6c081a30ee6;p=silc.git diff --git a/apps/silc/silc.c b/apps/silc/silc.c index f4a188d6..e449af1d 100644 --- a/apps/silc/silc.c +++ b/apps/silc/silc.c @@ -246,6 +246,10 @@ SILC Secure Internet Live Conferencing, version %s\n", if (opt_create_keypair == TRUE) { /* Create new key pair and exit */ + silc_cipher_register_default(); + 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_free(opt_pkcs); @@ -254,6 +258,10 @@ SILC Secure Internet Live Conferencing, version %s\n", if (opt_show_key == TRUE) { /* Dump the key */ + silc_cipher_register_default(); + silc_pkcs_register_default(); + silc_hash_register_default(); + silc_hmac_register_default(); silc_client_show_key(opt_keyfile); silc_free(opt_keyfile); exit(0); @@ -267,32 +275,42 @@ SILC Secure Internet Live Conferencing, version %s\n", app = silc_calloc(1, sizeof(*app)); /* Allocate new client */ - app->client = silc = silc_client_alloc(&ops, app); + app->client = silc = silc_client_alloc(&ops, app, silc_version_string); if (!silc) goto fail; /* Read global configuration file. */ app->config = silc_client_config_alloc(opt_config_file); - if (app->config == NULL) - goto fail; /* XXX Read local configuration file */ - /* Check ~/.silc directory and public and private keys */ - if (silc_client_check_silc_dir() == FALSE) - goto fail; - /* Get user information */ silc->username = silc_get_username(); silc->hostname = silc_net_localhost(); silc->realname = silc_get_real_name(); /* Register all configured ciphers, PKCS and hash functions. */ - app->config->client = (void *)app; - silc_client_config_register_ciphers(app->config); - silc_client_config_register_pkcs(app->config); - silc_client_config_register_hashfuncs(app->config); - silc_client_config_register_hmacs(app->config); + if (app->config) { + app->config->client = (void *)app; + if (!silc_client_config_register_ciphers(app->config)) + silc_cipher_register_default(); + if (!silc_client_config_register_pkcs(app->config)) + silc_pkcs_register_default(); + if (!silc_client_config_register_hashfuncs(app->config)) + silc_hash_register_default(); + if (!silc_client_config_register_hmacs(app->config)) + silc_hmac_register_default(); + } else { + /* Register default ciphers, pkcs, hash funtions and hmacs. */ + silc_cipher_register_default(); + silc_pkcs_register_default(); + silc_hash_register_default(); + silc_hmac_register_default(); + } + + /* Check ~/.silc directory and public and private keys */ + if (silc_client_check_silc_dir() == FALSE) + goto fail; /* Load public and private key */ if (silc_client_load_keys(silc) == FALSE) @@ -320,7 +338,7 @@ SILC Secure Internet Live Conferencing, version %s\n", SILC_TASK_TIMEOUT, SILC_TASK_PRI_LOW); - if (app->config->commands) { + if (app->config && app->config->commands) { /* Run user configured commands with timeout */ silc_task_register(silc->timeout_queue, 0, silc_client_run_commands, @@ -531,7 +549,7 @@ static void silc_client_clear_input(SilcClientInternal app) static void silc_client_process_message(SilcClientInternal app) { unsigned char *data; - uint32 len; + SilcUInt32 len; SILC_LOG_DEBUG(("Start")); @@ -540,9 +558,9 @@ static void silc_client_process_message(SilcClientInternal app) if (data[0] == '/' && data[1] != ' ') { /* Command */ - uint32 argc = 0; + SilcUInt32 argc = 0; unsigned char **argv, *tmpcmd; - uint32 *argv_lens, *argv_types; + SilcUInt32 *argv_lens, *argv_types; SilcClientCommand *cmd; SilcClientCommandContext ctx; @@ -577,13 +595,6 @@ static void silc_client_process_message(SilcClientInternal app) (*cmd->cb)(ctx); } else { - if (app->conn->current_channel) - silc_client_send_channel_message(app->client, - app->conn, - app->conn->current_channel, NULL, - 0, "HALOO", 5, TRUE); - -#if 0 /* Normal message to a channel */ if (len && app->conn && app->conn->current_channel && app->conn->current_channel->on_channel == TRUE) { @@ -593,7 +604,6 @@ static void silc_client_process_message(SilcClientInternal app) app->conn->current_channel, NULL, 0, data, strlen(data), TRUE); } -#endif } out: @@ -648,9 +658,9 @@ SILC_TASK_CALLBACK(silc_client_run_commands) cs = app->config->commands; while(cs) { - uint32 argc = 0; + SilcUInt32 argc = 0; unsigned char **argv, *tmpcmd; - uint32 *argv_lens, *argv_types; + SilcUInt32 *argv_lens, *argv_types; SilcClientCommand *cmd; SilcClientCommandContext ctx;