From e237b28a4d4b17ab50182ac110f28594967e76dc Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Mon, 25 Nov 2013 01:21:39 +0100 Subject: Changes primary addr selection on BSD to respect SIOCGIFADDR ioctl() result. Thanks to Alexander V. Chernikov for the original patch. --- sysdep/unix/krt.c | 3 +++ sysdep/unix/krt.h | 1 + 2 files changed, 4 insertions(+) (limited to 'sysdep/unix') diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c index 57cfe5a4..8f24cf51 100644 --- a/sysdep/unix/krt.c +++ b/sysdep/unix/krt.c @@ -159,6 +159,9 @@ kif_choose_primary(struct iface *i) return a; } + if (a = kif_get_primary_ip(i)) + return a; + return find_preferred_ifa(i, IPA_NONE, IPA_NONE); } diff --git a/sysdep/unix/krt.h b/sysdep/unix/krt.h index 446914d2..99983ccd 100644 --- a/sysdep/unix/krt.h +++ b/sysdep/unix/krt.h @@ -142,5 +142,6 @@ void kif_sys_copy_config(struct kif_config *, struct kif_config *); void kif_do_scan(struct kif_proto *); +struct ifa *kif_get_primary_ip(struct iface *i); #endif -- cgit v1.2.3