#ifndef _S_EAPOLSOCKET_H
#define _S_EAPOLSOCKET_H
#include "EAPOL.h"
#include "EAPOLControlTypes.h"
#include "wireless.h"
#include "ClientControlInterface.h"
typedef struct EAPOLSocket_s EAPOLSocket, * EAPOLSocketRef;
typedef struct {
EAPOLPacket * eapol_p;
unsigned int length;
} EAPOLSocketReceiveData, *EAPOLSocketReceiveDataRef;
typedef void (EAPOLSocketReceiveCallback)(void * arg1, void * arg2,
EAPOLSocketReceiveDataRef data);
typedef EAPOLSocketReceiveCallback * EAPOLSocketReceiveCallbackRef;
void
EAPOLSocketSetDebug(boolean_t debug);
bool
EAPOLSocketIsLinkActive(EAPOLSocketRef sock);
int
EAPOLSocketMTU(EAPOLSocketRef sock);
const struct ether_addr *
EAPOLSocketGetAuthenticatorMACAddress(EAPOLSocketRef sock);
boolean_t
EAPOLSocketIsWireless(EAPOLSocketRef sock);
boolean_t
EAPOLSocketSetKey(EAPOLSocketRef sock, wirelessKeyType type,
int index, const uint8_t * key, int key_length);
boolean_t
EAPOLSocketSetWPAKey(EAPOLSocketRef sock,
const uint8_t * msk, int msk_length);
void
EAPOLSocketClearPMKCache(EAPOLSocketRef sock);
boolean_t
EAPOLSocketHasPMK(EAPOLSocketRef sock);
CFStringRef
EAPOLSocketGetSSID(EAPOLSocketRef sock);
void
EAPOLSocketDisableReceive(EAPOLSocketRef eapol_socket);
void
EAPOLSocketEnableReceive(EAPOLSocketRef eapol_socket,
EAPOLSocketReceiveCallback * func,
void * arg1, void * arg2);
int
EAPOLSocketTransmit(EAPOLSocketRef sock,
EAPOLPacketType packet_type,
void * body, unsigned int body_length);
const char *
EAPOLSocketIfName(EAPOLSocketRef sock, uint32_t * length);
const char *
EAPOLSocketName(EAPOLSocketRef sock);
void
EAPOLSocketReportStatus(EAPOLSocketRef sock, CFDictionaryRef status_dict);
EAPOLControlMode
EAPOLSocketGetMode(EAPOLSocketRef sock);
void
EAPOLSocketStopClient(EAPOLSocketRef sock);
boolean_t
EAPOLSocketReassociate(EAPOLSocketRef sock);
int
get_plist_int(CFDictionaryRef plist, CFStringRef key, int def);
#endif