pool: Proper handling of address family when adding addresses.

This commit is contained in:
Tobias Brunner 2011-04-19 12:43:00 +02:00
parent a5543f99e4
commit e5143952f0
1 changed files with 6 additions and 2 deletions

View File

@ -407,7 +407,8 @@ static bool add_address(u_int pool_id, char *address_str, int *family)
fprintf(stderr, "invalid address '%s'.\n", address_str);
return FALSE;
}
if (family && *family && *family != address->get_family(address))
if (family && *family != AF_UNSPEC &&
*family != address->get_family(address))
{
fprintf(stderr, "invalid address family '%s'.\n", address_str);
return FALSE;
@ -423,7 +424,10 @@ static bool add_address(u_int pool_id, char *address_str, int *family)
fprintf(stderr, "inserting address '%s' failed.\n", address_str);
return FALSE;
}
*family = address->get_family(address);
if (family)
{
*family = address->get_family(address);
}
address->destroy(address);
return TRUE;