From e47af565d06fb6a980e8c3e2b56bcd5a38d47b57 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Fri, 5 Mar 2010 10:24:11 -0800 Subject: [PATCH] winverbs/nd: allow retrying connect() call The ND specification allows for retrying NDConnector:Connect() calls. Add this support to the winverbs ND provider. Signed-off-by: Sean Hefty --- trunk/ulp/netdirect/user/nd_connect.cpp | 18 +++++++++--------- trunk/ulp/netdirect/user/nd_connect.h | 5 ----- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/trunk/ulp/netdirect/user/nd_connect.cpp b/trunk/ulp/netdirect/user/nd_connect.cpp index 81d5f7bd..ce25499a 100644 --- a/trunk/ulp/netdirect/user/nd_connect.cpp +++ b/trunk/ulp/netdirect/user/nd_connect.cpp @@ -39,15 +39,6 @@ CNDConnector::CNDConnector(CNDAdapter *pAdapter) m_pWvConnEp = NULL; } -STDMETHODIMP CNDConnector:: -Init(void) -{ - HRESULT hr; - - hr = m_pAdapter->m_pWvProvider->CreateConnectEndpoint(&m_pWvConnEp); - return NDConvertWVStatus(hr); -} - CNDConnector::~CNDConnector() { if (m_pWvConnEp != NULL) { @@ -132,6 +123,15 @@ Connect(INDEndpoint* pEndpoint, IBAT_PATH_BLOB path; HRESULT hr; + if (m_pWvConnEp != NULL) { + m_pWvConnEp->Release(); + } + + hr = m_pAdapter->m_pWvProvider->CreateConnectEndpoint(&m_pWvConnEp); + if (FAILED(hr)) { + goto out; + } + RtlCopyMemory(&addr, &m_pAdapter->m_Address, AddressLength); if (addr.Sa.sa_family == AF_INET) { addr.Sin.sin_port = LocalPort; diff --git a/trunk/ulp/netdirect/user/nd_connect.h b/trunk/ulp/netdirect/user/nd_connect.h index 2da2f222..5aed1f44 100644 --- a/trunk/ulp/netdirect/user/nd_connect.h +++ b/trunk/ulp/netdirect/user/nd_connect.h @@ -94,11 +94,6 @@ public: goto err1; } - hr = conn->Init(); - if (FAILED(hr)) { - goto err2; - } - *ppConnector = conn; return ND_SUCCESS; -- 2.46.0