mirror of
https://github.com/drasko/open-ameba.git
synced 2024-11-30 02:00:30 +00:00
64 lines
1.5 KiB
C
64 lines
1.5 KiB
C
/******************************* joinlink **************************/
|
|
#ifndef __JOINLINK_H
|
|
#define __JOINLINK_H
|
|
|
|
#include "autoconf.h"
|
|
#include "platform_stdlib.h"
|
|
#include "wifi_conf.h"
|
|
#include "wifi_structures.h"
|
|
#include "osdep_service.h"
|
|
#include "lwip_netconf.h"
|
|
#include "task.h"
|
|
#include "hal_crypto.h"
|
|
|
|
#define SSID_SWITCH_TIME 500 //ssid switch time in phase1,units:ms, 50
|
|
#define CHANNEL_SWITCH_TIME 500 //channel switch time in phase2,units:ms, 50
|
|
#define JOINLINK_TIME 120 //timeout for joinlink process, units: s
|
|
|
|
/*
|
|
* store AP profile after successfully decode
|
|
* SUM +£¨length£¬pass£©+£¨IP+Port£©+£¨length£¬SSID)
|
|
*/
|
|
typedef struct
|
|
{
|
|
unsigned char sum;
|
|
unsigned char pwd_length;
|
|
char pwd[65];
|
|
int source_ip[4];
|
|
unsigned int source_port;
|
|
unsigned char ssid_length;
|
|
char ssid[65];
|
|
} joinlink_result_t;
|
|
|
|
/*
|
|
* return value of joinlink_recv()
|
|
*/
|
|
typedef enum
|
|
{
|
|
JOINLINK_STATUS_CONTINUE = 0,
|
|
JOINLINK_STATUS_CHANNEL_LOCKED = 1,
|
|
JOINLINK_STATUS_COMPLETE = 2
|
|
} joinlink_status_t;
|
|
|
|
//initialize the related data structure
|
|
int joinlink_init();
|
|
/*
|
|
handler to decode pkt
|
|
*/
|
|
joinlink_status_t joinlink_recv(unsigned char *da, unsigned char *sa, int len, void *user_data);
|
|
|
|
/*
|
|
* get the AP profile after decode
|
|
*/
|
|
int joinlink_get_result(joinlink_result_t *result);
|
|
|
|
/*
|
|
* set the aes_key, the max len should be 16
|
|
* ret 1: success; ret 0: the len is invalid;
|
|
*/
|
|
int set_aes_key(char *key, int len);
|
|
|
|
// call this after finish join_link process
|
|
void joinlink_deinit();
|
|
|
|
#endif //__JOINLINK_H
|