Documentation
¶
Overview ¶
Package wireless provides a connection to WPA Supplicant and a client for ease of use
Index ¶
- Constants
- Variables
- func DefaultInterface() (string, bool)
- func InterfacesFromSysfs() []string
- func InterfacesFromWPARunDir(basePath ...string) []string
- func IsUseOfClosedNetworkConnectionError(err error) bool
- type AP
- type APs
- type AdvancedNetwork
- type Client
- func (cl *Client) AddNetwork(net Network) (Network, error)
- func (cl *Client) AddNetworkWithContext(ctx context.Context, net Network) (Network, error)
- func (cl *Client) AddOrUpdateNetwork(net Network) (Network, error)
- func (cl *Client) AddOrUpdateNetworkWithContext(ctx context.Context, net Network) (Network, error)
- func (cl *Client) Close()
- func (cl *Client) Conn() *Conn
- func (cl *Client) Connect(net Network) (Network, error)
- func (cl *Client) ConnectWithContext(ctx context.Context, net Network) (Network, error)
- func (cl *Client) DisableNetwork(id int) error
- func (cl *Client) Disconnect() error
- func (cl *Client) DisconnectWithContext(ctx context.Context) error
- func (cl *Client) EnableNetwork(id int) error
- func (cl *Client) EnableNetworkWithContext(ctx context.Context, id int) error
- func (cl *Client) GetNetworkAttr(id int, attr string) (string, error)
- func (cl *Client) LoadConfig() error
- func (cl *Client) Networks() (nets Networks, err error)
- func (cl *Client) NetworksWithContext(ctx context.Context) (nets Networks, err error)
- func (cl *Client) RemoveNetwork(id int) error
- func (cl *Client) SaveConfig() error
- func (cl *Client) Scan() (nets APs, err error)
- func (cl *Client) SelectNetwork(id int) error
- func (cl *Client) SelectNetworkWithContext(ctx context.Context, id int) error
- func (cl *Client) Status() (State, error)
- func (cl *Client) Subscribe(topics ...string) *Subscription
- func (cl *Client) UpdateNetwork(net Network) (Network, error)
- func (cl *Client) UpdateNetworkWithContext(ctx context.Context, net Network) (Network, error)
- func (cl *Client) WithContext(ctx context.Context, ops ...func(wc *Client))
- type Conn
- func (c *Conn) Close() error
- func (c *Conn) SendCommand(command ...string) (string, error)
- func (c *Conn) SendCommandBool(command ...string) error
- func (c *Conn) SendCommandBoolWithContext(ctx context.Context, command ...string) error
- func (c *Conn) SendCommandInt(command ...string) (int, error)
- func (c *Conn) SendCommandIntWithContext(ctx context.Context, command ...string) (int, error)
- func (c *Conn) SendCommandWithContext(ctx context.Context, command ...string) (string, error)
- func (c *Conn) Subscribe(eventNames ...string) *Subscription
- func (c *Conn) WithLogOutput(w io.Writer)
- type Event
- type Network
- type Networks
- type State
- type Subscription
- type WPAConn
Constants ¶
const ( CmdStatus = "STATUS" CmdIfname = "IFNAME" CmdPing = "PING" CmdRelog = "RELOG" CmdNote = "NOTE" CmdMib = "MIB" CmdHelp = "HELP" CmdInterface = "INTERFACE" CmdLevel = "LEVEL" CmdLicense = "LICENSE" CmdQuit = "QUIT" CmdSet = "SET" CmdDump = "DUMP" CmdGet = "GET" CmdDriverFlags = "DRIVER_FLAGS" CmdLogon = "LOGON" CmdLogoff = "LOGOFF" CmdPmksa = "PMKSA" CmdPmksaFlush = "PMKSA_FLUSH" CmdReassociate = "REASSOCIATE" CmdReattach = "REATTACH" CmdPreauthenticate = "PREAUTHENTICATE" CmdIdentity = "IDENTITY" CmdPassword = "PASSWORD" CmdNewPassword = "NEW_PASSWORD" CmdPin = "PIN" CmdOtp = "OTP" CmdPassphrase = "PASSPHRASE" CmdSim = "SIM" CmdBssid = "BSSID" CmdBlacklist = "BLACKLIST" CmdLogLevel = "LOG_LEVEL" CmdListNetworks = "LIST_NETWORKS" CmdSelectNetwork = "SELECT_NETWORK" CmdEnableNetwork = "ENABLE_NETWORK" CmdDisableNetwork = "DISABLE_NETWORK" CmdAddNetwork = "ADD_NETWORK" CmdRemoveNetwork = "REMOVE_NETWORK" CmdSetNetwork = "SET_NETWORK" CmdGetNetwork = "GET_NETWORK" CmdDupNetwork = "DUP_NETWORK" CmdListCreds = "LIST_CREDS" CmdAddCred = "ADD_CRED" CmdRemoveCred = "REMOVE_CRED" CmdSetCred = "SET_CRED" CmdGetCred = "GET_CRED" CmdSaveConfig = "SAVE_CONFIG" CmdDisconnect = "DISCONNECT" CmdReconnect = "RECONNECT" CmdScan = "SCAN" CmdScanResults = "SCAN_RESULTS" CmdAbortScan = "ABORT_SCAN" CmdBss = "BSS" CmdGetCapability = "GET_CAPABILITY" CmdReconfigure = "RECONFIGURE" CmdTerminate = "TERMINATE" CmdInterfaceAdd = "InterfaceAdd" CmdInterfaceRemove = "INTERFACE_REMOVE" CmdInterfaceList = "INTERFACE_LIST" CmdApScan = "AP_SCAN" CmdScanInterval = "SCAN_INTERVAL" CmdBssExpireAge = "BSS_EXPIRE_AGE" CmdBssExpireCount = "BSS_EXPIRE_COUNT" CmdBssFlush = "BSS_FLUSH" CmdStkstart = "STKSTART" CmdFtDs = "FT_DS" CmdWpsPbc = "WPS_PBC" CmdWpsPin = "WPS_PIN" CmdWpsCheckPin = "WPS_CHECK_PIN" CmdWpsReg = "WPS_REG" CmdWpsApPin = "WPS_AP_PIN" CmdWpsErStart = "WPS_ER_START" CmdWpsErStop = "WPS_ER_STOP" CmdWpsErPin = "WPS_ER_PIN" CmdWpsErPbc = "WPS_ER_PBC" CmdWpsErLearn = "WPS_ER_LEARN" CmdWpsErSetConfig = "WPS_ER_SET_CONFIG" CmdWpsErConfig = "WPS_ER_CONFIG" CmdIbssRsn = "IBSS_RSN" CmdSta = "STA" CmdAllSta = "ALL_STA" CmdDeauthenticate = "DEAUTHENTICATE" CmdDisassociate = "DISASSOCIATE" CmdChanSwitch = "CHAN_SWITCH" CmdSuspend = "SUSPEND" CmdResume = "RESUME" CmdRoam = "ROAM" CmdP2pFind = "P2P_FIND" CmdP2pStopFind = "P2P_STOP_FIND" CmdP2pAspProvision = "P2P_ASP_PROVISION" CmdP2pAspProvisionResp = "P2P_ASP_PROVISION_RESP" CmdP2pConnect = "P2P_CONNECT" CmdP2pListen = "P2P_LISTEN" CmdP2pGroupRemove = "P2P_GROUP_REMOVE" CmdP2pGroupAdd = "P2P_GROUP_ADD" CmdP2pGroupMember = "P2P_GROUP_MEMBER" CmdP2pProvDisc = "P2P_PROV_DISC" CmdP2pGetPassphrase = "P2P_GET_PASSPHRASE" CmdP2pServDiscReq = "P2P_SERV_DISC_REQ" CmdP2pServDiscCancelReq = "P2P_SERV_DISC_CANCEL_REQ" CmdP2pServDiscResp = "P2P_SERV_DISC_RESP" CmdP2pServiceUpdate = "P2P_SERVICE_UPDATE" CmdP2pServDiscExternal = "P2P_SERV_DISC_EXTERNAL" CmdP2pServiceFlush = "P2P_SERVICE_FLUSH" CmdP2pServiceAdd = "P2P_SERVICE_ADD" CmdP2pServiceRep = "P2P_SERVICE_REP" CmdP2pServiceDel = "P2P_SERVICE_DEL" CmdP2pReject = "P2P_REJECT" CmdP2pInvite = "P2P_INVITE" CmdP2pPeers = "P2P_PEERS" CmdP2pPeer = "P2P_PEER" CmdP2pSet = "P2P_SET" CmdP2pFlush = "P2P_FLUSH" CmdP2pCancel = "P2P_CANCEL" CmdP2pPresenceReq = "P2P_PRESENCE_REQ" CmdP2pExtListen = "P2P_EXT_LISTEN" CmdP2pRemoveClient = "P2P_REMOVE_CLIENT" CmdVendorElemAdd = "VENDOR_ELEM_ADD" CmdVendorElemGet = "VENDOR_ELEM_GET" CmdVendorElemRemove = "VENDOR_ELEM_REMOVE" CmdStaAutoconnect = "STA_AUTOCONNECT" CmdTdlsDiscover = "TDLS_DISCOVER" CmdTdlsSetup = "TDLS_SETUP" CmdTdlsTeardown = "TDLS_TEARDOWN" CmdTdlsLinkStatus = "TDLS_LINK_STATUS" CmdWmmAcAddts = "WMM_AC_ADDTS" CmdWmmAcDelts = "WMM_AC_DELTS" CmdWmmAcStatus = "WMM_AC_STATUS" CmdTdlsChanSwitch = "TDLS_CHAN_SWITCH" CmdTdlsCancelChanSwitch = "TDLS_CANCEL_CHAN_SWITCH" CmdSignalPoll = "SIGNAL_POLL" CmdSignalMonitor = "SIGNAL_MONITOR" CmdPktcntPoll = "PKTCNT_POLL" CmdReauthenticate = "REAUTHENTICATE" CmdRaw = "RAW" CmdFlush = "FLUSH" CmdRadioWork = "RADIO_WORK" CmdVendor = "VENDOR" CmdNeighborRepRequest = "NEIGHBOR_REP_REQUEST" CmdErpFlush = "ERP_FLUSH" CmdMacRandScan = "MAC_RAND_SCAN" CmdGetPrefFreqList = "GET_PREF_FREQ_LIST" CmdP2pLoStart = "P2P_LO_START" CmdP2pLoStop = "P2P_LO_STOP" )
const ( // CtrlReq (as defined in wpactrl/wpa_ctrl.h:19) CtrlReq = "CTRL-REQ-" // CtrlRsp (as defined in wpactrl/wpa_ctrl.h:22) CtrlRsp = "CTRL-RSP-" // EventConnected Authentication completed successfully and data connection enabled (as defined in wpactrl/wpa_ctrl.h:26) EventConnected = "CTRL-EVENT-CONNECTED" // EventDisconnected Disconnected, data connection is not available (as defined in wpactrl/wpa_ctrl.h:28) EventDisconnected = "CTRL-EVENT-DISCONNECTED" // EventAssocReject Association rejected during connection attempt (as defined in wpactrl/wpa_ctrl.h:30) EventAssocReject = "CTRL-EVENT-ASSOC-REJECT" // EventAuthReject Authentication rejected during connection attempt (as defined in wpactrl/wpa_ctrl.h:32) EventAuthReject = "CTRL-EVENT-AUTH-REJECT" // EventTerminating wpa_supplicant is exiting (as defined in wpactrl/wpa_ctrl.h:34) EventTerminating = "CTRL-EVENT-TERMINATING" // EventPasswordChanged Password change was completed successfully (as defined in wpactrl/wpa_ctrl.h:36) EventPasswordChanged = "CTRL-EVENT-PASSWORD-CHANGED" // EventEapNotification EAP-Request/Notification received (as defined in wpactrl/wpa_ctrl.h:38) EventEapNotification = "CTRL-EVENT-EAP-NOTIFICATION" // EventEapStarted EAP authentication started (EAP-Request/Identity received) (as defined in wpactrl/wpa_ctrl.h:40) EventEapStarted = "CTRL-EVENT-EAP-STARTED" // EventEapProposedMethod EAP method proposed by the server (as defined in wpactrl/wpa_ctrl.h:42) EventEapProposedMethod = "CTRL-EVENT-EAP-PROPOSED-METHOD" // EventEapMethod EAP method selected (as defined in wpactrl/wpa_ctrl.h:44) EventEapMethod = "CTRL-EVENT-EAP-METHOD" // EventEapPeerCert EAP peer certificate from TLS (as defined in wpactrl/wpa_ctrl.h:46) EventEapPeerCert = "CTRL-EVENT-EAP-PEER-CERT" // EventEapPeerAlt EAP peer certificate alternative subject name component from TLS (as defined in wpactrl/wpa_ctrl.h:48) EventEapPeerAlt = "CTRL-EVENT-EAP-PEER-ALT" // EventEapTLSCertError EAP TLS certificate chain validation error (as defined in wpactrl/wpa_ctrl.h:50) EventEapTLSCertError = "CTRL-EVENT-EAP-TLS-CERT-ERROR" // EventEapStatus EAP status (as defined in wpactrl/wpa_ctrl.h:52) EventEapStatus = "CTRL-EVENT-EAP-STATUS" // EventEapRetransmit Retransmit the previous request packet (as defined in wpactrl/wpa_ctrl.h:54) EventEapRetransmit = "CTRL-EVENT-EAP-RETRANSMIT" // EventEapRetransmit2 Retransmit the previous request packet (as defined in wpactrl/wpa_ctrl.h:55) EventEapRetransmit2 = "CTRL-EVENT-EAP-RETRANSMIT2" // EventEapSuccess EAP authentication completed successfully (as defined in wpactrl/wpa_ctrl.h:57) EventEapSuccess = "CTRL-EVENT-EAP-SUCCESS" // EventEapSuccess2 EAP authentication completed successfully (as defined in wpactrl/wpa_ctrl.h:58) EventEapSuccess2 = "CTRL-EVENT-EAP-SUCCESS2" // EventEapFailure EAP authentication failed (EAP-Failure received) (as defined in wpactrl/wpa_ctrl.h:60) EventEapFailure = "CTRL-EVENT-EAP-FAILURE" // EventEapFailure2 EAP authentication failed (EAP-Failure received) (as defined in wpactrl/wpa_ctrl.h:61) EventEapFailure2 = "CTRL-EVENT-EAP-FAILURE2" // EventEapTimeoutFailure EAP authentication failed due to no response received (as defined in wpactrl/wpa_ctrl.h:63) EventEapTimeoutFailure = "CTRL-EVENT-EAP-TIMEOUT-FAILURE" // EventEapTimeoutFailure2 EAP authentication failed due to no response received (as defined in wpactrl/wpa_ctrl.h:64) EventEapTimeoutFailure2 = "CTRL-EVENT-EAP-TIMEOUT-FAILURE2" // EventTempDisabled Network block temporarily disabled (e.g., due to authentication failure) (as defined in wpactrl/wpa_ctrl.h:66) EventTempDisabled = "CTRL-EVENT-SSID-TEMP-DISABLED" // EventReenabled Temporarily disabled network block re-enabled (as defined in wpactrl/wpa_ctrl.h:68) EventReenabled = "CTRL-EVENT-SSID-REENABLED" // EventScanStarted New scan started (as defined in wpactrl/wpa_ctrl.h:70) EventScanStarted = "CTRL-EVENT-SCAN-STARTED" // EventScanResults New scan results available (as defined in wpactrl/wpa_ctrl.h:72) EventScanResults = "CTRL-EVENT-SCAN-RESULTS" // EventScanFailed Scan command failed (as defined in wpactrl/wpa_ctrl.h:74) EventScanFailed = "CTRL-EVENT-SCAN-FAILED" // EventStateChange wpa_supplicant state change (as defined in wpactrl/wpa_ctrl.h:76) EventStateChange = "CTRL-EVENT-STATE-CHANGE" // EventBssAdded A new BSS entry was added (followed by BSS entry id and BSSID) (as defined in wpactrl/wpa_ctrl.h:78) EventBssAdded = "CTRL-EVENT-BSS-ADDED" // EventBssRemoved A BSS entry was removed (followed by BSS entry id and BSSID) (as defined in wpactrl/wpa_ctrl.h:80) EventBssRemoved = "CTRL-EVENT-BSS-REMOVED" // EventNetworkNotFound No suitable network was found (as defined in wpactrl/wpa_ctrl.h:82) EventNetworkNotFound = "CTRL-EVENT-NETWORK-NOT-FOUND" // EventSignalChange Change in the signal level was reported by the driver (as defined in wpactrl/wpa_ctrl.h:84) EventSignalChange = "CTRL-EVENT-SIGNAL-CHANGE" // EventBeaconLoss Beacon loss reported by the driver (as defined in wpactrl/wpa_ctrl.h:86) EventBeaconLoss = "CTRL-EVENT-BEACON-LOSS" // EventRegdomChange Regulatory domain channel (as defined in wpactrl/wpa_ctrl.h:88) EventRegdomChange = "CTRL-EVENT-REGDOM-CHANGE" // EventChannelSwitch Channel switch started (followed by freq=<MHz> and other channel parameters) (as defined in wpactrl/wpa_ctrl.h:90) EventChannelSwitchStarted = "CTRL-EVENT-STARTED-CHANNEL-SWITCH" // EventChannelSwitch Channel switch (followed by freq=<MHz> and other channel parameters) (as defined in wpactrl/wpa_ctrl.h:90) EventChannelSwitch = "CTRL-EVENT-CHANNEL-SWITCH" // EventSubnetStatusUpdate IP subnet status change notification (as defined in wpactrl/wpa_ctrl.h:103) // // When using an offloaded roaming mechanism where driver/firmware takes care // of roaming and IP subnet validation checks post-roaming, this event can // indicate whether IP subnet has changed. // // The event has a status=<0/1/2> parameter where // 0 = unknown // 1 = IP subnet unchanged (can continue to use the old IP address) // 2 = IP subnet changed (need to get a new IP address) EventSubnetStatusUpdate = "CTRL-EVENT-SUBNET-STATUS-UPDATE" // IbssRsnCompleted (as defined in wpactrl/wpa_ctrl.h:106) IbssRsnCompleted = "IBSS-RSN-COMPLETED" // EventFreqConflict Notification of frequency conflict due to a concurrent operation (as defined in wpactrl/wpa_ctrl.h:113) // // The indicated network is disabled and needs to be re-enabled before it can be used again. EventFreqConflict = "CTRL-EVENT-FREQ-CONFLICT" // EventAvoidFreq Frequency ranges that the driver recommends to avoid (as defined in wpactrl/wpa_ctrl.h:115) EventAvoidFreq = "CTRL-EVENT-AVOID-FREQ" // WpsEventOverlap WPS overlap detected in PBC mode (as defined in wpactrl/wpa_ctrl.h:117) WpsEventOverlap = "WPS-OVERLAP-DETECTED" // WpsEventApAvailablePbc Available WPS AP with active PBC found in scan results (as defined in wpactrl/wpa_ctrl.h:119) WpsEventApAvailablePbc = "WPS-AP-AVAILABLE-PBC" // WpsEventApAvailableAuth Available WPS AP with our address as authorized in scan results (as defined in wpactrl/wpa_ctrl.h:121) WpsEventApAvailableAuth = "WPS-AP-AVAILABLE-AUTH" // WpsEventApAvailablePin Available WPS AP with recently selected PIN registrar found in scan results (as defined in wpactrl/wpa_ctrl.h:124) WpsEventApAvailablePin = "WPS-AP-AVAILABLE-PIN" // WpsEventApAvailable Available WPS AP found in scan results (as defined in wpactrl/wpa_ctrl.h:126) WpsEventApAvailable = "WPS-AP-AVAILABLE" // WpsEventCredReceived A new credential received (as defined in wpactrl/wpa_ctrl.h:128) WpsEventCredReceived = "WPS-CRED-RECEIVED" // WpsEventM2d (as defined in wpactrl/wpa_ctrl.h:130) WpsEventM2d = "WPS-M2D" // WpsEventFail WPS registration failed after M2/M2D (as defined in wpactrl/wpa_ctrl.h:132) WpsEventFail = "WPS-FAIL" // WpsEventSuccess WPS registration completed successfully (as defined in wpactrl/wpa_ctrl.h:134) WpsEventSuccess = "WPS-SUCCESS" // WpsEventTimeout WPS enrollment attempt timed out and was terminated (as defined in wpactrl/wpa_ctrl.h:136) WpsEventTimeout = "WPS-TIMEOUT" // WpsEventActive PBC mode was activated (as defined in wpactrl/wpa_ctrl.h:138) WpsEventActive = "WPS-PBC-ACTIVE" // WpsEventDisable PBC mode was disabled (as defined in wpactrl/wpa_ctrl.h:140) WpsEventDisable = "WPS-PBC-DISABLE" // WpsEventEnrolleeSeen (as defined in wpactrl/wpa_ctrl.h:142) WpsEventEnrolleeSeen = "WPS-ENROLLEE-SEEN" // WpsEventOpenNetwork (as defined in wpactrl/wpa_ctrl.h:144) WpsEventOpenNetwork = "WPS-OPEN-NETWORK" // WpsEventErApAdd (as defined in wpactrl/wpa_ctrl.h:147) WpsEventErApAdd = "WPS-ER-AP-ADD" // WpsEventErApRemove (as defined in wpactrl/wpa_ctrl.h:148) WpsEventErApRemove = "WPS-ER-AP-REMOVE" // WpsEventErEnrolleeAdd (as defined in wpactrl/wpa_ctrl.h:149) WpsEventErEnrolleeAdd = "WPS-ER-ENROLLEE-ADD" // WpsEventErEnrolleeRemove (as defined in wpactrl/wpa_ctrl.h:150) WpsEventErEnrolleeRemove = "WPS-ER-ENROLLEE-REMOVE" // WpsEventErApSettings (as defined in wpactrl/wpa_ctrl.h:151) WpsEventErApSettings = "WPS-ER-AP-SETTINGS" // WpsEventErSetSelReg (as defined in wpactrl/wpa_ctrl.h:152) WpsEventErSetSelReg = "WPS-ER-AP-SET-SEL-REG" // DppEventAuthSuccess (as defined in wpactrl/wpa_ctrl.h:155) DppEventAuthSuccess = "DPP-AUTH-SUCCESS" // DppEventNotCompatible (as defined in wpactrl/wpa_ctrl.h:156) DppEventNotCompatible = "DPP-NOT-COMPATIBLE" // DppEventResponsePending (as defined in wpactrl/wpa_ctrl.h:157) DppEventResponsePending = "DPP-RESPONSE-PENDING" // DppEventScanPeerQrCode (as defined in wpactrl/wpa_ctrl.h:158) DppEventScanPeerQrCode = "DPP-SCAN-PEER-QR-CODE" // DppEventConfReceived (as defined in wpactrl/wpa_ctrl.h:159) DppEventConfReceived = "DPP-CONF-RECEIVED" // DppEventConfSent (as defined in wpactrl/wpa_ctrl.h:160) DppEventConfSent = "DPP-CONF-SENT" // DppEventConfFailed (as defined in wpactrl/wpa_ctrl.h:161) DppEventConfFailed = "DPP-CONF-FAILED" // DppEventConfobjSsid (as defined in wpactrl/wpa_ctrl.h:162) DppEventConfobjSsid = "DPP-CONFOBJ-SSID" // DppEventConfobjPass (as defined in wpactrl/wpa_ctrl.h:163) DppEventConfobjPass = "DPP-CONFOBJ-PASS" // DppEventConfobjPsk (as defined in wpactrl/wpa_ctrl.h:164) DppEventConfobjPsk = "DPP-CONFOBJ-PSK" // DppEventConnector (as defined in wpactrl/wpa_ctrl.h:165) DppEventConnector = "DPP-CONNECTOR" // DppEventCSignKey (as defined in wpactrl/wpa_ctrl.h:166) DppEventCSignKey = "DPP-C-SIGN-KEY" // DppEventNetAccessKey (as defined in wpactrl/wpa_ctrl.h:167) DppEventNetAccessKey = "DPP-NET-ACCESS-KEY" // DppEventMissingConnector (as defined in wpactrl/wpa_ctrl.h:168) DppEventMissingConnector = "DPP-MISSING-CONNECTOR" // DppEventNetworkID (as defined in wpactrl/wpa_ctrl.h:169) DppEventNetworkID = "DPP-NETWORK-ID" // DppEventRx (as defined in wpactrl/wpa_ctrl.h:170) DppEventRx = "DPP-RX" // DppEventTx (as defined in wpactrl/wpa_ctrl.h:171) DppEventTx = "DPP-TX" // DppEventTxStatus (as defined in wpactrl/wpa_ctrl.h:172) DppEventTxStatus = "DPP-TX-STATUS" // DppEventFail (as defined in wpactrl/wpa_ctrl.h:173) DppEventFail = "DPP-FAIL" // MeshGroupStarted (as defined in wpactrl/wpa_ctrl.h:176) MeshGroupStarted = "MESH-GROUP-STARTED" // MeshGroupRemoved (as defined in wpactrl/wpa_ctrl.h:177) MeshGroupRemoved = "MESH-GROUP-REMOVED" // MeshPeerConnected (as defined in wpactrl/wpa_ctrl.h:178) MeshPeerConnected = "MESH-PEER-CONNECTED" // MeshPeerDisconnected (as defined in wpactrl/wpa_ctrl.h:179) MeshPeerDisconnected = "MESH-PEER-DISCONNECTED" // MeshSaeAuthFailure (as defined in wpactrl/wpa_ctrl.h:181) MeshSaeAuthFailure = "MESH-SAE-AUTH-FAILURE" // MeshSaeAuthBlocked (as defined in wpactrl/wpa_ctrl.h:182) MeshSaeAuthBlocked = "MESH-SAE-AUTH-BLOCKED" // P2pEventDeviceFound (as defined in wpactrl/wpa_ctrl.h:190) P2pEventDeviceFound = "P2P-DEVICE-FOUND" // P2pEventDeviceLost (as defined in wpactrl/wpa_ctrl.h:193) P2pEventDeviceLost = "P2P-DEVICE-LOST" // P2pEventGoNegRequest (as defined in wpactrl/wpa_ctrl.h:197) P2pEventGoNegRequest = "P2P-GO-NEG-REQUEST" // P2pEventGoNegSuccess (as defined in wpactrl/wpa_ctrl.h:198) P2pEventGoNegSuccess = "P2P-GO-NEG-SUCCESS" // P2pEventGoNegFailure (as defined in wpactrl/wpa_ctrl.h:199) P2pEventGoNegFailure = "P2P-GO-NEG-FAILURE" // P2pEventGroupFormationSuccess (as defined in wpactrl/wpa_ctrl.h:200) P2pEventGroupFormationSuccess = "P2P-GROUP-FORMATION-SUCCESS" // P2pEventGroupFormationFailure (as defined in wpactrl/wpa_ctrl.h:201) P2pEventGroupFormationFailure = "P2P-GROUP-FORMATION-FAILURE" // P2pEventGroupStarted (as defined in wpactrl/wpa_ctrl.h:202) P2pEventGroupStarted = "P2P-GROUP-STARTED" // P2pEventGroupRemoved (as defined in wpactrl/wpa_ctrl.h:203) P2pEventGroupRemoved = "P2P-GROUP-REMOVED" // P2pEventCrossConnectEnable (as defined in wpactrl/wpa_ctrl.h:204) P2pEventCrossConnectEnable = "P2P-CROSS-CONNECT-ENABLE" // P2pEventCrossConnectDisable (as defined in wpactrl/wpa_ctrl.h:205) P2pEventCrossConnectDisable = "P2P-CROSS-CONNECT-DISABLE" // P2pEventProvDiscShowPin (as defined in wpactrl/wpa_ctrl.h:207) P2pEventProvDiscShowPin = "P2P-PROV-DISC-SHOW-PIN" // P2pEventProvDiscEnterPin (as defined in wpactrl/wpa_ctrl.h:209) P2pEventProvDiscEnterPin = "P2P-PROV-DISC-ENTER-PIN" // P2pEventProvDiscPbcReq (as defined in wpactrl/wpa_ctrl.h:211) P2pEventProvDiscPbcReq = "P2P-PROV-DISC-PBC-REQ" // P2pEventProvDiscPbcResp (as defined in wpactrl/wpa_ctrl.h:213) P2pEventProvDiscPbcResp = "P2P-PROV-DISC-PBC-RESP" // P2pEventProvDiscFailure (as defined in wpactrl/wpa_ctrl.h:215) P2pEventProvDiscFailure = "P2P-PROV-DISC-FAILURE" // P2pEventServDiscReq (as defined in wpactrl/wpa_ctrl.h:217) P2pEventServDiscReq = "P2P-SERV-DISC-REQ" // P2pEventServDiscResp (as defined in wpactrl/wpa_ctrl.h:219) P2pEventServDiscResp = "P2P-SERV-DISC-RESP" // P2pEventServAspResp (as defined in wpactrl/wpa_ctrl.h:220) P2pEventServAspResp = "P2P-SERV-ASP-RESP" // P2pEventInvitationReceived (as defined in wpactrl/wpa_ctrl.h:221) P2pEventInvitationReceived = "P2P-INVITATION-RECEIVED" // P2pEventInvitationResult (as defined in wpactrl/wpa_ctrl.h:222) P2pEventInvitationResult = "P2P-INVITATION-RESULT" // P2pEventInvitationAccepted (as defined in wpactrl/wpa_ctrl.h:223) P2pEventInvitationAccepted = "P2P-INVITATION-ACCEPTED" // P2pEventFindStopped (as defined in wpactrl/wpa_ctrl.h:224) P2pEventFindStopped = "P2P-FIND-STOPPED" // P2pEventPersistentPskFail (as defined in wpactrl/wpa_ctrl.h:225) P2pEventPersistentPskFail = "P2P-PERSISTENT-PSK-FAIL id=" // P2pEventPresenceResponse (as defined in wpactrl/wpa_ctrl.h:226) P2pEventPresenceResponse = "P2P-PRESENCE-RESPONSE" // P2pEventNfcBothGo (as defined in wpactrl/wpa_ctrl.h:227) P2pEventNfcBothGo = "P2P-NFC-BOTH-GO" // P2pEventNfcPeerClient (as defined in wpactrl/wpa_ctrl.h:228) P2pEventNfcPeerClient = "P2P-NFC-PEER-CLIENT" // P2pEventNfcWhileClient (as defined in wpactrl/wpa_ctrl.h:229) P2pEventNfcWhileClient = "P2P-NFC-WHILE-CLIENT" // P2pEventFallbackToGoNeg (as defined in wpactrl/wpa_ctrl.h:230) P2pEventFallbackToGoNeg = "P2P-FALLBACK-TO-GO-NEG" // P2pEventFallbackToGoNegEnabled (as defined in wpactrl/wpa_ctrl.h:231) P2pEventFallbackToGoNegEnabled = "P2P-FALLBACK-TO-GO-NEG-ENABLED" // EssDisassocImminent (as defined in wpactrl/wpa_ctrl.h:234) EssDisassocImminent = "ESS-DISASSOC-IMMINENT" // P2pEventRemoveAndReformGroup (as defined in wpactrl/wpa_ctrl.h:235) P2pEventRemoveAndReformGroup = "P2P-REMOVE-AND-REFORM-GROUP" // P2pEventP2psProvisionStart (as defined in wpactrl/wpa_ctrl.h:237) P2pEventP2psProvisionStart = "P2PS-PROV-START" // P2pEventP2psProvisionDone (as defined in wpactrl/wpa_ctrl.h:238) P2pEventP2psProvisionDone = "P2PS-PROV-DONE" // InterworkingAp (as defined in wpactrl/wpa_ctrl.h:240) InterworkingAp = "INTERWORKING-AP" // InterworkingBlacklisted (as defined in wpactrl/wpa_ctrl.h:241) InterworkingBlacklisted = "INTERWORKING-BLACKLISTED" // InterworkingNoMatch (as defined in wpactrl/wpa_ctrl.h:242) InterworkingNoMatch = "INTERWORKING-NO-MATCH" // InterworkingAlreadyConnected (as defined in wpactrl/wpa_ctrl.h:243) InterworkingAlreadyConnected = "INTERWORKING-ALREADY-CONNECTED" // InterworkingSelected (as defined in wpactrl/wpa_ctrl.h:244) InterworkingSelected = "INTERWORKING-SELECTED" // CredAdded (as defined in wpactrl/wpa_ctrl.h:247) CredAdded = "CRED-ADDED" // CredModified (as defined in wpactrl/wpa_ctrl.h:249) CredModified = "CRED-MODIFIED" // CredRemoved (as defined in wpactrl/wpa_ctrl.h:251) CredRemoved = "CRED-REMOVED" // GasResponseInfo (as defined in wpactrl/wpa_ctrl.h:253) GasResponseInfo = "GAS-RESPONSE-INFO" // GasQueryStart (as defined in wpactrl/wpa_ctrl.h:255) GasQueryStart = "GAS-QUERY-START" // GasQueryDone (as defined in wpactrl/wpa_ctrl.h:257) GasQueryDone = "GAS-QUERY-DONE" // RxAnqp (as defined in wpactrl/wpa_ctrl.h:262) RxAnqp = "RX-ANQP" // RxHs20Anqp (as defined in wpactrl/wpa_ctrl.h:263) RxHs20Anqp = "RX-HS20-ANQP" // RxHs20AnqpIcon (as defined in wpactrl/wpa_ctrl.h:264) RxHs20AnqpIcon = "RX-HS20-ANQP-ICON" // RxHs20Icon (as defined in wpactrl/wpa_ctrl.h:265) RxHs20Icon = "RX-HS20-ICON" // RxMboAnqp (as defined in wpactrl/wpa_ctrl.h:266) RxMboAnqp = "RX-MBO-ANQP" // Hs20SubscriptionRemediation (as defined in wpactrl/wpa_ctrl.h:268) Hs20SubscriptionRemediation = "HS20-SUBSCRIPTION-REMEDIATION" // Hs20DeauthImminentNotice (as defined in wpactrl/wpa_ctrl.h:269) Hs20DeauthImminentNotice = "HS20-DEAUTH-IMMINENT-NOTICE" // RrmEventNeighborRepRxed (as defined in wpactrl/wpa_ctrl.h:274) RrmEventNeighborRepRxed = "RRM-NEIGHBOR-REP-RECEIVED" // RrmEventNeighborRepFailed (as defined in wpactrl/wpa_ctrl.h:275) RrmEventNeighborRepFailed = "RRM-NEIGHBOR-REP-REQUEST-FAILED" // WpsEventPinNeeded (as defined in wpactrl/wpa_ctrl.h:278) WpsEventPinNeeded = "WPS-PIN-NEEDED" // WpsEventNewApSettings (as defined in wpactrl/wpa_ctrl.h:279) WpsEventNewApSettings = "WPS-NEW-AP-SETTINGS" // WpsEventRegSuccess (as defined in wpactrl/wpa_ctrl.h:280) WpsEventRegSuccess = "WPS-REG-SUCCESS" // WpsEventApSetupLocked (as defined in wpactrl/wpa_ctrl.h:281) WpsEventApSetupLocked = "WPS-AP-SETUP-LOCKED" // WpsEventApSetupUnlocked (as defined in wpactrl/wpa_ctrl.h:282) WpsEventApSetupUnlocked = "WPS-AP-SETUP-UNLOCKED" // WpsEventApPinEnabled (as defined in wpactrl/wpa_ctrl.h:283) WpsEventApPinEnabled = "WPS-AP-PIN-ENABLED" // WpsEventApPinDisabled (as defined in wpactrl/wpa_ctrl.h:284) WpsEventApPinDisabled = "WPS-AP-PIN-DISABLED" // ApStaConnected (as defined in wpactrl/wpa_ctrl.h:285) ApStaConnected = "AP-STA-CONNECTED" // ApStaDisconnected (as defined in wpactrl/wpa_ctrl.h:286) ApStaDisconnected = "AP-STA-DISCONNECTED" // ApStaPossiblePskMismatch (as defined in wpactrl/wpa_ctrl.h:287) ApStaPossiblePskMismatch = "AP-STA-POSSIBLE-PSK-MISMATCH" // ApStaPollOk (as defined in wpactrl/wpa_ctrl.h:288) ApStaPollOk = "AP-STA-POLL-OK" // ApRejectedMaxSta (as defined in wpactrl/wpa_ctrl.h:290) ApRejectedMaxSta = "AP-REJECTED-MAX-STA" // ApRejectedBlockedSta (as defined in wpactrl/wpa_ctrl.h:291) ApRejectedBlockedSta = "AP-REJECTED-BLOCKED-STA" // ApEventEnabled (as defined in wpactrl/wpa_ctrl.h:293) ApEventEnabled = "AP-ENABLED" // ApEventDisabled (as defined in wpactrl/wpa_ctrl.h:294) ApEventDisabled = "AP-DISABLED" // InterfaceEnabled (as defined in wpactrl/wpa_ctrl.h:296) InterfaceEnabled = "INTERFACE-ENABLED" // InterfaceDisabled (as defined in wpactrl/wpa_ctrl.h:297) InterfaceDisabled = "INTERFACE-DISABLED" // AcsEventStarted (as defined in wpactrl/wpa_ctrl.h:299) AcsEventStarted = "ACS-STARTED" // AcsEventCompleted (as defined in wpactrl/wpa_ctrl.h:300) AcsEventCompleted = "ACS-COMPLETED" // AcsEventFailed (as defined in wpactrl/wpa_ctrl.h:301) AcsEventFailed = "ACS-FAILED" // DfsEventRadarDetected (as defined in wpactrl/wpa_ctrl.h:303) DfsEventRadarDetected = "DFS-RADAR-DETECTED" // DfsEventNewChannel (as defined in wpactrl/wpa_ctrl.h:304) DfsEventNewChannel = "DFS-NEW-CHANNEL" // DfsEventCacStart (as defined in wpactrl/wpa_ctrl.h:305) DfsEventCacStart = "DFS-CAC-START" // DfsEventCacCompleted (as defined in wpactrl/wpa_ctrl.h:306) DfsEventCacCompleted = "DFS-CAC-COMPLETED" // DfsEventNopFinished (as defined in wpactrl/wpa_ctrl.h:307) DfsEventNopFinished = "DFS-NOP-FINISHED" // DfsEventPreCacExpired (as defined in wpactrl/wpa_ctrl.h:308) DfsEventPreCacExpired = "DFS-PRE-CAC-EXPIRED" // ApCsaFinished (as defined in wpactrl/wpa_ctrl.h:310) ApCsaFinished = "AP-CSA-FINISHED" // P2pEventListenOffloadStop (as defined in wpactrl/wpa_ctrl.h:312) P2pEventListenOffloadStop = "P2P-LISTEN-OFFLOAD-STOPPED" // P2pListenOffloadStopReason (as defined in wpactrl/wpa_ctrl.h:313) P2pListenOffloadStopReason = "P2P-LISTEN-OFFLOAD-STOP-REASON" // BssTmResp (as defined in wpactrl/wpa_ctrl.h:316) BssTmResp = "BSS-TM-RESP" // MboCellPreference (as defined in wpactrl/wpa_ctrl.h:319) MboCellPreference = "MBO-CELL-PREFERENCE" // MboTransitionReason (as defined in wpactrl/wpa_ctrl.h:322) MboTransitionReason = "MBO-TRANSITION-REASON" // PmksaCacheAdded (as defined in wpactrl/wpa_ctrl.h:330) PmksaCacheAdded = "PMKSA-CACHE-ADDED" // PmksaCacheRemoved (as defined in wpactrl/wpa_ctrl.h:332) PmksaCacheRemoved = "PMKSA-CACHE-REMOVED" // FilsHlpRx (as defined in wpactrl/wpa_ctrl.h:336) FilsHlpRx = "FILS-HLP-RX" // BssMaskAll (as defined in wpactrl/wpa_ctrl.h:340) BssMaskAll = 0xFFFDFFFF // CtrlIfacePort (as defined in wpactrl/wpa_ctrl.h:541) CtrlIfacePort = 9877 // CtrlIfacePortLimit (as defined in wpactrl/wpa_ctrl.h:542) CtrlIfacePortLimit = 50 // GlobalCtrlIfacePort (as defined in wpactrl/wpa_ctrl.h:543) GlobalCtrlIfacePort = 9878 // GlobalCtrlIfacePortLimit (as defined in wpactrl/wpa_ctrl.h:544) GlobalCtrlIfacePortLimit = 20 )
const CONN_MAX_LISTEN_BUFF = 5 * 1024 // Allow 5kB of buffer for listening to events
Variables ¶
var ( // ErrCmdTimeout is an error that happens when the command times out ErrCmdTimeout = errors.New("timeout while waiting for command response") // ErrScanFailed is an error that happens when scanning for wifi networks fails ErrScanFailed = errors.New("scan failed") ErrSSIDNotFound = errors.New("SSID not found") // ErrAuthFailed this is not actually talking about WPA but the raw 802.11 management frames. This // was originally called WEP but when security holes were found it became disused, instead passing // to higher layer protocols like 802.1X (EAP) or 802.11i (WPA2). You should never see this error. ErrAuthFailed = errors.New("raw 802.11 auth failed") ErrDisconnected = errors.New("disconnected") // ErrAssocRejected will be given should the station fail to associate with the AP, usually due // to higher level authentication protocols like WPA2 failing to authenticate a password. You can // use this to detect invalid passwords. ErrAssocRejected = errors.New("assocation rejected") ErrNoIdentifier = errors.New("no id_str field found") ErrInvalidEvent = errors.New("invalid event message") ErrFailBusy = errors.New("FAIL-BUSY") )
var DefaultCtrlDir = "/var/run/wpa_supplicant"
var Interfaces = InterfacesFromWPARunDir
Interfaces is a shortcut to the best known method for gathering the wireless interfaces from the current system
Functions ¶
func DefaultInterface ¶ added in v1.3.0
DefaultInterface will return the default wireless interface, being the first one returned from the Interfaces method
func InterfacesFromSysfs ¶ added in v1.3.0
func InterfacesFromSysfs() []string
InterfacesFromSysfs returns the wireless interfaces found in the SysFS (/sys/class/net)
func InterfacesFromWPARunDir ¶ added in v1.3.0
InterfacesFromWPARunDir returns the interfaces that WPA Supplicant is currently running on by checking the sockets available in the run directory (/var/run/wpa_supplicant) however a different run directory can be specified as the basePath parameter
func IsUseOfClosedNetworkConnectionError ¶
IsUseOfClosedNetworkConnectionError will return true if the error is about use of closed network connection
Types ¶
type AP ¶
type AP struct {
ID int `json:"id"`
RSSI int `json:"rssi"`
BSSID string `json:"bssid"`
SSID string `json:"ssid"`
ESSID string `json:"essid"`
Flags []string `json:"flags"`
Signal int `json:"signal"`
Frequency int `json:"frequency"`
}
AP represents an access point seen by the scan networks command
type AdvancedNetwork ¶ added in v1.3.0
type AdvancedNetwork struct {
Flags []string `json:"flags"`
ID int `json:"id"`
ScanSSID *int `json:"scan_ssid"`
Disabled *int `json:"disabled"`
Priority *int `json:"priority"`
EapolFlags *int `json:"eapol_flags"`
WEPTxKeyidx *int `json:"wep_tx_keyidx"`
Mode *int `json:"mode"`
Frequency *int `json:"frequency"`
MACSecPolicy *int `json:"macsec_policy"`
WpaPtkRekey *int `json:"wpa_ptk_rekey"`
IDStr *string `json:"id_str"`
Identity *string `json:"identity"`
AnonymousIdentity *string `json:"anonymous_identity"`
Password *string `json:"password"`
CaCert *string `json:"ca_cert"`
ClientCert *string `json:"client_cert"`
PrivateKey *string `json:"private_key"`
PrivateKeyPasswd *string `json:"private_key_passwd"`
CaCert2 *string `json:"ca_cert2"`
ClientCert2 *string `json:"client_cert2"`
PrivateKey2 *string `json:"private_key2"`
PrivateKeyPasswd2 *string `json:"private_key_passwd2"`
Phase1 *string `json:"phase1"`
Phase2 *string `json:"phase2"`
Pin *string `json:"pin"`
PCSC *string `json:"pcsc"`
SSID *string `json:"ssid"`
PSK *string `json:"psk"`
PacFile *string `json:"pac_file"`
WEPKey0 *string `json:"wep_key0"`
WEPKey1 *string `json:"wep_key1"`
WEPKey2 *string `json:"wep_key2"`
Pairwise *rawString `json:"pairwise"`
KeyMgmt *rawString `json:"key_mgmt"`
BSSID *rawString `json:"bssid"`
Proto *rawString `json:"proto"`
EAP *rawString `json:"eap"`
Group *rawString `json:"group"`
AuthAlg *rawString `json:"auth_alg"`
BSSIDWhitelist *rawString `json:"bssid_whitelist"`
BSSIDBlacklist *rawString `json:"bssid_blacklist"`
}
AdvancedNetwork represents a known network
type Client ¶
type Client struct {
ScanTimeout time.Duration
CmdTimeout time.Duration
// contains filtered or unexported fields
}
Client represents a wireless client
func NewClientFromConn ¶
NewClientFromConn returns a new client from an already established connection
func (*Client) AddNetwork ¶
AddNetwork will add a new network
func (*Client) AddNetworkWithContext ¶ added in v1.3.0
AddNetwork will add a new network
func (*Client) AddOrUpdateNetwork ¶
AddOrUpdateNetwork will add or, if the network has IDStr set, update it
func (*Client) AddOrUpdateNetworkWithContext ¶ added in v1.3.0
func (*Client) ConnectWithContext ¶ added in v1.3.0
Connect to a new or existing network
func (*Client) DisableNetwork ¶
DisableNetwork will DisableNetwork
func (*Client) Disconnect ¶ added in v1.3.0
Disconnect will Disconnect
func (*Client) DisconnectWithContext ¶ added in v1.3.0
func (*Client) EnableNetwork ¶
EnableNetwork will EnableNetwork
func (*Client) EnableNetworkWithContext ¶ added in v1.3.0
func (*Client) GetNetworkAttr ¶ added in v1.3.0
GetNetworkAttr will get the given attribute of the given network
func (*Client) NetworksWithContext ¶ added in v1.3.0
func (*Client) RemoveNetwork ¶
RemoveNetwork will RemoveNetwork
func (*Client) SelectNetwork ¶ added in v1.3.0
SelectNetwork will SelectNetwork
func (*Client) SelectNetworkWithContext ¶ added in v1.3.0
func (*Client) Subscribe ¶ added in v1.3.0
func (cl *Client) Subscribe(topics ...string) *Subscription
Subscribe will subscribe to certain events that happen in WPA
func (*Client) UpdateNetwork ¶
UpdateNetwork will update the given network, an error will be thrown if the network doesn't have IDStr specified
func (*Client) UpdateNetworkWithContext ¶ added in v1.3.0
type Conn ¶
type Conn struct {
Interface string
// contains filtered or unexported fields
}
Conn represents a connection to a WPA supplicant control interface
func (*Conn) SendCommand ¶
SendCommand will call SendCommandWithContext with a 2 second timeout
func (*Conn) SendCommandBool ¶
SendCommandBool will send a command and return an error if the response was not OK
func (*Conn) SendCommandBoolWithContext ¶ added in v1.3.0
func (*Conn) SendCommandInt ¶
SendCommandInt will send a command where the response is expected to be an integer
func (*Conn) SendCommandIntWithContext ¶ added in v1.3.0
func (*Conn) SendCommandWithContext ¶
SendCommandWithContext will send the command with a context
func (*Conn) Subscribe ¶
func (c *Conn) Subscribe(eventNames ...string) *Subscription
Subscribe to one or more events and return the subscription
func (*Conn) WithLogOutput ¶ added in v1.3.0
WithLogOutput will set the log output of the connection. By default it is set to ioutil.Discard
type Event ¶
Event is an event that happens in the WPA supplicant
func NewEventFromMsg ¶
NewEventFromMsg will create a new event from the given message
type Network ¶
type Network struct {
Known bool `json:"known"`
ID int `json:"id"`
IDStr string `json:"id_str"`
KeyMgmt string `json:"key_mgmt"`
SSID string `json:"ssid"`
BSSID string `json:"bssid"`
ScanSSID bool `json:"scan_ssid"`
PSK string `json:"psk"`
Flags []string `json:"flags"`
}
Network represents a known network
func NewDisabledNetwork ¶
NewDisabledNetwork will create a new disabled network with the given parameters
func NewNamedNetwork ¶
NewNamedNetwork will create a new network with the given parameters
func NewNetwork ¶
NewNetwork will create a new network with the given parameters
func NewOpenNetwork ¶ added in v1.3.0
NewOpenNetwork will return a new open network
func (Network) Attributes ¶ added in v1.3.0
Attributes return the attributes of the network as a list of strings, with the ability to set the separator or indentation
func (Network) IsCurrent ¶ added in v1.3.0
IsCurrent will return true if the network is the currently active one
func (Network) IsDisabled ¶
IsDisabled will return true if the network is disabled
type Networks ¶ added in v1.3.0
type Networks []Network
Networks models a collection of networks
func (Networks) FindByIDStr ¶ added in v1.3.0
FindByIDStr will find a network by the given ID Str or return false
func (Networks) FindBySSID ¶ added in v1.3.0
FindBySSID will find a network by the given SSID or return false
func (Networks) FindCurrent ¶ added in v1.3.0
FindCurrent will find the current network or return false
type State ¶
type State struct {
BSSID string `json:"bssid"`
SSID string `json:"ssid"`
ID string `json:"id"`
Mode string `json:"mode"`
KeyManagement string `json:"key_management"`
WpaState string `json:"wpa_state"`
IPAddress string `json:"ip_address"`
Address string `json:"address"`
UUID string `json:"uuid"`
GroupCipher string `json:"group_cipher"`
PairwiseCipher string `json:"pairwise_cipher"`
}
State represents the current status of WPA
type Subscription ¶
type Subscription struct {
// contains filtered or unexported fields
}
Subscription represents a subscription to one or events
func (*Subscription) Next ¶
func (s *Subscription) Next() chan Event
Next will return a channel that returns events
func (*Subscription) Unsubscribe ¶ added in v1.3.0
func (s *Subscription) Unsubscribe()
Unsubscribe closes the channel and sets it to nil
type WPAConn ¶ added in v1.3.0
type WPAConn interface {
SendCommand(...string) (string, error)
SendCommandBool(...string) error
SendCommandInt(...string) (int, error)
SendCommandWithContext(context.Context, ...string) (string, error)
SendCommandBoolWithContext(context.Context, ...string) error
SendCommandIntWithContext(context.Context, ...string) (int, error)
io.Closer
Subscribe(...string) *Subscription
}
WPAConn is an interface to the connection