@@ -233,7 +233,7 @@ ucs_netlink_parse_rt_entry_cb(const struct nlmsghdr *nlh, void *arg)
233233
234234 memset (& new_rule -> dest , 0 , sizeof (new_rule -> dest ));
235235 new_rule -> dest .ss_family = rt_msg -> rtm_family ;
236- if (rt_msg -> rtm_dst_len != 0 ) {
236+ if (dst_in_addr != NULL ) {
237237 if (ucs_sockaddr_set_inet_addr ((struct sockaddr * )& new_rule -> dest ,
238238 dst_in_addr ) != UCS_OK ) {
239239 ucs_array_pop_back (iface_rules );
@@ -250,7 +250,6 @@ static void ucs_netlink_lookup_route(ucs_netlink_route_info_t *info)
250250{
251251 ucs_netlink_rt_rules_t * iface_rules ;
252252 ucs_netlink_route_entry_t * curr_entry ;
253- int is_default_gw ;
254253 khiter_t iter ;
255254
256255 iter = kh_get (ucs_netlink_rt_cache , & ucs_netlink_routing_table_cache ,
@@ -262,11 +261,10 @@ static void ucs_netlink_lookup_route(ucs_netlink_route_info_t *info)
262261
263262 iface_rules = & kh_val (& ucs_netlink_routing_table_cache , iter );
264263 ucs_array_for_each (curr_entry , iface_rules ) {
265- is_default_gw = (curr_entry -> subnet_prefix_len == 0 );
266264
267265 /* Skip default gateway routes if not allowed (e.g., for
268266 IPoIB remote devices) */
269- if (is_default_gw && !info -> allow_default_gw ) {
267+ if (( curr_entry -> subnet_prefix_len == 0 ) && !info -> allow_default_gw ) {
270268 ucs_trace ("iface_index=%d: skipping default gateway route" ,
271269 info -> if_index );
272270 continue ;
@@ -312,8 +310,8 @@ int ucs_netlink_route_exists(int if_index, const struct sockaddr *sa_remote,
312310 return info .found ;
313311}
314312
315- int ucs_netlink_ethernet_device_route_exists (int if_index ,
316- const struct sockaddr * sa_remote )
313+ int ucs_netlink_route_exists_allow_default (int if_index ,
314+ const struct sockaddr * sa_remote )
317315{
318316 return ucs_netlink_route_exists (if_index , sa_remote , 1 );
319317}
0 commit comments