继续
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