diff options
author | Michal Zidek <mzidek@redhat.com> | 2012-08-22 15:16:26 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2012-08-23 18:33:39 +0200 |
commit | b096321a5a02dda0b6b71ba0f9c4d8feacd979e4 (patch) | |
tree | 2c540d0dfdf7a4f84d052f85d9b8e519bf8ebc6a /src/providers/krb5 | |
parent | 21d485184df986e1a123f70c689517386e51a5ce (diff) | |
download | sssd-b096321a5a02dda0b6b71ba0f9c4d8feacd979e4.tar.gz sssd-b096321a5a02dda0b6b71ba0f9c4d8feacd979e4.tar.xz sssd-b096321a5a02dda0b6b71ba0f9c4d8feacd979e4.zip |
Fix: IPv6 address with square brackets doesn't work.
https://fedorahosted.org/sssd/ticket/1365
Diffstat (limited to 'src/providers/krb5')
-rw-r--r-- | src/providers/krb5/krb5_common.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/providers/krb5/krb5_common.c b/src/providers/krb5/krb5_common.c index bd7a30210..0e96b806c 100644 --- a/src/providers/krb5/krb5_common.c +++ b/src/providers/krb5/krb5_common.c @@ -520,7 +520,13 @@ errno_t krb5_servers_init(struct be_ctx *ctx, continue; } - port_str = strrchr(server_spec, ':'); + /* Do not try to get port number if last character is ']' */ + if (server_spec[strlen(server_spec) - 1] != ']') { + port_str = strrchr(server_spec, ':'); + } else { + port_str = NULL; + } + if (port_str == NULL) { port = 0; } else { @@ -564,6 +570,13 @@ errno_t krb5_servers_init(struct be_ctx *ctx, } } + /* It could be ipv6 address in square brackets. Remove + * the brackets if needed. */ + ret = remove_ipv6_brackets(server_spec); + if (ret != EOK) { + goto done; + } + ret = be_fo_add_server(ctx, service_name, server_spec, (int) port, list[i], primary); if (ret && ret != EEXIST) { |