(ipv6_parse_addr): implement
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6385 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -156,6 +156,7 @@ ipv4_parse_addr (const char *address, krb5_address *addr)
|
|||||||
{
|
{
|
||||||
const char *p;
|
const char *p;
|
||||||
struct in_addr a;
|
struct in_addr a;
|
||||||
|
|
||||||
p = strchr(address, ':');
|
p = strchr(address, ':');
|
||||||
if(p) {
|
if(p) {
|
||||||
p++;
|
p++;
|
||||||
@@ -177,7 +178,8 @@ ipv4_parse_addr (const char *address, krb5_address *addr)
|
|||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
addr->addr_type = KRB5_ADDRESS_INET;
|
addr->addr_type = KRB5_ADDRESS_INET;
|
||||||
krb5_data_alloc(&addr->address, 4);
|
if(krb5_data_alloc(&addr->address, 4) != 0)
|
||||||
|
return -1;
|
||||||
_krb5_put_int(addr->address.data, ntohl(a.s_addr), addr->address.length);
|
_krb5_put_int(addr->address.data, ntohl(a.s_addr), addr->address.length);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -317,6 +319,19 @@ ipv6_print_addr (const krb5_address *addr, char *str, size_t len)
|
|||||||
static int
|
static int
|
||||||
ipv6_parse_addr (const char *address, krb5_address *addr)
|
ipv6_parse_addr (const char *address, krb5_address *addr)
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
|
struct in6_addr in6;
|
||||||
|
krb5_error_code ret;
|
||||||
|
|
||||||
|
ret = inet_pton(AF_INET6, address, &in6.s6_addr);
|
||||||
|
if(ret == 1) {
|
||||||
|
addr->addr_type = KRB5_ADDRESS_INET6;
|
||||||
|
ret = krb5_data_alloc(&addr->address, sizeof(in6.s6_addr));
|
||||||
|
if (ret)
|
||||||
|
return -1;
|
||||||
|
memcpy(addr->address.data, in6.s6_addr, sizeof(in6.s6_addr));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user