131a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt/* 231a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * Common hostapd/wpa_supplicant ctrl iface code. 331a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * Copyright (c) 2002-2013, Jouni Malinen <j@w1.fi> 431a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * Copyright (c) 2015, Qualcomm Atheros, Inc. 531a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * 631a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 731a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * See README for more details. 831a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt */ 931a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt#ifndef CONTROL_IFACE_COMMON_H 1031a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt#define CONTROL_IFACE_COMMON_H 1131a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt 1231a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt#include "utils/list.h" 1331a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt 1431a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt/** 1531a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * struct wpa_ctrl_dst - Data structure of control interface monitors 1631a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * 1731a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * This structure is used to store information about registered control 1831a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt * interface monitors into struct wpa_supplicant. 1931a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt */ 2031a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidtstruct wpa_ctrl_dst { 2131a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt struct dl_list list; 2231a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt struct sockaddr_storage addr; 2331a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt socklen_t addrlen; 2431a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt int debug_level; 2531a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt int errors; 2631a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt}; 2731a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt 2831a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidtvoid sockaddr_print(int level, const char *msg, struct sockaddr_storage *sock, 2931a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt socklen_t socklen); 3031a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt 3131a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidtint ctrl_iface_attach(struct dl_list *ctrl_dst, struct sockaddr_storage *from, 3231a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt socklen_t fromlen); 3331a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidtint ctrl_iface_detach(struct dl_list *ctrl_dst, struct sockaddr_storage *from, 3431a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt socklen_t fromlen); 3531a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidtint ctrl_iface_level(struct dl_list *ctrl_dst, struct sockaddr_storage *from, 3631a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt socklen_t fromlen, const char *level); 3731a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt 3831a29cc7ed87b62465c7e01f03484f4643d12309Dmitry Shmidt#endif /* CONTROL_IFACE_COMMON_H */ 39