- ret =
- silc_client_file_send(silc_client, conn, silc_client_file_monitor,
- server, local_ip, local_port, do_not_bind,
- client_entry, argv[2], &session_id);
+ memset(¶ms, 0, sizeof(params));
+ if (!do_not_bind) {
+ if (local_ip)
+ params.local_ip = strdup(local_ip);
+ params.local_port = local_port;
+ if (!params.local_ip && settings_get_bool("use_auto_addr")) {
+ params.local_ip = (char *)settings_get_str("auto_public_ip");
+ if ((params.local_ip) && (*params.local_ip == '\0')) {
+ params.local_ip = silc_net_localip();
+ } else {
+ params.bind_ip = (char *)settings_get_str("auto_bind_ip");
+ if ((params.bind_ip) && (*params.bind_ip == '\0'))
+ params.bind_ip = NULL;
+ params.local_port = settings_get_int("auto_bind_port");
+ }
+ }
+ if (!params.local_ip)
+ params.local_ip = silc_net_localip();
+ }
+ params.timeout_secs = settings_get_int("key_exchange_timeout_secs");
+
+ ret = silc_client_file_send(silc_client, conn, client_entry, ¶ms,
+ irssi_pubkey, irssi_privkey,
+ silc_client_file_monitor, server, argv[2],
+ &session_id);