diff options
author | Jeremy Allison <jra@samba.org> | 2007-10-29 15:03:36 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2007-10-29 15:03:36 -0700 |
commit | 32dd016353355acfb71dd773187076f95ff6e86e (patch) | |
tree | eb2843f3a58bec631f4600ffba535fdeb9dbfc12 /source3/libads | |
parent | e2d0526c9799a75f87bbbe24f2e5a268df89fea9 (diff) | |
download | samba-32dd016353355acfb71dd773187076f95ff6e86e.tar.gz samba-32dd016353355acfb71dd773187076f95ff6e86e.tar.bz2 samba-32dd016353355acfb71dd773187076f95ff6e86e.zip |
Fix the setup_kaddr() call to cope with IPv6.
This is the last obvious change I can see. At
this point we can start claiming IPv6 support
(Hurrah !:-).
Jeremy.
(This used to be commit bda8c0bf571c994b524a9d67eebc422033d17094)
Diffstat (limited to 'source3/libads')
-rw-r--r-- | source3/libads/krb5_setpw.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/source3/libads/krb5_setpw.c b/source3/libads/krb5_setpw.c index 831a448847..852251a476 100644 --- a/source3/libads/krb5_setpw.c +++ b/source3/libads/krb5_setpw.c @@ -401,7 +401,7 @@ static ADS_STATUS do_krb5_kpasswd_request(krb5_context context, krb5_data ap_req, chpw_req, chpw_rep; int ret, sock; socklen_t addr_len; - struct sockaddr remote_addr, local_addr; + struct sockaddr_storage remote_addr, local_addr; struct sockaddr_storage addr; krb5_address local_kaddr, remote_kaddr; bool use_tcp = False; @@ -438,15 +438,14 @@ static ADS_STATUS do_krb5_kpasswd_request(krb5_context context, return ADS_ERROR_SYSTEM(rc); } addr_len = sizeof(remote_addr); - getpeername(sock, &remote_addr, &addr_len); + getpeername(sock, (struct sockaddr *)&remote_addr, &addr_len); addr_len = sizeof(local_addr); - getsockname(sock, &local_addr, &addr_len); + getsockname(sock, (struct sockaddr *)&local_addr, &addr_len); - /* FIXME ! How do we do IPv6 here ? JRA. */ - if (remote_addr.sa_family != AF_INET || - local_addr.sa_family != AF_INET) { + if (!setup_kaddr(&remote_kaddr, &remote_addr) || + !setup_kaddr(&local_kaddr, &local_addr)) { DEBUG(1,("do_krb5_kpasswd_request: " - "no IPv6 support (yet).\n")); + "Failed to setup addresses.\n")); close(sock); SAFE_FREE(ap_req.data); krb5_auth_con_free(context, auth_context); @@ -454,9 +453,6 @@ static ADS_STATUS do_krb5_kpasswd_request(krb5_context context, return ADS_ERROR_SYSTEM(EINVAL); } - setup_kaddr_v4(&remote_kaddr, &remote_addr); - setup_kaddr_v4(&local_kaddr, &local_addr); - ret = krb5_auth_con_setaddrs(context, auth_context, &local_kaddr, NULL); if (ret) { close(sock); @@ -465,7 +461,7 @@ static ADS_STATUS do_krb5_kpasswd_request(krb5_context context, DEBUG(1,("krb5_auth_con_setaddrs failed (%s)\n", error_message(ret))); return ADS_ERROR_KRB5(ret); } - + ret = build_kpasswd_request(pversion, context, auth_context, &ap_req, princ, newpw, use_tcp, &chpw_req); if (ret) { |