Lines Matching full:options
61 # 1. command line options
106 # Defaults for various options
120 const char *host, const char *original_host, Options *options,
122 static int process_config_line_depth(Options *options, struct passwd *pw,
176 /* Deprecated options */
187 /* Unsupported options */
195 /* Sometimes-unsupported options */
359 * Adds a local TCP/IP port forward to options. Never returns if there is an
364 add_local_forward(Options *options, const struct Forward *newfwd)
370 for (i = 0; i < options->num_local_forwards; i++) {
371 if (forward_equals(newfwd, options->local_forwards + i))
374 options->local_forwards = xreallocarray(options->local_forwards,
375 options->num_local_forwards + 1,
376 sizeof(*options->local_forwards));
377 fwd = &options->local_forwards[options->num_local_forwards++];
388 * Adds a remote TCP/IP port forward to options. Never returns if there is
393 add_remote_forward(Options *options, const struct Forward *newfwd)
399 for (i = 0; i < options->num_remote_forwards; i++) {
400 if (forward_equals(newfwd, options->remote_forwards + i))
403 options->remote_forwards = xreallocarray(options->remote_forwards,
404 options->num_remote_forwards + 1,
405 sizeof(*options->remote_forwards));
406 fwd = &options->remote_forwards[options->num_remote_forwards++];
419 clear_forwardings(Options *options)
423 for (i = 0; i < options->num_local_forwards; i++) {
424 free(options->local_forwards[i].listen_host);
425 free(options->local_forwards[i].listen_path);
426 free(options->local_forwards[i].connect_host);
427 free(options->local_forwards[i].connect_path);
429 if (options->num_local_forwards > 0) {
430 free(options->local_forwards);
431 options->local_forwards = NULL;
433 options->num_local_forwards = 0;
434 for (i = 0; i < options->num_remote_forwards; i++) {
435 free(options->remote_forwards[i].listen_host);
436 free(options->remote_forwards[i].listen_path);
437 free(options->remote_forwards[i].connect_host);
438 free(options->remote_forwards[i].connect_path);
440 if (options->num_remote_forwards > 0) {
441 free(options->remote_forwards);
442 options->remote_forwards = NULL;
444 options->num_remote_forwards = 0;
445 options->tun_open = SSH_TUNMODE_NO;
449 add_certificate_file(Options *options, const char *path, int userprovided)
453 if (options->num_certificate_files >= SSH_MAX_CERTIFICATE_FILES)
458 for (i = 0; i < options->num_certificate_files; i++) {
459 if (options->certificate_file_userprovided[i] == userprovided &&
460 strcmp(options->certificate_files[i], path) == 0) {
466 options->certificate_file_userprovided[options->num_certificate_files] =
468 options->certificate_files[options->num_certificate_files++] =
473 add_identity_file(Options *options, const char *dir, const char *filename,
479 if (options->num_identity_files >= SSH_MAX_IDENTITY_FILES)
489 for (i = 0; i < options->num_identity_files; i++) {
490 if (options->identity_file_userprovided[i] == userprovided &&
491 strcmp(options->identity_files[i], path) == 0) {
498 options->identity_file_userprovided[options->num_identity_files] =
500 options->identity_files[options->num_identity_files++] = path;
632 expand_match_exec_or_include_path(const char *path, Options *options,
641 port = options->port <= 0 ? default_ssh_port() : options->port;
642 ruser = options->user == NULL ? pw->pw_name : options->user;
644 host = xstrdup(options->hostname);
645 } else if (options->hostname != NULL) {
647 host = percent_expand(options->hostname,
654 jmphost = option_clear_or_none(options->jump_host) ?
655 "" : options->jump_host;
663 keyalias = options->host_key_alias ? options->host_key_alias : host;
688 match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp,
700 ruser = options->user == NULL ? pw->pw_name : options->user;
702 host = xstrdup(options->hostname);
703 } else if (options->hostname != NULL) {
705 host = percent_expand(options->hostname,
811 criteria = xstrdup(options->tag == NULL ? "" :
812 options->tag);
818 options, pw, host_arg, original_host,
871 rm_env(Options *options, const char *arg, const char *filename, int linenum)
873 u_int i, j, onum_send_env = options->num_send_env;
876 for (i = 0; i < options->num_send_env; ) {
877 if (!match_pattern(options->send_env[i], arg + 1)) {
882 filename, linenum, options->send_env[i]);
883 free(options->send_env[i]);
884 options->send_env[i] = NULL;
885 for (j = i; j < options->num_send_env - 1; j++) {
886 options->send_env[j] = options->send_env[j + 1];
887 options->send_env[j + 1] = NULL;
889 options->num_send_env--;
892 if (onum_send_env != options->num_send_env) {
893 options->send_env = xrecallocarray(options->send_env,
894 onum_send_env, options->num_send_env,
895 sizeof(*options->send_env));
1059 process_config_line(Options *options, struct passwd *pw, const char *host,
1063 return process_config_line_depth(options, pw, host, original_host,
1069 process_config_line_depth(Options *options, struct passwd *pw, const char *host,
1129 options->ignored_unknown);
1139 /* don't panic, but count bad options */
1150 intptr = &options->connection_timeout;
1170 intptr = &options->forward_agent;
1196 charptr = &options->forward_agent_sock_path;
1200 intptr = &options->forward_x11;
1216 intptr = &options->forward_x11_trusted;
1220 intptr = &options->forward_x11_timeout;
1224 intptr = &options->fwd_opts.gateway_ports;
1228 intptr = &options->exit_on_forward_failure;
1232 intptr = &options->password_authentication;
1236 intptr = &options->kbd_interactive_authentication;
1240 charptr = &options->kbd_interactive_devices;
1245 intptr = &options->pubkey_authentication;
1249 intptr = &options->hostbased_authentication;
1253 intptr = &options->gss_authentication;
1257 intptr = &options->gss_deleg_creds;
1261 intptr = &options->batch_mode;
1265 intptr = &options->check_host_ip;
1269 intptr = &options->verify_host_key_dns;
1274 intptr = &options->strict_host_key_checking;
1279 intptr = &options->compression;
1284 intptr = &options->tcp_keep_alive;
1288 intptr = &options->no_host_authentication_for_localhost;
1292 intptr = &options->number_of_password_prompts;
1316 if (*activep && options->rekey_limit == -1)
1317 options->rekey_limit = val64;
1323 intptr = &options->rekey_interval;
1336 intptr = &options->num_identity_files;
1343 add_identity_file(options, NULL,
1356 intptr = &options->num_certificate_files;
1364 add_certificate_file(options, arg,
1370 charptr=&options->xauth_location;
1374 charptr = &options->user;
1387 cpptr = (char **)&options->system_hostfiles;
1388 uintptr = &options->num_system_hostfiles;
1422 cpptr = (char **)&options->user_hostfiles;
1423 uintptr = &options->num_user_hostfiles;
1428 charptr = &options->hostname;
1432 charptr = &options->tag;
1436 charptr = &options->host_key_alias;
1440 charptr = &options->preferred_authentications;
1444 charptr = &options->bind_address;
1448 charptr = &options->bind_interface;
1452 charptr = &options->pkcs11_provider;
1456 charptr = &options->sk_provider;
1460 charptr = &options->known_hosts_command;
1464 charptr = &options->proxy_command;
1466 if (options->jump_host != NULL)
1467 charptr = &options->jump_host; /* Skip below */
1488 if (parse_jump(str + len, options, *activep) == -1) {
1509 if (*activep && options->port == -1)
1510 options->port = value;
1514 intptr = &options->connection_attempts;
1539 if (*activep && options->ciphers == NULL)
1540 options->ciphers = xstrdup(arg);
1556 if (*activep && options->macs == NULL)
1557 options->macs = xstrdup(arg);
1574 if (*activep && options->kex_algorithms == NULL)
1575 options->kex_algorithms = xstrdup(arg);
1579 charptr = &options->hostkeyalgorithms;
1600 charptr = &options->ca_sign_algorithms;
1605 log_level_ptr = &options->log_level;
1618 log_facility_ptr = &options->log_facility;
1631 cppptr = &options->log_verbose;
1632 uintptr = &options->num_log_verbose;
1698 add_remote_forward(options, &fwd);
1700 add_local_forward(options, &fwd);
1706 uintptr = &options->num_permitted_remote_opens;
1707 cppptr = &options->permitted_remote_opens;
1757 intptr = &options->clear_forwardings;
1797 debug("%.200s line %d: Applying options for %.100s",
1807 value = match_cfg_line(options, str, &ac, &av, pw, host,
1819 intptr = &options->escape_char;
1843 intptr = &options->address_family;
1848 intptr = &options->enable_ssh_keysign;
1852 intptr = &options->identities_only;
1856 intptr = &options->server_alive_interval;
1860 intptr = &options->server_alive_count_max;
1876 rm_env(options, arg, filename, linenum);
1881 &options->send_env, &options->num_send_env, arg);
1890 found = options->num_setenv == 0;
1911 options->setenv = strs;
1912 options->num_setenv = nstrs;
1919 charptr = &options->control_path;
1923 intptr = &options->control_master;
1929 intptr = &options->control_persist;
1951 options->control_persist_timeout = value2;
1956 intptr = &options->hash_known_hosts;
1960 intptr = &options->tun_open;
1977 if (*activep && options->tun_local == -1) {
1978 options->tun_local = value;
1979 options->tun_remote = value2;
1984 charptr = &options->local_command;
1988 intptr = &options->permit_local_command;
1992 charptr = &options->remote_command;
1996 intptr = &options->visual_host_key;
2014 options, pw, host, original_host,
2061 pw, host, original_host, options,
2102 if (*activep && options->ip_qos_interactive == -1) {
2103 options->ip_qos_interactive = value;
2104 options->ip_qos_bulk = value2;
2109 intptr = &options->request_tty;
2114 intptr = &options->session_type;
2119 intptr = &options->stdin_null;
2123 intptr = &options->fork_after_authentication;
2127 charptr = &options->ignored_unknown;
2131 intptr = &options->proxy_use_fdpass;
2135 found = options->num_canonical_domains == 0;
2159 options->canonical_domains = strs;
2160 options->num_canonical_domains = nstrs;
2167 found = options->num_permitted_cnames == 0;
2206 options->permitted_cnames = cnames;
2207 options->num_permitted_cnames = ncnames;
2215 intptr = &options->canonicalize_hostname;
2220 intptr = &options->canonicalize_max_dots;
2224 intptr = &options->canonicalize_fallback_local;
2240 options->fwd_opts.streamlocal_bind_mask = (mode_t)value;
2244 intptr = &options->fwd_opts.streamlocal_bind_unlink;
2248 charptr = &options->revoked_host_keys;
2252 intptr = &options->fingerprint_hash;
2269 intptr = &options->update_hostkeys;
2274 charptr = &options->hostbased_accepted_algos;
2279 charptr = &options->pubkey_accepted_algos;
2308 if (*activep && options->add_keys_to_agent == -1) {
2309 options->add_keys_to_agent = value;
2310 options->add_keys_to_agent_lifespan = value2;
2315 charptr = &options->identity_agent;
2342 intptr = &options->enable_escape_commandline;
2346 intptr = &options->required_rsa_size;
2386 intptr = &options->obscure_keystroke_timing_interval;
2392 found = options->num_channel_timeouts == 0;
2415 options->channel_timeouts = strs;
2416 options->num_channel_timeouts = nstrs;
2435 if (*activep && options->version_addendum == NULL) {
2437 options->version_addendum = xstrdup("");
2439 options->version_addendum = xstrdup(str + len);
2479 * Reads the config file and modifies the options accordingly. Options
2485 const char *original_host, Options *options, int flags,
2491 options, flags, &active, want_final_pass, 0);
2497 const char *host, const char *original_host, Options *options,
2525 * Mark that we are now processing the options. This flag is turned
2537 if (process_config_line_depth(options, pw, host, original_host,
2545 fatal("%s: terminating, %d bad configuration options",
2562 config_has_permitted_cnames(Options *options)
2564 if (options->num_permitted_cnames == 1 &&
2565 strcasecmp(options->permitted_cnames[0].source_list, "none") == 0 &&
2566 strcmp(options->permitted_cnames[0].target_list, "") == 0)
2568 return options->num_permitted_cnames > 0;
2572 * Initializes options to special values that indicate that they have not yet
2573 * been set. Read_config_file will only set options with this value. Options
2579 initialize_options(Options * options)
2581 memset(options, 'X', sizeof(*options));
2582 options->host_arg = NULL;
2583 options->forward_agent = -1;
2584 options->forward_agent_sock_path = NULL;
2585 options->forward_x11 = -1;
2586 options->forward_x11_trusted = -1;
2587 options->forward_x11_timeout = -1;
2588 options->stdio_forward_host = NULL;
2589 options->stdio_forward_port = 0;
2590 options->clear_forwardings = -1;
2591 options->exit_on_forward_failure = -1;
2592 options->xauth_location = NULL;
2593 options->fwd_opts.gateway_ports = -1;
2594 options->fwd_opts.streamlocal_bind_mask = (mode_t)-1;
2595 options->fwd_opts.streamlocal_bind_unlink = -1;
2596 options->pubkey_authentication = -1;
2597 options->gss_authentication = -1;
2598 options->gss_deleg_creds = -1;
2599 options->password_authentication = -1;
2600 options->kbd_interactive_authentication = -1;
2601 options->kbd_interactive_devices = NULL;
2602 options->hostbased_authentication = -1;
2603 options->batch_mode = -1;
2604 options->check_host_ip = -1;
2605 options->strict_host_key_checking = -1;
2606 options->compression = -1;
2607 options->tcp_keep_alive = -1;
2608 options->port = -1;
2609 options->address_family = -1;
2610 options->connection_attempts = -1;
2611 options->connection_timeout = -1;
2612 options->number_of_password_prompts = -1;
2613 options->ciphers = NULL;
2614 options->macs = NULL;
2615 options->kex_algorithms = NULL;
2616 options->hostkeyalgorithms = NULL;
2617 options->ca_sign_algorithms = NULL;
2618 options->num_identity_files = 0;
2619 memset(options->identity_keys, 0, sizeof(options->identity_keys));
2620 options->num_certificate_files = 0;
2621 memset(options->certificates, 0, sizeof(options->certificates));
2622 options->hostname = NULL;
2623 options->host_key_alias = NULL;
2624 options->proxy_command = NULL;
2625 options->jump_user = NULL;
2626 options->jump_host = NULL;
2627 options->jump_port = -1;
2628 options->jump_extra = NULL;
2629 options->user = NULL;
2630 options->escape_char = -1;
2631 options->num_system_hostfiles = 0;
2632 options->num_user_hostfiles = 0;
2633 options->local_forwards = NULL;
2634 options->num_local_forwards = 0;
2635 options->remote_forwards = NULL;
2636 options->num_remote_forwards = 0;
2637 options->permitted_remote_opens = NULL;
2638 options->num_permitted_remote_opens = 0;
2639 options->log_facility = SYSLOG_FACILITY_NOT_SET;
2640 options->log_level = SYSLOG_LEVEL_NOT_SET;
2641 options->num_log_verbose = 0;
2642 options->log_verbose = NULL;
2643 options->preferred_authentications = NULL;
2644 options->bind_address = NULL;
2645 options->bind_interface = NULL;
2646 options->pkcs11_provider = NULL;
2647 options->sk_provider = NULL;
2648 options->enable_ssh_keysign = - 1;
2649 options->no_host_authentication_for_localhost = - 1;
2650 options->identities_only = - 1;
2651 options->rekey_limit = - 1;
2652 options->rekey_interval = -1;
2653 options->verify_host_key_dns = -1;
2654 options->server_alive_interval = -1;
2655 options->server_alive_count_max = -1;
2656 options->send_env = NULL;
2657 options->num_send_env = 0;
2658 options->setenv = NULL;
2659 options->num_setenv = 0;
2660 options->control_path = NULL;
2661 options->control_master = -1;
2662 options->control_persist = -1;
2663 options->control_persist_timeout = 0;
2664 options->hash_known_hosts = -1;
2665 options->tun_open = -1;
2666 options->tun_local = -1;
2667 options->tun_remote = -1;
2668 options->local_command = NULL;
2669 options->permit_local_command = -1;
2670 options->remote_command = NULL;
2671 options->add_keys_to_agent = -1;
2672 options->add_keys_to_agent_lifespan = -1;
2673 options->identity_agent = NULL;
2674 options->visual_host_key = -1;
2675 options->ip_qos_interactive = -1;
2676 options->ip_qos_bulk = -1;
2677 options->request_tty = -1;
2678 options->session_type = -1;
2679 options->stdin_null = -1;
2680 options->fork_after_authentication = -1;
2681 options->proxy_use_fdpass = -1;
2682 options->ignored_unknown = NULL;
2683 options->num_canonical_domains = 0;
2684 options->num_permitted_cnames = 0;
2685 options->canonicalize_max_dots = -1;
2686 options->canonicalize_fallback_local = -1;
2687 options->canonicalize_hostname = -1;
2688 options->revoked_host_keys = NULL;
2689 options->fingerprint_hash = -1;
2690 options->update_hostkeys = -1;
2691 options->hostbased_accepted_algos = NULL;
2692 options->pubkey_accepted_algos = NULL;
2693 options->known_hosts_command = NULL;
2694 options->required_rsa_size = -1;
2695 options->enable_escape_commandline = -1;
2696 options->obscure_keystroke_timing_interval = -1;
2697 options->tag = NULL;
2698 options->channel_timeouts = NULL;
2699 options->num_channel_timeouts = 0;
2700 options->version_addendum = NULL;
2704 * A petite version of fill_default_options() that just fills the options
2708 fill_default_options_for_canonicalization(Options *options)
2710 if (options->canonicalize_max_dots == -1)
2711 options->canonicalize_max_dots = 1;
2712 if (options->canonicalize_fallback_local == -1)
2713 options->canonicalize_fallback_local = 1;
2714 if (options->canonicalize_hostname == -1)
2715 options->canonicalize_hostname = SSH_CANONICALISE_NO;
2720 * options for which no value has been specified with their default values.
2723 fill_default_options(Options * options)
2729 if (options->forward_agent == -1)
2730 options->forward_agent = 0;
2731 if (options->forward_x11 == -1)
2732 options->forward_x11 = 0;
2733 if (options->forward_x11_trusted == -1)
2734 options->forward_x11_trusted = 0;
2735 if (options->forward_x11_timeout == -1)
2736 options->forward_x11_timeout = 1200;
2741 if (options->exit_on_forward_failure == -1)
2742 options->exit_on_forward_failure =
2743 options->stdio_forward_host != NULL ? 1 : 0;
2744 if (options->clear_forwardings == -1)
2745 options->clear_forwardings =
2746 options->stdio_forward_host != NULL ? 1 : 0;
2747 if (options->clear_forwardings == 1)
2748 clear_forwardings(options);
2750 if (options->xauth_location == NULL)
2751 options->xauth_location = xstrdup(_PATH_XAUTH);
2752 if (options->fwd_opts.gateway_ports == -1)
2753 options->fwd_opts.gateway_ports = 0;
2754 if (options->fwd_opts.streamlocal_bind_mask == (mode_t)-1)
2755 options->fwd_opts.streamlocal_bind_mask = 0177;
2756 if (options->fwd_opts.streamlocal_bind_unlink == -1)
2757 options->fwd_opts.streamlocal_bind_unlink = 0;
2758 if (options->pubkey_authentication == -1)
2759 options->pubkey_authentication = SSH_PUBKEY_AUTH_ALL;
2760 if (options->gss_authentication == -1)
2761 options->gss_authentication = 0;
2762 if (options->gss_deleg_creds == -1)
2763 options->gss_deleg_creds = 0;
2764 if (options->password_authentication == -1)
2765 options->password_authentication = 1;
2766 if (options->kbd_interactive_authentication == -1)
2767 options->kbd_interactive_authentication = 1;
2768 if (options->hostbased_authentication == -1)
2769 options->hostbased_authentication = 0;
2770 if (options->batch_mode == -1)
2771 options->batch_mode = 0;
2772 if (options->check_host_ip == -1)
2773 options->check_host_ip = 0;
2774 if (options->strict_host_key_checking == -1)
2775 options->strict_host_key_checking = SSH_STRICT_HOSTKEY_ASK;
2776 if (options->compression == -1)
2777 options->compression = 0;
2778 if (options->tcp_keep_alive == -1)
2779 options->tcp_keep_alive = 1;
2780 if (options->port == -1)
2781 options->port = 0; /* Filled in ssh_connect. */
2782 if (options->address_family == -1)
2783 options->address_family = AF_UNSPEC;
2784 if (options->connection_attempts == -1)
2785 options->connection_attempts = 1;
2786 if (options->number_of_password_prompts == -1)
2787 options->number_of_password_prompts = 3;
2788 /* options->hostkeyalgorithms, default set in myproposals.h */
2789 if (options->add_keys_to_agent == -1) {
2790 options->add_keys_to_agent = 0;
2791 options->add_keys_to_agent_lifespan = 0;
2793 if (options->num_identity_files == 0) {
2794 add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_RSA, 0);
2795 add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_ECDSA, 0);
2796 add_identity_file(options, "~/",
2798 add_identity_file(options, "~/",
2800 add_identity_file(options, "~/",
2802 add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_XMSS, 0);
2804 add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_DSA, 0);
2807 if (options->escape_char == -1)
2808 options->escape_char = '~';
2809 if (options->num_system_hostfiles == 0) {
2810 options->system_hostfiles[options->num_system_hostfiles++] =
2812 options->system_hostfiles[options->num_system_hostfiles++] =
2815 if (options->update_hostkeys == -1) {
2816 if (options->verify_host_key_dns <= 0 &&
2817 (options->num_user_hostfiles == 0 ||
2818 (options->num_user_hostfiles == 1 && strcmp(options->
2820 options->update_hostkeys = SSH_UPDATE_HOSTKEYS_YES;
2822 options->update_hostkeys = SSH_UPDATE_HOSTKEYS_NO;
2824 if (options->num_user_hostfiles == 0) {
2825 options->user_hostfiles[options->num_user_hostfiles++] =
2827 options->user_hostfiles[options->num_user_hostfiles++] =
2830 if (options->log_level == SYSLOG_LEVEL_NOT_SET)
2831 options->log_level = SYSLOG_LEVEL_INFO;
2832 if (options->log_facility == SYSLOG_FACILITY_NOT_SET)
2833 options->log_facility = SYSLOG_FACILITY_USER;
2834 if (options->no_host_authentication_for_localhost == - 1)
2835 options->no_host_authentication_for_localhost = 0;
2836 if (options->identities_only == -1)
2837 options->identities_only = 0;
2838 if (options->enable_ssh_keysign == -1)
2839 options->enable_ssh_keysign = 0;
2840 if (options->rekey_limit == -1)
2841 options->rekey_limit = 0;
2842 if (options->rekey_interval == -1)
2843 options->rekey_interval = 0;
2844 if (options->verify_host_key_dns == -1)
2845 options->verify_host_key_dns = 0;
2846 if (options->server_alive_interval == -1)
2847 options->server_alive_interval = 0;
2848 if (options->server_alive_count_max == -1)
2849 options->server_alive_count_max = 3;
2850 if (options->control_master == -1)
2851 options->control_master = 0;
2852 if (options->control_persist == -1) {
2853 options->control_persist = 0;
2854 options->control_persist_timeout = 0;
2856 if (options->hash_known_hosts == -1)
2857 options->hash_known_hosts = 0;
2858 if (options->tun_open == -1)
2859 options->tun_open = SSH_TUNMODE_NO;
2860 if (options->tun_local == -1)
2861 options->tun_local = SSH_TUNID_ANY;
2862 if (options->tun_remote == -1)
2863 options->tun_remote = SSH_TUNID_ANY;
2864 if (options->permit_local_command == -1)
2865 options->permit_local_command = 0;
2866 if (options->visual_host_key == -1)
2867 options->visual_host_key = 0;
2868 if (options->ip_qos_interactive == -1)
2869 options->ip_qos_interactive = IPTOS_DSCP_AF21;
2870 if (options->ip_qos_bulk == -1)
2871 options->ip_qos_bulk = IPTOS_DSCP_CS1;
2872 if (options->request_tty == -1)
2873 options->request_tty = REQUEST_TTY_AUTO;
2874 if (options->session_type == -1)
2875 options->session_type = SESSION_TYPE_DEFAULT;
2876 if (options->stdin_null == -1)
2877 options->stdin_null = 0;
2878 if (options->fork_after_authentication == -1)
2879 options->fork_after_authentication = 0;
2880 if (options->proxy_use_fdpass == -1)
2881 options->proxy_use_fdpass = 0;
2882 if (options->canonicalize_max_dots == -1)
2883 options->canonicalize_max_dots = 1;
2884 if (options->canonicalize_fallback_local == -1)
2885 options->canonicalize_fallback_local = 1;
2886 if (options->canonicalize_hostname == -1)
2887 options->canonicalize_hostname = SSH_CANONICALISE_NO;
2888 if (options->fingerprint_hash == -1)
2889 options->fingerprint_hash = SSH_FP_HASH_DEFAULT;
2890 if (options->sk_provider == NULL)
2891 options->sk_provider = xstrdup("internal");
2892 if (options->required_rsa_size == -1)
2893 options->required_rsa_size = SSH_RSA_MINIMUM_MODULUS_SIZE;
2894 if (options->enable_escape_commandline == -1)
2895 options->enable_escape_commandline = 0;
2896 if (options->obscure_keystroke_timing_interval == -1) {
2897 options->obscure_keystroke_timing_interval =
2915 if ((r = kex_assemble_names(&options->what, \
2938 if (options->nv == 1 && \
2939 strcasecmp(options->v[0], none) == 0) { \
2940 free(options->v[0]); \
2941 free(options->v); \
2942 options->v = NULL; \
2943 options->nv = 0; \
2946 CLEAR_ON_NONE(options->local_command);
2947 CLEAR_ON_NONE(options->remote_command);
2948 CLEAR_ON_NONE(options->proxy_command);
2949 CLEAR_ON_NONE(options->control_path);
2950 CLEAR_ON_NONE(options->revoked_host_keys);
2951 CLEAR_ON_NONE(options->pkcs11_provider);
2952 CLEAR_ON_NONE(options->sk_provider);
2953 CLEAR_ON_NONE(options->known_hosts_command);
2957 if (options->jump_host != NULL &&
2958 strcmp(options->jump_host, "none") == 0 &&
2959 options->jump_port == 0 && options->jump_user == NULL) {
2960 free(options->jump_host);
2961 options->jump_host = NULL;
2963 if (options->num_permitted_cnames == 1 &&
2964 !config_has_permitted_cnames(options)) {
2966 free(options->permitted_cnames[0].source_list);
2967 free(options->permitted_cnames[0].target_list);
2968 memset(options->permitted_cnames, '\0',
2969 sizeof(*options->permitted_cnames));
2970 options->num_permitted_cnames = 0;
2972 /* options->identity_agent distinguishes NULL from 'none' */
2973 /* options->user will be set in the main program if appropriate */
2974 /* options->hostname will be set in the main program if appropriate */
2975 /* options->host_key_alias should not be set by default */
2976 /* options->preferred_authentications will be set in ssh */
2995 free_options(Options *o)
3296 parse_jump(const char *s, Options *o, int active)
3545 dump_client_config(Options *o, const char *host)
3562 /* Most interesting options first: user, host, port */
3568 /* Flag options */
3609 /* Integer options */
3620 /* String options */
3654 /* String array options */