diff options
author | Andreas Schneider <mail@cynapses.org> | 2010-04-04 14:02:09 +0200 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2010-04-04 14:03:44 +0200 |
commit | 3e0959fa1b46c868e3a83183a69ec831c9ee9d2e (patch) | |
tree | 636b5e2cab3832764aaf8a325809ff6907c63531 /libssh | |
parent | d87b29b678a74ab2e96cea5e2118d4e38f17ba9a (diff) | |
download | libssh-3e0959fa1b46c868e3a83183a69ec831c9ee9d2e.tar.gz libssh-3e0959fa1b46c868e3a83183a69ec831c9ee9d2e.tar.xz libssh-3e0959fa1b46c868e3a83183a69ec831c9ee9d2e.zip |
Fixed config parsing wich has overwritten user specified values.
Diffstat (limited to 'libssh')
-rw-r--r-- | libssh/config.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/libssh/config.c b/libssh/config.c index 264dcd2b..e3a00ca6 100644 --- a/libssh/config.c +++ b/libssh/config.c @@ -197,21 +197,25 @@ static int ssh_config_parse_line(ssh_session session, const char *line, } break; case SOC_PORT: - p = ssh_config_get_str(&s, NULL); - if (p && *parsing) { - ssh_options_set(session, SSH_OPTIONS_PORT_STR, p); + if (session->port == 22) { + p = ssh_config_get_str(&s, NULL); + if (p && *parsing) { + ssh_options_set(session, SSH_OPTIONS_PORT_STR, p); + } } break; case SOC_USERNAME: - p = ssh_config_get_str(&s, NULL); - if (p && *parsing) { - ssh_options_set(session, SSH_OPTIONS_USER, p); + if (session->username == NULL) { + p = ssh_config_get_str(&s, NULL); + if (p && *parsing) { + ssh_options_set(session, SSH_OPTIONS_USER, p); + } } break; case SOC_IDENTITY: p = ssh_config_get_str(&s, NULL); if (p && *parsing) { - ssh_options_set(session, SSH_OPTIONS_IDENTITY, p); + ssh_options_set(session, SSH_OPTIONS_ADD_IDENTITY, p); } break; case SOC_CIPHERS: |