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:02:09 +0200 |
commit | 5021ed30745fbdeabe35e7d52cad0d65c127d147 (patch) | |
tree | 87830c1fb7031b46448489668e7c2c37a28be72f | |
parent | 3773366a25978a57fe990c7d2951e88d38dcb067 (diff) | |
download | libssh-5021ed30745fbdeabe35e7d52cad0d65c127d147.tar.gz libssh-5021ed30745fbdeabe35e7d52cad0d65c127d147.tar.xz libssh-5021ed30745fbdeabe35e7d52cad0d65c127d147.zip |
Fixed config parsing wich has overwritten user specified values.
-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: |