diff options
author | Tobias Brunner <tobias@strongswan.org> | 2011-04-19 12:43:00 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2011-04-19 13:48:50 +0200 |
commit | e5143952f0dde2d5694f5ca70140d2b1781ff516 (patch) | |
tree | fa7317194fb086560048395f98af172ce45c2489 /src | |
parent | a5543f99e4cd1df423ef73386f989b33efa2815f (diff) | |
download | strongswan-e5143952f0dde2d5694f5ca70140d2b1781ff516.tar.bz2 strongswan-e5143952f0dde2d5694f5ca70140d2b1781ff516.tar.xz |
pool: Proper handling of address family when adding addresses.
Diffstat (limited to 'src')
-rw-r--r-- | src/libhydra/plugins/attr_sql/pool.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libhydra/plugins/attr_sql/pool.c b/src/libhydra/plugins/attr_sql/pool.c index 157986d20..0ef41a7bd 100644 --- a/src/libhydra/plugins/attr_sql/pool.c +++ b/src/libhydra/plugins/attr_sql/pool.c @@ -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; |