继续
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我只是想强调一下、我回到了这个主题、并设法重现了我认为您案例中的根本原因。
如您的终端所示、器件似乎以 AP 角色启动。
我可以从打印默认10.123.45.1 (即 AP 角色 IP 地址)的[NetApp 事件]的打印输出中看到它。
当我在我身边执行它时、我也会得到-2006错误。
其原因是使用 HTTP 客户端、预计器件以工作站角色引导。
您可以在 SlNetif_queryIf ()的代码中看到它。
while (NULL != ifNode)
{
/* Check if the identifier of the interface is equal to the input */
if (((ifNode->netIf).ifID) & ifBitmap)
{
/* Save the netIf only at the first match */
if (NULL == bestPartialMatchIf)
{
bestPartialMatchIf = &(ifNode->netIf);
}
/* Skip over Bitmap queries */
if ( 0 != queryBitmap)
{
/* Check if the state bit needs to be set and if it is */
if ( (true == IS_STATE_BIT_SET(queryBitmap)) &&
(SLNETIF_STATE_DISABLE == (GET_IF_STATE(ifNode->netIf))) )
{
/* State is disabled when needed to be set, continue
to the next interface */
ifNode = ifNode->next;
continue;
}
/* Check if the connection status bit needs to be set
and if it is */
if ( (true == IS_CONNECTION_STATUS_BIT_SET(queryBitmap)) &&
(SLNETIF_STATUS_CONNECTED != SlNetIf_getConnectionStatus((ifNode->netIf).ifID)) )
{
/* Connection status is not connected when it needed to
be - continue to the next interface */
ifNode = ifNode->next;
continue;
}
}
/* Required interface found, return the interface pointer */
return &(ifNode->netIf);
}
ifNode = ifNode->next;
它在 (SLNETIF_STATUS_CONNECTED!= SlNetIF_getConnectionStatus ((ifNode->netif).IFID))上失败
如果您需要更多帮助、请告诉我。
此致、
Shlomi.
尊敬的 Shlomi:
您的回答让我有点困惑。 我在 _SlSocketHandleASYNC_Connect ()中看到了故障,所以我不确定什么是 SlNetIF_queryIf ()。 这与我看到的问题有关。 我在调用 sl_drv_sync_obj_signal (&G -> ObjPool[g_pcb->FunctionParams.AsyncExt.ActionIndex].SyncObj)时看到失败;在以下代码中:
/*******************************************************************************/
/* _SlSocketHandleAsync_Connect */
/*******************************************************************************/
_SlReturnVal_t _SlSocketHandleAsync_Connect(void *pVoidBuf)
{
SlSocketResponse_t *pMsgArgs = (SlSocketResponse_t *)_SL_RESP_ARGS_START(pVoidBuf);
SL_DRV_PROTECTION_OBJ_LOCK_FOREVER();
VERIFY_PROTOCOL((pMsgArgs->Sd & SL_BSD_SOCKET_ID_MASK) <= SL_MAX_SOCKETS);
VERIFY_SOCKET_CB(NULL != g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs);
((SlSocketResponse_t *)(g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs))->Sd = pMsgArgs->Sd;
((SlSocketResponse_t *)(g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs))->StatusOrLen = pMsgArgs->StatusOrLen;
SL_DRV_SYNC_OBJ_SIGNAL(&g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].SyncObj);
SL_DRV_PROTECTION_OBJ_UNLOCK();
return SL_OS_RET_CODE_OK;
}
我看不到您突出显示的代码的相关性。 我们也启动到站模式。
此致、
John