Browse Source

FST: Use more robust interface-find for TEST_REQUEST

It is possible for there to be multiple FST groups, so the hardcoded
mechanism of selecting the first one when sending out an event message
may not be sufficient. Get the interface from the caller, if available,
and if not, go through all groups in search of an interface to send the
event on.

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 9 years ago
parent
commit
fa95b7c073
1 changed files with 5 additions and 7 deletions
  1. 5 7
      src/fst/fst_session.c

+ 5 - 7
src/fst/fst_session.c

@@ -1328,13 +1328,11 @@ static int get_group_fill_session(struct fst_group **g, struct fst_session *s)
 	struct fst_get_peer_ctx *ctx;
 
 	os_memset(s, 0, sizeof(*s));
-	*g = dl_list_first(&fst_global_groups_list,
-			   struct fst_group, global_groups_lentry);
-	if (!*g)
-		return -EINVAL;
-
-	s->data.new_iface = dl_list_first(&(*g)->ifaces, struct fst_iface,
-					  group_lentry);
+	foreach_fst_group(*g) {
+		s->data.new_iface = fst_group_first_iface(*g);
+		if (s->data.new_iface)
+			break;
+	}
 	if (!s->data.new_iface)
 		return -EINVAL;