一、概述
本文将继续分析设备之间的身份认证过程的相关细节,主要是针对数据包类型为MODULE_CONNECTION的处理过程。主要源代码在wifi_auth_manager.c文件的函数OnModuleMessageReceived()中。
二、源码分析
- 如果数据包类型为MODULE_CONNECTION,首先调用OnMessageReceived() 函数。处理接收到的消息,解析并按规则回复给对端。
/*
函数功能:处理接收到的消息,解析并按规则回复给对端
函数参数:
conn:设备连接信息
seq:数据包序列号
msg:cJSON格式的数据包负载消息
函数返回值:无
详细:
*/
void OnMessageReceived(AuthConn *conn, long long seq, const cJSON *msg)
{
if (conn == NULL || msg == NULL) {
return;
}
SOFTBUS_PRINT("[AUTH] OnMessageReceived begin\n");
//获取json指定的对象成员"CODE"
cJSON *codeJson = cJSON_GetObjectItem(msg, "CODE");
//判断codeJson是否为数字类型的成员,如果不是,就直接返回
if ((codeJson == NULL) || (!cJSON_IsNumber(codeJson))) {
return;
}
int code = codeJson->valueint