why does a wpa_cli scan action trigger a netlink RTM_NEWLINK event?

40 Views Asked by At

I'm using a netlink socket to detect link and address events on a wifi interface. I have a socket setup as follows:

void open_netlink(int *sock_ptr)
{
    int sock = socket(AF_NETLINK,SOCK_RAW,NETLINK_ROUTE);
    struct sockaddr_nl addr;

    memset((void *)&addr, 0, sizeof(addr));

    if (sock<0)
    {
        return;
    }
    addr.nl_family = AF_NETLINK;
    addr.nl_pid = (unsigned int)getpid();
    addr.nl_groups = RTMGRP_LINK|RTMGRP_IPV4_IFADDR|RTMGRP_IPV6_IFADDR;
    if (bind(sock,(struct sockaddr *)&addr,sizeof(addr))<0)
    {
        syslog(LOG_CRIT, "Could not bind to netlink socket!\n");
        return;
    }
    *sock_ptr = sock;

}

For some reason, when I perform a scan using wpa_cli, I receive a NEWLINK event from the netlink socket:

-sh-4.4# wpa_cli
wpa_cli v2.10
Copyright (c) 2004-2022, Jouni Malinen <[email protected]> and contributors

This software may be distributed under the terms of the BSD license.
See README for more details.


Selected interface 'wlan0'

Interactive mode

> scan
OK
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS

In my daemon:

msg_handler: RTM_NEWLINK : wlan0

Does wpa_supplicant create some kind of ephemeral interface for scanning APs that would trigger a NEWLINK event in the kernel?

0

There are 0 best solutions below