overlapped io pending is NOT an error

pull/20/head
despair86 6 years ago
parent 567e1082f8
commit 3c7b7f2176

@ -366,13 +366,15 @@ struct llarp_win32_loop : public llarp_ev_loop
add_ev(llarp::ev_io* ev, bool write)
{
uint8_t buf[1024];
llarp::udp_listener *udp = nullptr;
llarp::tun *t = nullptr;
ev->listener_id = reinterpret_cast< ULONG_PTR >(ev);
memset(&buf, 0, 1024);
switch(ev->fd.index())
{
case 0:
llarp::udp_listener* udp = dynamic_cast<llarp::udp_listener*>(ev);
udp = dynamic_cast<llarp::udp_listener*>(ev);
if(!::CreateIoCompletionPort((HANDLE)std::get< 0 >(ev->fd), iocpfd,
ev->listener_id, 0))
{
@ -382,7 +384,7 @@ struct llarp_win32_loop : public llarp_ev_loop
::ReadFile((HANDLE)std::get<0>(ev->fd), &buf, 1024, nullptr, &udp->portfd);
break;
case 1:
llarp::tun* t = dynamic_cast<llarp::tun*>(ev);
t = dynamic_cast<llarp::tun*>(ev);
if(!::CreateIoCompletionPort(std::get< 1 >(ev->fd), iocpfd,
ev->listener_id, 0))
{

@ -398,8 +398,13 @@ tuntap_read(struct device *dev, void *buf, size_t size)
{
int errcode = GetLastError();
tuntap_log(TUNTAP_LOG_ERR, (const char *)formated_error(L"%1%0", errcode));
return -1;
if (errcode != 997)
{
tuntap_log(TUNTAP_LOG_ERR, (const char *)formated_error(L"%1%0", errcode));
return -1;
}
else
return 0;
}
return 0;
@ -412,10 +417,15 @@ tuntap_write(struct device *dev, void *buf, size_t size)
if(WriteFile(dev->tun_fd, buf, (DWORD)size, &len, &dev->ovl) == 0)
{
int errcode = GetLastError();
tuntap_log(TUNTAP_LOG_ERR, (const char *)formated_error(L"%1%0", errcode));
return -1;
int errcode = GetLastError();
if (errcode != 997)
{
tuntap_log(TUNTAP_LOG_ERR, (const char *)formated_error(L"%1%0", errcode));
return -1;
}
else
return 0;
}
return 0;

Loading…
Cancel
Save